Example #1
0
 /**
  * Вывод JS скрипта пейджинатора
  * @param int $count см. назначение из функции pages
  * @param int $perpage см. назначение из функции pages
  * @param string $file см. назначение из функции pages
  * @param string $var см. назначение из функции pages
  * @param int $page_on_this см. назначение из функции pages
  * @param bollean $ajax см. назначение из функции pages
  * @return string JS скрипт пейджинатора
  */
 public function pagintator_js($count, $perpage = 50, $file = "", $var = "page", $page_on_this = 5, $ajax = false)
 {
     if (!is_numeric($perpage) || !$perpage) {
         $perpage = 50;
     }
     if (!is_numeric($page_on_this) || !$page_on_this) {
         $page_on_this = 5;
     }
     if (!$var) {
         $var = "page";
     }
     if (!$_REQUEST[$var] || !is_numeric($_REQUEST[$var])) {
         $page = 1;
     } else {
         $page = longval($_REQUEST[$var]);
     }
     if (!is_numeric($count) || !$count) {
         $count = 0;
     }
     $pagesTotal = longval($count / $perpage) + ($count % $perpage == 0 ? 0 : 1);
     $qs = preg_replace('/\\&' . mpc($var) . '\\=([0-9]+)/siu', '', $_SERVER['QUERY_STRING']);
     $surl = w3c_amp_replace($_SERVER['PHP_SELF'] . "?" . $qs . "&" . $var . "=%number%");
     if ($ajax && $file) {
         $base_url = "javascript:" . $file . '(%number%);';
     } else {
         $base_url = slashes_smarty($file ? $file : $surl);
     }
     return "<script type='text/javascript'>\n\t\tjQuery('#" . slashes_smarty(self::paginator_id_prefix . $this->paginator_id) . "').paginator({\n                                'pagesTotal':" . $pagesTotal . ",\n\t\t\t\t'pagesSpan':" . $page_on_this . ",\n\t\t\t\t'pageCurrent':" . $page . ",\n\t\t\t\t'baseurl': '" . $base_url . "',\n\t\t\t\t'lang' : {next : '" . slashes_smarty(lang::o()->v('paginator_next')) . "',\n\t\t\t\tlast : '" . slashes_smarty(lang::o()->v('paginator_last')) . "',\n\t\t\t\tprior : '" . slashes_smarty(lang::o()->v('paginator_prev')) . "',\n\t\t\t\tfirst : '" . slashes_smarty(lang::o()->v('paginator_first')) . "',\n\t\t\t\tarrowRight : String.fromCharCode(8594),\n\t\t\t\tarrowLeft : String.fromCharCode(8592)}});\n\t\t</script>";
 }
Example #2
0
 /**
  * Функция создания Человекопонятного URL, исходя из заданных параметров, 
  * по предустановленным правилам
  * @param string $module имя модуля
  * @param array $params массив параметров, например:
  * array('id' => 1, 'name' => 'CTRev', 'cat' => 'demo')
  * ключ slashes экранирует результат для JavaScript, иначе & заменяется на &amp;
  * @param bool $page является ли указанный модуль ссылкой на документ?
  * @param bool $no_end нужно ли в конец добавлять .html/index.html?
  * @param bool $nobaseurl не добавлять в начало $baseurl
  * @return string ЧПУ
  */
 public function construct($module, $params = array(), $page = false, $no_end = false, $nobaseurl = false)
 {
     $baseurl = globals::g('baseurl');
     $burl = true;
     $assign = false;
     if (is_array($module)) {
         $module_t = $module['module'];
         if ($module['no_end']) {
             $no_end = $module['no_end'];
         }
         if ($module['assign']) {
             $assign = (string) $module['assign'];
         }
         if (!$module_t && $module['page']) {
             $module = $module['page'];
             $page = true;
         } elseif (!$module_t) {
             return;
         } else {
             unset($module['module']);
             $params = $module;
             $module = $module_t;
         }
     } elseif ($nobaseurl) {
         $burl = false;
     }
     if (!is_array($params)) {
         $params = array();
     }
     if ($params["_filetype"]) {
         $filetype = '.' . file::o()->get_filetype($params["_filetype"]);
     } else {
         $filetype = ".html";
     }
     $url = $burl ? $baseurl : "";
     if (config::o()->v('furl')) {
         $url .= $this->module_name($module) . ($page ? '' : "/");
         $function = $module . '_furl_rules';
     } else {
         $url .= 'index.php?module=' . ($this->rmodules[$module] ? $this->rmodules[$module] : $module);
         $function = $module . '_nfurl_rules';
     }
     $slashes = $params['slashes'];
     $noencode = $params['noencode'];
     $b = $this->is_callable($function);
     if ($b) {
         $params = $this->resort($module, $params);
     }
     $postfix = "";
     $surl = '';
     $ourl = $url;
     if ($params && !$page) {
         foreach ($params as $param => $value) {
             if ($this->postfixes[$module][$param]) {
                 $postfix .= $this->postfixes[$module][$param] . $value;
             }
             if ($b) {
                 $r = $this->call_method($function, array($param, $value, !$slashes && !$noencode));
             } elseif (!config::o()->v('furl')) {
                 $r = $param . "=" . $value;
             } else {
                 $r = $param . "-" . $value . "/";
             }
             if (!config::o()->v('furl') && $r) {
                 $surl .= '&' . $r;
                 $r = ($slashes || $noencode ? '&' : '&amp;') . $r;
             }
             $url .= $r;
         }
     }
     if (!$surl) {
         $surl = $url;
     } else {
         $surl = $ourl . $surl;
     }
     $add = '';
     if (config::o()->v('furl')) {
         if (!$no_end && !$page && (!$params || !$b || preg_match('/\\/$/siu', $url))) {
             $add .= "index";
         }
         if (!$no_end) {
             $add .= $filetype;
         }
     }
     $add .= $postfix;
     $url = $url . $add;
     $surl = $surl . $add;
     $this->forlocation = array($surl, $url);
     if ($slashes) {
         $url = slashes_smarty($url);
     }
     if ($assign) {
         tpl::o()->assign($assign, $url);
     } else {
         return $url;
     }
 }