don't search setting when using specific search and not settings: specified
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -223,7 +223,10 @@ class Ajax
|
|||||||
$result = [];
|
$result = [];
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
$result_settings = GlobalSearch::searchSettings($searchtext, $this->userinfo);
|
$result_settings = [];
|
||||||
|
if (isset($this->userinfo['adminsession']) && $this->userinfo['adminsession'] == 1 && $this->userinfo['change_serversettings'] == 1) {
|
||||||
|
$result_settings = GlobalSearch::searchSettings($searchtext, $this->userinfo);
|
||||||
|
}
|
||||||
|
|
||||||
// all searchable entities
|
// all searchable entities
|
||||||
$result_entities = GlobalSearch::searchGlobal($searchtext, $this->userinfo);
|
$result_entities = GlobalSearch::searchGlobal($searchtext, $this->userinfo);
|
||||||
|
|||||||
@@ -32,36 +32,39 @@ class GlobalSearch
|
|||||||
$stparts = explode(" ", $searchtext);
|
$stparts = explode(" ", $searchtext);
|
||||||
foreach ($stparts as $searchtext) {
|
foreach ($stparts as $searchtext) {
|
||||||
$searchtext = trim($searchtext);
|
$searchtext = trim($searchtext);
|
||||||
|
if (preg_match('/^([a-z]+):$/', $searchtext, $matches)) {
|
||||||
// settings (if allowed)
|
// only search settings if specific search is 'settings', else skip
|
||||||
if (isset($userinfo['adminsession']) && $userinfo['adminsession'] == 1 && $userinfo['change_serversettings'] == 1) {
|
if ($matches[1] == 'settings') {
|
||||||
|
continue;
|
||||||
$settings_data = PhpHelper::loadConfigArrayDir(Froxlor::getInstallDir() . '/actions/admin/settings/');
|
} else {
|
||||||
$results = array();
|
break;
|
||||||
if (!isset($processed['settings'])) {
|
|
||||||
$processed['settings'] = [];
|
|
||||||
}
|
}
|
||||||
PhpHelper::recursive_array_search($searchtext, $settings_data, $results);
|
}
|
||||||
foreach ($results as $pathkey) {
|
$settings_data = PhpHelper::loadConfigArrayDir(Froxlor::getInstallDir() . '/actions/admin/settings/');
|
||||||
$pk = explode(".", $pathkey);
|
$results = array();
|
||||||
if (count($pk) > 4) {
|
if (!isset($processed['settings'])) {
|
||||||
$settingkey = $pk[0] . '.' . $pk[1] . '.' . $pk[2] . '.' . $pk[3];
|
$processed['settings'] = [];
|
||||||
if (is_array($processed['settings']) && !array_key_exists($settingkey, $processed['settings'])) {
|
}
|
||||||
$processed['settings'][$settingkey] = true;
|
PhpHelper::recursive_array_search($searchtext, $settings_data, $results);
|
||||||
$sresult = $settings_data[$pk[0]][$pk[1]][$pk[2]][$pk[3]];
|
foreach ($results as $pathkey) {
|
||||||
if ($sresult['type'] != 'hidden') {
|
$pk = explode(".", $pathkey);
|
||||||
if (!isset($result['settings'])) {
|
if (count($pk) > 4) {
|
||||||
$result['settings'] = [];
|
$settingkey = $pk[0] . '.' . $pk[1] . '.' . $pk[2] . '.' . $pk[3];
|
||||||
}
|
if (is_array($processed['settings']) && !array_key_exists($settingkey, $processed['settings'])) {
|
||||||
$result['settings'][] = [
|
$processed['settings'][$settingkey] = true;
|
||||||
'title' => (is_array($sresult['label']) ? $sresult['label']['title'] : $sresult['label']),
|
$sresult = $settings_data[$pk[0]][$pk[1]][$pk[2]][$pk[3]];
|
||||||
'href' => 'admin_settings.php?page=overview&part=' . $pk[1] . '&em=' . $pk[3]
|
if ($sresult['type'] != 'hidden') {
|
||||||
];
|
if (!isset($result['settings'])) {
|
||||||
} // not hidden
|
$result['settings'] = [];
|
||||||
} // if not processed
|
}
|
||||||
} // correct settingkey
|
$result['settings'][] = [
|
||||||
} // foreach
|
'title' => (is_array($sresult['label']) ? $sresult['label']['title'] : $sresult['label']),
|
||||||
} // admin + change_serversetting
|
'href' => 'admin_settings.php?page=overview&part=' . $pk[1] . '&em=' . $pk[3]
|
||||||
|
];
|
||||||
|
} // not hidden
|
||||||
|
} // if not processed
|
||||||
|
} // correct settingkey
|
||||||
|
} // foreach
|
||||||
} // foreach
|
} // foreach
|
||||||
} // searchtext min 3 chars
|
} // searchtext min 3 chars
|
||||||
return $result;
|
return $result;
|
||||||
|
|||||||
Reference in New Issue
Block a user