Пример #1
0
 /**
  *
  */
 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, "&");
 }
Пример #2
0
    /**
     * Возвращает <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);
        // убрать лишние пробелы
    }
Пример #3
0
/**
 * Стили для вставки в макет
 * @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;
}