예제 #1
0
 /**
  * Загружает в шаблонизатор Smarty необходимые переменные
  *
  */
 protected function AssignVars()
 {
     $this->Viewer_Assign('sAction', $this->Standart(self::$sAction));
     $this->Viewer_Assign('sEvent', self::$sActionEvent);
     $this->Viewer_Assign('aParams', self::$aParams);
     $this->Viewer_Assign('PATH_WEB_CURRENT', func_urlspecialchars(self::$sPathWebCurrent));
 }
예제 #2
0
 /**
  * Преобразует спец символы в html последовательнось, поведение аналогично htmlspecialchars, кроме преобразования амперсанта "&"
  *
  * @param string $sText
  *
  * @return string
  */
 public function Urlspecialchars($sText)
 {
     return func_urlspecialchars($sText);
 }
 /**
  * Формирует постраничный вывод
  *
  * @param int $iCount	Общее количество элементов
  * @param int $iCurrentPage	Текущая страница
  * @param int $iCountPerPage	Количество элементов на одну страницу
  * @param int $iCountPageLine	Количество ссылок на другие страницы
  * @param string $sBaseUrl	Базовый URL, к нему будет добавлять постикс /pageN/  и GET параметры
  * @param array $aGetParamsList	Список GET параметров, которые необходимо передавать при постраничном переходе
  * @return array
  */
 public function MakePaging($iCount, $iCurrentPage, $iCountPerPage, $iCountPageLine, $sBaseUrl, $aGetParamsList = array())
 {
     if ($iCount == 0) {
         return false;
     }
     $iCountPage = ceil($iCount / $iCountPerPage);
     if (!preg_match("/^[1-9]\\d*\$/i", $iCurrentPage)) {
         $iCurrentPage = 1;
     }
     if ($iCurrentPage > $iCountPage) {
         $iCurrentPage = $iCountPage;
     }
     $aPagesLeft = array();
     $iTemp = $iCurrentPage - $iCountPageLine;
     $iTemp = $iTemp < 1 ? 1 : $iTemp;
     for ($i = $iTemp; $i < $iCurrentPage; $i++) {
         $aPagesLeft[] = $i;
     }
     $aPagesRight = array();
     for ($i = $iCurrentPage + 1; $i <= $iCurrentPage + $iCountPageLine and $i <= $iCountPage; $i++) {
         $aPagesRight[] = $i;
     }
     $iNextPage = $iCurrentPage < $iCountPage ? $iCurrentPage + 1 : false;
     $iPrevPage = $iCurrentPage > 1 ? $iCurrentPage - 1 : false;
     $sGetParams = '';
     if (is_string($aGetParamsList) or count($aGetParamsList)) {
         $sGetParams = '?' . (is_array($aGetParamsList) ? http_build_query($aGetParamsList, '', '&') : $aGetParamsList);
     }
     $aPaging = array('aPagesLeft' => $aPagesLeft, 'aPagesRight' => $aPagesRight, 'iCount' => $iCount, 'iCountPage' => $iCountPage, 'iCurrentPage' => $iCurrentPage, 'iNextPage' => $iNextPage, 'iPrevPage' => $iPrevPage, 'sBaseUrl' => rtrim(func_urlspecialchars($sBaseUrl), '/'), 'sGetParams' => $sGetParams);
     /**
      * Избавляемся от дублирования страниц с page=1
      */
     if ($aPaging['iCurrentPage'] == 1) {
         $this->SetHtmlCanonical($aPaging['sBaseUrl'] . '/' . $aPaging['sGetParams']);
     } else {
         /**
          * Избавляемся от дублирования title страниц - добавляем "Страница N"
          */
         $this->AddHtmlTitle($this->Lang_Get('pagination.page_with_number', array('number' => $aPaging['iCurrentPage'])));
     }
     return $aPaging;
 }
예제 #4
0
function func_urlspecialchars_array(&$data, $walkIndex = null)
{
    if (is_string($data)) {
        $data = func_urlspecialchars($data);
    } elseif (is_array($data)) {
        array_walk($data, __FUNCTION__);
    }
}