/** * */ protected function make_page_query($exclude = array(), $absolute_path = false) { $params = $this->input; foreach ($exclude as $param) { unset($params[$param]); } $path = $absolute_path ? nc_search::get_module_url() . "/admin.php" : ""; return "{$path}?" . http_build_query($params, null, "&"); }
/** * Возвращает <script> для подключения выпадающих подсказок */ public function get_suggest_script() { $path = nc_search::get_module_url() . "/suggest"; $script = "{$path}/jquery-ui.custom.min.js"; $language = nc_Core::get_object()->lang->detect_lang(1); $input_selector = "#nc_search_query, input.nc_search_query"; switch (nc_search::get_setting('SuggestMode')) { case 'titles': $suggest_source = "{$path}/title.php?language={$language}"; $suggest_action = "window.location = ui.item.url;"; break; case 'queries': $suggest_source = "{$path}/query.php?language={$language}"; $suggest_action = "jQuery(this).val(ui.item.label).parents('form').submit();"; break; default: throw new nc_search_exception("Search module configuration error: wrong value for 'SuggestMode'"); } $min_length = (int) nc_search::get_setting('SuggestionsMinInputLength'); $result = <<<END_JS <script type='text/javascript'> (function (\$) { \$(document).ready(function() { var init = function() { \$('{$input_selector}').autocomplete({ minLength: {$min_length}, source: '{$suggest_source}', select: function(event, ui) { {$suggest_action} }, search: function(event, ui) { if (/(\\w+:|\\()/.test(\$(this).val())) { return false; } } }); }; if (!\$.ui || !\$.ui.autocomplete) { \$.getScript('{$script}', init); } else { init(); } }); })(jQuery) </script> END_JS; return preg_replace("/\\s{2,}/", "", $result); // убрать лишние пробелы }
/** * Стили для вставки в макет * @return string html */ function nc_css() { static $released = 0; static $ret = null; if ($released) { return; } // get super object $nc_core = nc_Core::get_object(); // determine file mode if ($addslashes = $nc_core->template->get_current() ? !$nc_core->template->get_current("File_Mode") : false) { // get backtrace $debug_backtrace = (array) debug_backtrace(); // search eval foreach ($debug_backtrace as $row) { if ($row['function'] == 'eval') { $addslashes = false; break; } } } if ($ret === null) { $files = array(); $ret = ''; if ($nc_core->modules->get_by_keyword('search')) { $files[] = nc_search::get_module_url() . "/suggest/autocomplete.css"; //$ret .= "<link type='text/css' rel='stylesheet' href='" . nc_search::get_module_url() . "/suggest/autocomplete.css' />" . PHP_EOL; } if ($nc_core->get_variable("admin_mode") || $nc_core->get_settings("QuickBar") && nc_quickbar_permission()) { if ($nc_core->get_variable("inside_admin")) { //FIXME: отключить "default/css/style.css" после полного переноса админки на новые стили $files[] = $nc_core->ADMIN_TEMPLATE . "css/style.css"; $files[] = $nc_core->ADMIN_TEMPLATE . "css/sprites.css"; //$ret .= "<link type='text/css' rel='Stylesheet' href='" . $nc_core->ADMIN_TEMPLATE . "css/style.css'>" . PHP_EOL; //$ret .= "<link type='text/css' rel='Stylesheet' href='" . $nc_core->ADMIN_TEMPLATE . "css/sprites.css'>" . PHP_EOL; } // $ret .= "<link rel='stylesheet' rev='stylesheet' type='text/css' href='" . $nc_core->ADMIN_TEMPLATE . "css/admin_pages.min.css' />".PHP_EOL; $files[] = $nc_core->ADMIN_TEMPLATE . "css/nc_admin.css"; $files[] = $nc_core->ADMIN_TEMPLATE . "../v5/css/netcat.css"; //$ret .= "<link rel='stylesheet' rev='stylesheet' type='text/css' href='" . $nc_core->ADMIN_TEMPLATE . "css/nc_admin.css' />" . PHP_EOL; //$ret .= "<link type='text/css' rel='Stylesheet' href='" . $nc_core->ADMIN_TEMPLATE . "../v5/css/netcat.css'>" . PHP_EOL; $minified = nc_minify_file($files, 'css'); foreach ($minified as $file) { $ret .= "<link rel='stylesheet' rev='stylesheet' type='text/css' href='" . $file . "'>" . PHP_EOL; } // } } else { $ret = ''; } $released++; return $addslashes ? str_replace("\\'", "'", addslashes($ret)) : $ret; }