Esempio n. 1
0
 public function save_payment()
 {
     $system_gid = $this->input->post('system_gid', true);
     if (empty($system_gid)) {
         $this->system_messages->add_message('error', l('error_empty_system_gid', 'users_payments'));
     }
     if ($system_gid) {
         $user_id = $this->session->userdata('user_id');
         $amount = abs(floatval(str_replace(',', '.', $this->input->post('amount', true))));
         if (empty($amount)) {
             $this->system_messages->add_message('error', l('error_empty_amount', 'users_payments'));
         } elseif (empty($system_gid)) {
             $this->system_messages->add_message('error', l('error_empty_system_gid', 'users_payments'));
         } else {
             $this->load->model('payments/models/Payment_currency_model');
             $base_currency = $this->Payment_currency_model->get_currency_default(true);
             $this->load->helper('payments');
             $additional['name'] = l('header_add_funds', 'users_payments');
             $additional['lang'] = 'header_add_funds';
             $additional['module'] = 'users_payments';
             $payment_data = send_payment('account', $user_id, $amount, $base_currency['gid'], $system_gid, $additional, 'form');
             if (!empty($payment_data['errors'])) {
                 $this->system_messages->add_message('error', $payment_data['errors']);
             }
             if (!empty($payment_data['info'])) {
                 $this->system_messages->add_message('info', $payment_data['info']);
             }
         }
     }
     $this->load->helper('seo');
     $url = rewrite_link('users', 'account', array('action' => 'update'));
     redirect($url);
 }
Esempio n. 2
0
function mod_example()
{
    global $AVE_DB, $AVE_Template;
    $tpl_dir = BASE_DIR . '/modules/example/templates/';
    // Указываем путь до шаблона
    $AVE_Template->caching = true;
    $AVE_Template->cache_lifetime = 86400;
    // Время жизни кэша (1 день)
    //	$AVE_Template->cache_dir = BASE_DIR . '/cache/example'; // Папка для создания кэша
    // Если нету в кэше, то выполняем запрос
    if (!$AVE_Template->is_cached('example.tpl')) {
        // Проверяем, есть ли папка для кэша, если нет (первый раз) — создаем
        if (!is_file($AVE_Template->cache_dir)) {
            $oldumask = umask(0);
            @mkdir($AVE_Template->cache_dir, 0777);
            umask($oldumask);
        }
        $example = array();
        // Запрос трех последних документов (ссылка и название) из рубрики с ID 2 и с сортировкой ID по убыванию
        $sql = $AVE_DB->Query("\r\n\t\t\tSELECT\r\n\t\t\t\tId,\r\n\t\t\t\tdocument_title,\r\n\t\t\t\tdocument_alias\r\n\t\t\tFROM " . PREFIX . "_documents\r\n\t\t\tWHERE Id != 1\r\n\t\t\tAND Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\tAND rubric_id = 2\r\n\t\t\tAND document_deleted != 1\r\n\t\t\tAND document_status != 0\r\n\t\t\tORDER BY Id DESC\r\n\t\t");
        while ($row = $sql->FetchRow()) {
            $row->document_alias = rewrite_link('index.php?id=' . $row->Id . '&doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias));
            array_push($example, $row);
        }
        // Закрываем соединение
        $sql->Close();
        // Назначаем переменную example для использования в шаблоне
        $AVE_Template->assign('example', $example);
    }
    // Выводим шаблон example.tpl
    $AVE_Template->display($tpl_dir . 'example.tpl');
    $AVE_Template->caching = false;
}
Esempio n. 3
0
 public function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $auth = $this->CI->session->userdata('auth_type');
     $block = array(array('name' => l('favourites', 'favourites'), 'link' => rewrite_link('favourites', 'index'), 'clickable' => $auth === 'user', 'items' => array()));
     return $block;
 }
Esempio n. 4
0
/**
 * Обработка тега модуля
 *
 * @param int $id идентификатор рубрики вопросов и ответов
 */
function mod_faq($id)
{
    global $AVE_Template;
    $AVE_Template->caching = 1;
    // Включаем кеширование
    $AVE_Template->cache_lifetime = -1;
    // Неограниченное время жизни кэша
    //	$AVE_Template->cache_dir .= '/faq'; // Папка для кеша модуля
    $tpl_dir = BASE_DIR . '/modules/faq/templates/';
    // Путь к шаблону модуля
    // Если нету в кеше, то начинаем обрабатывать
    if (!$AVE_Template->is_cached($tpl_dir . 'show_faq.tpl', $id)) {
        // Проверяем, есть ли папка для кеша, если нет (первый раз) — создаем
        if (!is_dir($AVE_Template->cache_dir)) {
            $oldumask = umask(0);
            @mkdir($AVE_Template->cache_dir, 0777);
            umask($oldumask);
        }
        require_once BASE_DIR . '/modules/faq/class.faq.php';
        Faq::faqShow($id);
    }
    echo rewrite_link($AVE_Template->fetch($tpl_dir . 'show_faq.tpl', $id));
    $AVE_Template->caching = false;
    // Отключаем кеширование
}
Esempio n. 5
0
 public function index($param = 'all', $index = true)
 {
     $param = trim(strip_tags($param));
     $order = trim(strip_tags($this->input->get_post('order', true)));
     $direction = trim(strip_tags($this->input->get_post('direction', true)));
     $media_sorter = array("order" => $order ? $order : 'date_add', "direction" => $direction ? $direction : 'DESC', "links" => array("date_add" => l('field_date_add', 'media'), "views" => l('field_views', 'media'), "comments_count" => l('field_comments_count', 'media')));
     $order_by = array($media_sorter['order'] => $media_sorter['direction']);
     $is_guest = $this->session->userdata("auth_type") != "user";
     $this->load->model('Menu_model');
     $this->load->helper('seo');
     $this->Menu_model->breadcrumbs_set_active(l('header_gallery', 'media'), rewrite_link('media', ''));
     $this->Menu_model->breadcrumbs_set_active(l($param, 'media'));
     $seo_data = array();
     if ($index) {
         $this->router->set_method($param);
         $seo_data['canonical'] = rewrite_link('media', $param, $seo_data, false, null, true);
     }
     $this->pg_seo->set_seo_data($seo_data);
     $this->template_lite->assign('gallery_param', $param);
     $this->template_lite->assign('media_sorter', $media_sorter);
     $this->template_lite->assign('order_by', $order_by);
     $this->template_lite->assign('albums', $this->Media_model->get_albums_select(0));
     $this->template_lite->assign("is_guest", $is_guest);
     $this->template_lite->view('gallery');
 }
Esempio n. 6
0
/**
 * Функция обработки тега модуля
 *
 * @param int $navigation_id - идентификатор меню навигации
 */
function mod_navigation($navigation_id)
{
    global $AVE_DB, $AVE_Core;
    static $navigations = array();
    $navigation_id = preg_replace('/\\D/', '', $navigation_id);
    if (isset($navigations[$navigation_id])) {
        echo $navigations[$navigation_id];
        return;
    }
    $nav = get_navigations($navigation_id);
    if (!$nav) {
        echo 'Menu ', $navigation_id, ' not found';
        return;
    }
    if (!defined('UGROUP')) {
        define('UGROUP', 2);
    }
    if (!in_array(UGROUP, $nav->navi_user_group)) {
        return;
    }
    if (empty($_REQUEST['module'])) {
        $curent_doc_id = isset($_GET['id']) && is_numeric($_GET['id']) ? $_GET['id'] : 1;
        $row_navi = $AVE_DB->Query("\r\n\t\t\tSELECT CONCAT_WS(',', nav.Id, nav.parent_id, nav2.parent_id)\r\n\t\t\tFROM\r\n\t\t\t\t" . PREFIX . "_navigation_items AS nav\r\n\t\t\tJOIN\r\n\t\t\t\t" . PREFIX . "_documents AS doc\r\n\t\t\tLEFT JOIN\r\n\t\t\t\t" . PREFIX . "_navigation_items AS nav2 ON nav2.Id = nav.parent_id\r\n\t\t\tWHERE nav.navi_item_status = 1\r\n\t\t\tAND nav.navi_id = '" . $navigation_id . "'\r\n\t\t\tAND doc.Id = '" . $curent_doc_id . "'\r\n\t\t\tAND (nav.navi_item_link = 'index.php?id=" . $curent_doc_id . "'" . (!empty($AVE_Core->curentdoc->document_alias) && $AVE_Core->curentdoc->Id == $curent_doc_id ? " OR nav.document_alias = '" . $AVE_Core->curentdoc->document_alias . "'" : '') . " OR nav.Id = doc.document_linked_navi_id)\r\n\t\t")->GetCell();
    } else {
        $row_navi = $AVE_DB->Query("\r\n\t\t\tSELECT CONCAT_WS(',', nav.Id, nav.parent_id, nav2.parent_id)\r\n\t\t\tFROM\r\n\t\t\t\t" . PREFIX . "_navigation_items AS nav\r\n\t\t\tLEFT JOIN\r\n\t\t\t\t" . PREFIX . "_navigation_items AS nav2 ON nav2.Id = nav.parent_id\r\n\t\t\tWHERE nav.navi_item_status = '1'\r\n\t\t\tAND nav.navi_id = '" . $navigation_id . "'\r\n\t\t\tAND nav.navi_item_link LIKE 'index.php?module=" . $_REQUEST['module'] . "%%'\r\n\t\t")->GetCell();
    }
    $where_elter = '';
    if ($row_navi !== false) {
        $way = explode(',', $row_navi);
        if ($nav->navi_expand != 1) {
            $where_elter = "AND parent_id IN(0," . $row_navi . ")";
        }
    } else {
        $way = array('');
        if ($nav->navi_expand != 1) {
            $where_elter = "AND parent_id = 0";
        }
    }
    $nav_items = array();
    $sql = $AVE_DB->Query("\r\n\t\tSELECT *\r\n\t\tFROM " . PREFIX . "_navigation_items\r\n\t\tWHERE navi_item_status = '1'\r\n\t\tAND navi_id = '" . $navigation_id . "'\r\n\t\t" . $where_elter . "\r\n\t\tORDER BY navi_item_position ASC\r\n\t");
    while ($row_nav_item = $sql->FetchAssocArray()) {
        $nav_items[$row_nav_item['parent_id']][] = $row_nav_item;
    }
    $ebenen = array(1 => array('aktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level1active), 'inaktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level1)), 2 => array('aktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level2active), 'inaktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level2)), 3 => array('aktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level3active), 'inaktiv' => str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_level3)));
    $END = str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_begin);
    printNavi($END, $ebenen, $way, $navigation_id, $nav_items, $nav);
    $END .= str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $nav->navi_end);
    $END = rewrite_link($END);
    $END = preg_replace("/(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+/", "\n", $END);
    //	$END = str_replace(array("\r\n","\n","\r"),'',$END);
    $END = str_replace(array("\n", "\r"), '', $END);
    $search = array($nav->navi_level1begin . $nav->navi_level1end, $nav->navi_level2begin . $nav->navi_level2end, $nav->navi_level3begin . $nav->navi_level3end, '</li>' . $nav->navi_level2begin . '<li', '</li>' . $nav->navi_level3begin . '<li', '</li>' . $nav->navi_level1end . '<li', '</li>' . $nav->navi_level2end . '<li', '</li>' . $nav->navi_level1end . $nav->navi_level2end . '<li', '</li>' . $nav->navi_level1end . $nav->navi_level2end . $nav->navi_level3end, '</li>' . $nav->navi_level1end . $nav->navi_level2end, '</li>' . $nav->navi_level2end . $nav->navi_level3end);
    $replace = array('', '', '', $nav->navi_level2begin . '<li', $nav->navi_level3begin . '<li', '</li>' . $nav->navi_level1end . '</li><li', '</li>' . $nav->navi_level2end . '</li><li', '</li>' . $nav->navi_level1end . '</li>' . $nav->navi_level2end . '</li><li', '</li>' . $nav->navi_level1end . '</li>' . $nav->navi_level2end . '</li>' . $nav->navi_level3end, '</li>' . $nav->navi_level1end . '</li>' . $nav->navi_level2end, '</li>' . $nav->navi_level2end . '</li>' . $nav->navi_level3end);
    $END = str_replace($search, $replace, $END);
    $navigations[$navigation_id] = $END;
    echo $END;
}
Esempio n. 7
0
/**
 * Функция обработки тега модуля
 *
 */
function mod_moredoc()
{
    global $AVE_Core, $AVE_DB, $AVE_Template;
    require_once BASE_DIR . '/functions/func.modulglobals.php';
    set_modul_globals('moredoc');
    $AVE_Template->caching = true;
    // Включаем кеширование
    $AVE_Template->cache_lifetime = 60 * 60 * 24;
    // Время жизни кеша 1 день в секундах
    //	$AVE_Template->cache_dir .= '/moredoc';   // Папка для кеша модуля
    $tpl_dir = BASE_DIR . '/modules/moredoc/templates/';
    // Указываем путь к шаблону модуля
    // Если нету в кеше, то начинаем обрабатывать
    if (!$AVE_Template->is_cached($tpl_dir . 'moredoc.tpl', $AVE_Core->curentdoc->Id)) {
        $limit = 5;
        // Количество связных документов
        $flagrubric = 1;
        // Учитывать или нет рубрику документа (0 - нет, 1 - да)
        $moredoc = array();
        // Проверяем, есть ли папка для кеша, если нет (первый раз) — создаем
        if (!is_dir($AVE_Template->cache_dir)) {
            $oldumask = umask(0);
            @mkdir($AVE_Template->cache_dir, 0777);
            umask($oldumask);
        }
        // Получаем ключевые слова, рубрику, извлекаем первое ключевое слово
        $row = $AVE_DB->Query("\r\n\t\t\tSELECT\r\n\t\t\t\trubric_id,\r\n\t\t\t\tdocument_meta_keywords\r\n\t\t\tFROM " . PREFIX . "_documents\r\n\t\t\tWHERE Id = '" . $AVE_Core->curentdoc->Id . "'\r\n\t\t\tLIMIT 1\r\n\t\t")->FetchRow();
        $keywords = explode(',', $row->document_meta_keywords);
        $keywords = trim($keywords[0]);
        if ($keywords != '') {
            $inrubric = $flagrubric ? "AND rubric_id = '" . $row->rubric_id . "'" : '';
            $doctime = get_settings('use_doctime') ? "AND document_published <= " . time() . " AND (document_expire = 0 OR document_expire >= " . time() . ")" : '';
            // Ищем документы где встречается такое-же слово
            $sql = $AVE_DB->Query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tId,\r\n\t\t\t\t\tdocument_expire,\r\n\t\t\t\t\tdocument_title,\r\n\t\t\t\t\tdocument_alias,\r\n\t\t\t\t\tdocument_meta_description\r\n\t\t\t\tFROM " . PREFIX . "_documents\r\n\t\t\t\tWHERE document_meta_keywords LIKE '" . $keywords . "%'\r\n\t\t\t\tAND Id != 1\r\n\t\t\t\tAND Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\t\tAND Id != '" . $AVE_Core->curentdoc->Id . "'\r\n\t\t\t\tAND document_status != '0'\r\n\t\t\t\tAND document_deleted != '1'\r\n\t\t\t\t" . $inrubric . "\r\n\t\t\t\t" . $doctime . "\r\n\t\t\t\tORDER BY document_count_view DESC\r\n\t\t\t\tLIMIT " . $limit);
            while ($row = $sql->FetchRow()) {
                if ($doctime != '' && time() + $AVE_Template->cache_lifetime > $row->document_expire) {
                    // Изменяем время жизни кеша так что-бы оно не превышало
                    // время окончания публикации попавших в выборку документов
                    $AVE_Template->cache_lifetime = $row->document_expire - time();
                }
                $row->document_link = rewrite_link('index.php?id=' . $row->Id . '&amp;doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias));
                array_push($moredoc, $row);
            }
            // Закрываем соединение
            $sql->Close();
        }
        // Передаём переменную moredoc в шаблон
        $AVE_Template->assign('moredoc', $moredoc);
    }
    // Выводим шаблон moredoc.tpl
    $AVE_Template->display($tpl_dir . 'moredoc.tpl', $AVE_Core->curentdoc->Id);
    $AVE_Template->caching = false;
    // Отключаем кеширование
}
Esempio n. 8
0
/**
 * Template_Lite  function plugin
 *
 */
function tpl_function_seolink($params, &$tpl)
{
    $tpl->CI->load->helper('seo');
    if (!empty($params['data'])) {
        if (is_array($params['data'])) {
            $data = $params['data'];
        } else {
            $data['id'] = $params['data'];
        }
        $data = array_merge($data, $params);
    } else {
        $data = $params;
    }
    unset($data['module'], $data['method'], $data['data']);
    return rewrite_link($params['module'], $params['method'], $data);
}
Esempio n. 9
0
/**
 * Постраничная навигация документа
 *
 * @param string $text	текст многострочной части документа
 * @return string
 */
function document_pagination($text)
{
    global $AVE_Core;
    // IE8                    <div style="page-break-after: always"><span style="display: none">&nbsp;</span></div>
    // Chrome                 <div style="page-break-after: always; "><span style="DISPLAY:none">&nbsp;</span></div>
    // FF                     <div style="page-break-after: always;"><span style="display: none;">&nbsp;</span></div>
    $pages = preg_split('#<div style="page-break-after:[; ]*always[; ]*"><span style="display:[ ]*none[;]*">&nbsp;</span></div>#i', $text);
    $total_page = @sizeof($pages);
    if ($total_page > 1) {
        $text = @$pages[get_current_page('artpage') - 1];
        $page_nav = ' <a class="pnav" href="index.php?id=' . $AVE_Core->curentdoc->Id . '&amp;doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias) . '&amp;artpage={s}' . '">{t}</a> ';
        $page_nav = get_pagination($total_page, 'artpage', $page_nav, get_settings('navi_box'));
        $text .= rewrite_link($page_nav);
    }
    return $text;
}
Esempio n. 10
0
 /**
  * Метод, предназначенный для вывода контактной формы в публичной части сайта
  *
  * @param string $tpl_dir путь к папке с шаблонами
  * @param string $lang_file путь к языковому файлу
  * @param int $contact_form_id идентификатор формы
  * @param int $spam_protect использовать защитный код 1
  * @param int $max_upload максимальный размер прикреплённого файла
  * @param int $fetch вывод в браузер 1
  * @return string контактная форма
  */
 function contactFormShow($tpl_dir, $lang_file, $contact_form_id, $spam_protect = null, $max_upload = null, $fetch = '0')
 {
     global $AVE_Core, $AVE_DB, $AVE_Template;
     $contact_form_id = preg_replace('/\\D/', '', $contact_form_id);
     $AVE_Template->config_load($lang_file);
     // Получаем всю информацию о данной форме по ее идентификатору
     $row = $AVE_DB->Query("\r\n\t\t\tSELECT *\r\n\t\t\tFROM " . PREFIX . "_modul_contacts\r\n\t\t\tWHERE Id = '" . $contact_form_id . "'\r\n\t\t")->FetchRow();
     // Определяем группы, которым разрешен доступ к данной контактной форме
     $allowed_groups = array();
     if (isset($row->contact_form_allow_group)) {
         $allowed_groups = explode(',', $row->contact_form_allow_group);
     }
     // Если группа пользователя не входит в разрешенный список групп,
     // фиксируем ошибку и выводим сообщение.
     if (!in_array($_SESSION['user_group'], $allowed_groups)) {
         $AVE_Template->assign('no_access', 1);
         if (isset($row->contact_form_message_noaccess)) {
             $AVE_Template->assign('contact_form_message_noaccess', $row->contact_form_message_noaccess);
         }
     } else {
         // Определяем ряд переменных для использования в шаблоне
         $AVE_Template->assign('contact_form_id', $contact_form_id);
         $AVE_Template->assign('im', $spam_protect === null ? $row->contact_form_antispam : $spam_protect);
         $AVE_Template->assign('maxupload', $max_upload === null ? $row->contact_form_max_upload : $max_upload);
         $AVE_Template->assign('send_copy', $row->contact_form_send_copy);
         // Формируем список получателей данного сообщения (если их несколько)
         $recievers = array();
         if ($row->contact_form_reciever_multi != '') {
             $e_recievers = explode(';', $row->contact_form_reciever_multi);
             foreach ($e_recievers as $reciever) {
                 $e_reciever = explode(',', $reciever);
                 array_push($recievers, htmlspecialchars($e_reciever[0], ENT_QUOTES));
             }
         }
         $AVE_Template->assign('recievers', $recievers);
         // Если тема сообщения не указана, тогда используем название темы по умолчанию
         if ($row->contact_form_subject_show == '0' && $row->contact_form_subject_default != '') {
             $AVE_Template->assign('default_subject', $row->contact_form_subject_default);
         }
         // Выполняем запрос к БД на получение списка всех полей формы
         $fields = array();
         $sql = $AVE_DB->Query("\r\n\t\t\t    SELECT *\r\n\t\t\t    FROM " . PREFIX . "_modul_contact_fields\r\n\t\t\t    WHERE contact_field_status = '1'\r\n\t\t\t    AND contact_form_id = '" . $contact_form_id . "'\r\n\t\t\t    ORDER BY contact_field_position ASC\r\n\t\t    ");
         while ($row = $sql->FetchRow()) {
             // Определяем тип поля и формируем регулярное выражение
             // для проверки введённых символов и их количества
             switch ($row->contact_field_datatype) {
                 // Любые символы
                 case 'anysymbol':
                     $row->field_pattern = $row->contact_field_max_chars != '' ? '^([\\s\\S]{' . $row->contact_field_max_chars . '})' . ($row->contact_field_required != 1 ? '?$' : '{1}$') : '';
                     break;
                     // Только целые числа
                 // Только целые числа
                 case 'onlydecimal':
                     $row->field_pattern = $row->contact_field_max_chars != '' ? '^(\\d{' . $row->contact_field_max_chars . '})' . ($row->contact_field_required != 1 ? '?$' : '{1}$') : '';
                     break;
                     // Только буквы
                 // Только буквы
                 case 'onlychars':
                     $row->field_pattern = $row->contact_field_max_chars != '' ? '^(\\D{' . $row->contact_field_max_chars . '})' . ($row->contact_field_required != 1 ? '?$' : '{1}$') : '';
                     break;
                     // По умолчанию любые символы
                 // По умолчанию любые символы
                 default:
                     $row->field_pattern = $row->contact_field_max_chars != '' ? '^([\\s\\S]{' . $row->contact_field_max_chars . '})' . ($row->contact_field_required != 1 ? '?$' : '{1}$') : '';
                     break;
             }
             // Если тип поля "Выпадающий список", тогда получем все его элементы
             if ($row->contact_field_type == 'dropdown' && $row->contact_field_default != '') {
                 $value = explode(',', $row->contact_field_default);
                 $row->contact_field_default = $value;
             }
             // В имени поля заменяем пробелы на подчерки, и формируем массив данных полей
             $field_title_ = str_replace(' ', '_', $row->contact_field_title);
             $row->value = isset($_REQUEST[$field_title_]) ? $_REQUEST[$field_title_] : '';
             array_push($fields, $row);
         }
         // Перердаем в шаблон массив с данными полей и формируем ссылку для редиректа после отправки
         $AVE_Template->assign('fields', $fields);
         $action = rewrite_link('index.php?id=' . $AVE_Core->curentdoc->Id . '&amp;doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias));
         $AVE_Template->assign('contact_action', $action);
     }
     // Возвращаем сформированную контактную форму
     if ($fetch == 1) {
         return $AVE_Template->fetch($tpl_dir . 'form.tpl');
     }
     // Отображаем сформированную контактную форму
     if (file_exists($tpl_dir . 'form-' . $contact_form_id . '.tpl')) {
         $AVE_Template->display($tpl_dir . 'form-' . $contact_form_id . '.tpl');
     } else {
         $AVE_Template->display($tpl_dir . 'form.tpl');
     }
 }
Esempio n. 11
0
            if ($row_fields->rubric_field_id == $rss_settings->rss_description_id) {
                if ($rss_settings->rss_description_lenght == 0) {
                    $teaser = explode('<a name="more"></a>', $row_fields->field_value);
                    $rss_item['description'] = $teaser[0];
                } else {
                    if (mb_strlen($row_fields->field_value) > $rss_settings->rss_description_lenght) {
                        $rss_item['description'] = mb_substr($row_fields->field_value, 0, $rss_settings->rss_description_lenght) . '…';
                    } else {
                        $rss_item['description'] = $row_fields->field_value;
                    }
                }
                $rss_item['description'] = parse_hide($rss_item['description']);
            }
        }
        $link_doc = !empty($row_doc->document_alias) ? $row_doc->document_alias : prepare_url($row_doc->document_title);
        $link = rewrite_link('index.php?id=' . $row_doc->Id . '&amp;doc=' . $link_doc);
        $rss_item['link'] = $rss_settings->rss_site_url . mb_substr($link, mb_strlen(ABS_PATH));
        $rss_item['pubDate'] = $row_doc->document_published ? date('r', $row_doc->document_published) : date('r', time());
        array_push($rss_items, $rss_item);
    }
}
// Ну а тут собственно шлем заголовок, что у нас документ XML и в путь... выводим данные
header("Content-Type: application/xml");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
echo '<?xml version="1.0" encoding="utf8"?>';
?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title><?php 
Esempio n. 12
0
 /**
  * Метод, предназначенный для записи в БД нового комментария.
  *
  * @param string $tpl_dir - путь к шаблонам модуля
  *
  * @todo Вывод сообщения о результате добавления комментария, а также
  * рассмотреть вопрос о добавлении еще одного параметра настройки модуля, который будет определять
  * необходимость отправки уведомления на e-mail о новом комментарии. Возможно не всем хочется получать
  * уведомления.
  *
  */
 function commentPostNew($tpl_dir)
 {
     global $AVE_DB, $AVE_Template;
     // Если запрос пришел не ajax запросом, тогда формируем ссылку для последующего редиректа
     if (!($ajax = isset($_REQUEST['ajax']) && $_REQUEST['ajax'] == 1)) {
         $link = rewrite_link(base64_decode($_REQUEST['page']));
     }
     // Если в настройках модуля включено использование защитного кода, тогда
     if ($this->_commentSettingsGet('comment_use_antispam') == 1) {
         // Если введенный пользователем защитный код неверен, тогда выполняем обновление кода
         if (!(isset($_SESSION['captcha_keystring']) && isset($_POST['securecode']) && $_SESSION['captcha_keystring'] == $_POST['securecode'])) {
             unset($_SESSION['captcha_keystring']);
             if ($ajax) {
                 echo 'wrong_securecode';
             } else {
                 $GLOBALS['tmpl']->assign("wrongSecureCode", 1);
                 header('Location:' . $link . '#end');
             }
             exit;
         }
         unset($_SESSION['captcha_keystring']);
     }
     // Определяем флаг модерации комментариев
     $comment_status = $this->_commentSettingsGet('comment_need_approve') == 1 ? 0 : 1;
     // Если комментарии разрешены, тогда получаем все данные, который пользователь указал в форме
     if ($this->_commentSettingsGet('comment_active') == 1 && !empty($_POST['comment_text']) && !empty($_POST['comment_author_name']) && in_array(UGROUP, explode(',', $this->_commentSettingsGet('comment_user_groups')))) {
         $new_comment['parent_id'] = (int) $_POST['parent_id'];
         $new_comment['document_id'] = (int) $_POST['doc_id'];
         $new_comment['comment_author_name'] = $_POST['comment_author_name'];
         $new_comment['comment_author_id'] = empty($_SESSION['user_id']) ? '' : $_SESSION['user_id'];
         $new_comment['comment_author_email'] = $_POST['comment_author_email'];
         $new_comment['comment_author_city'] = $_POST['comment_author_city'];
         $new_comment['comment_author_website'] = $_POST['comment_author_website'];
         $new_comment['comment_author_ip'] = $_SERVER['REMOTE_ADDR'];
         $new_comment['comment_published'] = time();
         $new_comment['comment_text'] = $_POST['comment_text'];
         $new_comment['comment_status'] = $comment_status;
         // Определяем максимальную длину символов для комментария
         $comment_max_chars = $this->_commentSettingsGet('comment_max_chars');
         $comment_max_chars = !empty($comment_max_chars) && $comment_max_chars > 10 ? $comment_max_chars : 200;
         // Если длина комментария превышает максимально допустимую, обрезаем текст, до максимального значения
         $new_comment['comment_text'] = mb_substr(stripslashes($new_comment['comment_text']), 0, $comment_max_chars);
         $new_comment['comment_text'] .= mb_strlen($new_comment['comment_text']) > $comment_max_chars ? '…' : '';
         //			$new_comment['comment_text'] = htmlspecialchars($new_comment['comment_text'], ENT_QUOTES);
         $new_comment['comment_text'] = pretty_chars($new_comment['comment_text']);
         // Выполняем запрос к БД на добавление комментария
         $AVE_DB->Query("\r\n\t\t\t\tINSERT INTO " . PREFIX . "_modul_comment_info\r\n\t\t\t\t\t(" . implode(',', array_keys($new_comment)) . ")\r\n\t\t\t\tVALUES\r\n\t\t\t\t\t('" . implode("','", $new_comment) . "')\r\n\t\t\t");
         $new_comment['Id'] = $AVE_DB->InsertId();
         // Получаем e-mail адрес из Общих настроек системы и формируем ссылку на комментарий в Публичной части
         $mail_from = get_settings('mail_from');
         $mail_from_name = get_settings('mail_from_name');
         $page = get_home_link() . urldecode(base64_decode($_REQUEST['page'])) . '&subaction=showonly&comment_id=' . $new_comment['Id'] . '#' . $new_comment['Id'];
         //  Формируем текст уведомления для отправки на e-mail
         $mail_text = $AVE_Template->get_config_vars('COMMENT_MESSAGE_ADMIN');
         $mail_text = str_replace('%COMMENT%', stripslashes($new_comment['comment_text']), $mail_text);
         $mail_text = str_replace('%N%', "\n", $mail_text);
         $mail_text = str_replace('%PAGE%', $page, $mail_text);
         $mail_text = str_replace('&amp;', '&', $mail_text);
         // Отправляем уведомление
         send_mail($mail_from, $mail_text, $AVE_Template->get_config_vars('COMMENT_SUBJECT_MAIL'), $mail_from, $mail_from_name, 'text');
         // Если данные были отправлены ajax-запросом, тогда выполняем автоматический показ комментария
         // на странице.
         if ($ajax) {
             $new_comment['comment_published'] = strftime($AVE_Template->get_config_vars('COMMENT_DATE_TIME_FORMAT'), $new_comment['comment_published']);
             $subcomments[] = $new_comment;
             $AVE_Template->assign('subcomments', $subcomments);
             $AVE_Template->assign('theme', defined('THEME_FOLDER') ? THEME_FOLDER : DEFAULT_THEME_FOLDER);
             $AVE_Template->display($tpl_dir . $this->_comments_tree_sub_tpl);
         }
     }
     //		$JsAfter = ($comment_status == 0) ? $AVE_Template->get_config_vars('COMMENT_AFTER_MODER') : $AVE_Template->get_config_vars('COMMENT_THANKYOU_TEXT');
     //		$AVE_Template->assign('JsAfter', $JsAfter);
     //		$AVE_Template->display($tpl_dir . $this->_comment_thankyou_tpl);
     // Если же данные пришли НЕ ajax-запросом, тогда полностью обновляем страницу.
     if (!$ajax) {
         header('Location:' . $link . '#end');
     }
     exit;
 }
Esempio n. 13
0
 /**
  *	ВНЕШНИЕ МЕТОДЫ
  */
 function searchResultGet($tpl_dir, $lang_file)
 {
     global $AVE_DB, $AVE_Template;
     $AVE_Template->config_load($lang_file);
     define('MODULE_SITE', $AVE_Template->get_config_vars('SEARCH_RESULTS'));
     $stem_words = array();
     $tmp = preg_replace('/[^\\x20-\\xFF]|[><!?.,;=-]/', ' ', $_GET['query']);
     $this->_search_string = trim(preg_replace('/  +/', ' ', stripslashes($tmp)));
     if (mb_strlen($this->_search_string) > 2) {
         // экранирование для LIKE
         $tmp = str_replace('\\', '\\\\', $this->_search_string);
         $tmp = addcslashes(addslashes($tmp), '%_');
         //			$tmp = preg_replace('/  +/', ' ', $tmp);
         $tmp = preg_split('/\\s+/', $tmp);
         $where = '';
         if (sizeof($tmp)) {
             $_tmp = preg_grep('/^[^\\+|-].{3,}/', $tmp);
             array_walk($_tmp, array(&$this, '_create_string_like'));
             // +
             $__tmp = preg_grep('/^\\+.{3,}/', $tmp);
             array_walk($__tmp, array(&$this, '_create_string_like'), '+');
             // -
             $___tmp = preg_grep('/^-.{3,}/', $tmp);
             array_walk($___tmp, array(&$this, '_create_string_like'), '-');
             if (!empty($_tmp)) {
                 $where = 'WHERE (' . implode(isset($_REQUEST['or']) && 1 == $_REQUEST['or'] ? ' OR ' : ' AND ', $_tmp) . ')';
                 if (!empty($__tmp)) {
                     $where .= ' AND ' . implode(' AND ', array_merge($__tmp, $___tmp));
                 }
             } elseif (!empty($__tmp)) {
                 $where = 'WHERE ' . implode(' AND ', array_merge($__tmp, $___tmp));
             }
         }
         $num = 0;
         if ($where != '') {
             $type_search = isset($_REQUEST['ts']) && 1 == $_REQUEST['ts'];
             $limit = $this->_limit;
             $start = get_current_page() * $limit - $limit;
             $query_feld = $AVE_DB->Query("\r\n\t\t\t\t\tSELECT SQL_CALC_FOUND_ROWS\r\n\t\t\t\t\t\tdocument_id,\r\n\t\t\t\t\t\tfield_value\r\n\t\t\t\t\tFROM " . PREFIX . "_document_fields\r\n\t\t\t\t\tLEFT JOIN " . PREFIX . "_rubric_fields AS rub\r\n\t\t\t\t\t\tON rubric_field_id = rub.Id\r\n\t\t\t\t\t" . $where . "\r\n\t\t\t\t\tAND rubric_field_type = '" . ($type_search ? 'kurztext' : 'langtext') . "'\r\n\t\t\t\t\tAND document_in_search = '1'\r\n\t\t\t\t\tLIMIT " . $start . "," . $limit);
             $num = $AVE_DB->Query("SELECT FOUND_ROWS()")->GetCell();
             $sw = addslashes(mb_strtolower($this->_search_string));
             $exist = $AVE_DB->Query("\r\n\t\t\t\t\tSELECT 1\r\n\t\t\t\t\tFROM " . PREFIX . "_modul_search\r\n\t\t\t\t\tWHERE search_query = '" . $sw . "'\r\n\t\t\t\t\tLIMIT 1\r\n\t\t\t\t")->NumRows();
             if ($exist) {
                 $AVE_DB->Query("\r\n\t\t\t\t\t\tUPDATE " . PREFIX . "_modul_search\r\n\t\t\t\t\t\tSET\r\n\t\t\t\t\t\t\tsearch_found = '" . (int) $num . "',\r\n\t\t\t\t\t\t\tsearch_count = search_count+1\r\n\t\t\t\t\t\tWHERE search_query = '" . $sw . "'\r\n\t\t\t\t\t");
             } else {
                 $AVE_DB->Query("\r\n\t\t\t\t\t\tINSERT\r\n\t\t\t\t\t\tINTO " . PREFIX . "_modul_search\r\n\t\t\t\t\t\tSET\r\n\t\t\t\t\t\t\tId = '',\r\n\t\t\t\t\t\t\tsearch_found = '" . (int) $num . "',\r\n\t\t\t\t\t\t\tsearch_query = '" . $sw . "',\r\n\t\t\t\t\t\t\tsearch_count = 1\r\n\t\t\t\t\t");
             }
             if ($num > $limit) {
                 $page_nav = " <a class=\"pnav\" href=\"index.php?module=search&amp;query=" . urlencode($this->_search_string) . ($type_search ? '&amp;ts=1' : '') . (isset($_REQUEST['or']) && 1 == $_REQUEST['or'] ? "&amp;or=1" : "") . "&amp;page={s}\">{t}</a> ";
                 $page_nav = get_pagination(ceil($num / $limit), 'page', $page_nav, trim(get_settings('navi_box')));
                 $AVE_Template->assign('q_navi', $page_nav);
             }
         }
         if ($num > 0) {
             $modul_search_results = array();
             array_walk($this->_stem_words, create_function('&$val', '$val=preg_quote(stripslashes(stripslashes(str_replace("\\"","&quot;",$val))),"/");'));
             $regex_snapshot = '/.{0,100}[^\\s]*' . implode('[^\\s]*.{0,100}|.{0,100}[^\\s]*', $this->_stem_words) . '[^\\s]*.{0,100}/is';
             $regex_highlight = '/[^\\s]*' . implode('[^\\s]*|[^\\s]*', $this->_stem_words) . '[^\\s]*/is';
             $doctime = get_settings('use_doctime') ? "AND document_published <= " . time() . " AND (document_expire = 0 OR document_expire >= " . time() . ")" : '';
             while ($row_feld = $query_feld->FetchRow()) {
                 $sql = $AVE_DB->Query("\r\n\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\tId,\r\n\t\t\t\t\t\t\tdocument_title,\r\n\t\t\t\t\t\t\tdocument_alias\r\n\t\t\t\t\t\tFROM " . PREFIX . "_documents\r\n\t\t\t\t\t\tWHERE Id = '" . $row_feld->document_id . "'\r\n\t\t\t\t\t\tAND document_deleted = '0'\r\n\t\t\t\t\t\tAND document_status = '1'\r\n\t\t\t\t\t\t" . $doctime);
                 while ($row = $sql->FetchRow()) {
                     $row->Text = $row_feld->field_value;
                     $row->Text = strip_tags($row->Text, $this->_allowed_tags);
                     $fo = array();
                     preg_match($regex_snapshot, $row->Text, $fo);
                     $row->Text = $type_search ? '' : ' ... ';
                     while (list($key, $val) = @each($fo)) {
                         $row->Text .= $val . ($type_search ? '' : ' ... ');
                     }
                     if (1 == $this->_highlight && !empty($this->_stem_words)) {
                         $row->Text = @preg_replace($regex_highlight, "<span class=\"mod_search_highlight\">\$0</span>", $row->Text);
                     }
                     $row->document_alias = rewrite_link('index.php?id=' . $row->Id . '&amp;doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias));
                     array_push($modul_search_results, $row);
                 }
             }
             $AVE_Template->assign('searchresults', $modul_search_results);
         } else {
             $AVE_Template->assign('no_results', 1);
         }
     } else {
         $AVE_Template->assign('no_results', 1);
     }
     if (!defined('MODULE_CONTENT')) {
         $AVE_Template->assign('inc_path', BASE_DIR . '/modules/search/templates');
         define('MODULE_CONTENT', $AVE_Template->fetch($tpl_dir . 'results.tpl'));
     }
 }
Esempio n. 14
0
 /**
  * Generate news rss
  * 
  * @return void
  */
 public function rss()
 {
     $rss_settings = $this->News_model->get_rss_settings();
     $this->load->library('rssfeed');
     $current_lang = $this->pg_language->languages[$this->pg_language->current_lang_id];
     $this->rssfeed->set_channel(site_url(), $rss_settings["rss_feed_channel_title"], $rss_settings["rss_feed_channel_description"], $current_lang["code"]);
     if ($rss_settings["rss_feed_image_url"]) {
         $this->rssfeed->set_image($rss_settings["rss_feed_image_media"]["thumbs"]["rss"], $rss_settings["rss_feed_image_title"], site_url());
     }
     $attrs["where"]["status"] = "1";
     if (!$rss_settings["rss_use_feeds_news"]) {
         $attrs["where"]["feed_id"] = "";
     }
     $news = $this->News_model->get_news_list(1, $rss_settings["rss_news_max_count"], array('date_add' => "DESC"), $attrs);
     if (!empty($news)) {
         $this->load->helper('seo');
         foreach ($news as $item) {
             $url = rewrite_link("news", "view", $item);
             $this->rssfeed->set_item($url, $item["name"], $item["annotation"], $item["date_add"]);
         }
     }
     $this->rssfeed->send();
     return;
 }
Esempio n. 15
0
 function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $auth = $this->CI->session->userdata('auth_type');
     $block = array();
     if ('user' === $auth) {
         $block[] = array('name' => l('header_winks', 'winks'), 'link' => rewrite_link('winks', 'index'), 'clickable' => true);
     }
     return $block;
 }
Esempio n. 16
0
 public function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $auth = $this->CI->session->userdata("auth_type");
     $block = array();
     $users_block = array("name" => l('header_profile', 'users'), "link" => rewrite_link('users', 'profile', array('section-code' => 'view', 'section-name' => l('filter_section_view', 'users'))), "clickable" => $auth == "user", "items" => array(array("name" => l('header_login', 'users'), "link" => rewrite_link('users', 'login_form'), "clickable" => !($auth == "user")), array("name" => l('link_edit_account', 'users'), "link" => rewrite_link('users', 'account'), "clickable" => $auth == "user"), array("name" => l('link_edit_profile', 'users'), "link" => rewrite_link('users', 'profile'), "clickable" => $auth == "user"), array("name" => l('header_account_settings', 'users'), "link" => rewrite_link('users', 'settings'), "clickable" => $auth == "user"), array("name" => l('header_my_visits', 'users'), "link" => rewrite_link('users', 'my_visits'), "clickable" => $auth == "user"), array("name" => l('header_my_guests', 'users'), "link" => rewrite_link('users', 'my_guests'), "clickable" => $auth == "user"), array("name" => l('header_perfect_match_results', 'users'), "link" => rewrite_link('users', 'perfect_match'), "clickable" => $auth == "user"), array("name" => l('header_find_people', 'users'), "link" => rewrite_link('users', 'search'), "clickable" => $auth == "user")));
     if ($this->CI->pg_module->is_module_installed('banners')) {
         $users_block['items'][] = array("name" => l('header_my_banners', 'banners'), "link" => site_url() . 'users/account/banners', "clickable" => $auth == "user");
     }
     $users_block['items'][] = array("name" => l('link_logout', 'users'), "link" => site_url() . "users/logout", "clickable" => $auth == "user");
     $block[] = $users_block;
     return $block;
 }
Esempio n. 17
0
 /**
  * Return data for sitemap page
  * 
  * @return array
  */
 public function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $lang_id = $this->CI->pg_language->current_lang_id;
     $pages = $this->get_active_pages_list($lang_id, 0);
     $block = array();
     foreach ($pages as $page) {
         $sub = array();
         if (!empty($page["sub"])) {
             foreach ($page["sub"] as $sub_page) {
                 $sub[] = array("name" => $sub_page["title"], "link" => rewrite_link('content', 'view', $sub_page), "clickable" => true);
             }
         }
         $block[] = array("name" => $page["title"], "link" => rewrite_link('content', 'view', $page), "clickable" => true, "items" => $sub);
     }
     return $block;
 }
Esempio n. 18
0
/**
 * Обработка тега запроса.
 * Возвращает список документов удовлетворяющих параметрам запроса
 * оформленный с использованием шаблона
 *
 * @param int $id	идентификатор запроса
 * @return string
 */
function request_parse($id)
{
    global $AVE_Core, $AVE_DB, $request_documents;
    $return = '';
    if (is_array($id)) {
        $id = $id[1];
    }
    $row_ab = $AVE_DB->Query("\r\n\t\tSELECT *\r\n\t\tFROM " . PREFIX . "_request\r\n\t\tWHERE Id = '" . $id . "'\r\n\t")->FetchRow();
    if (is_object($row_ab)) {
        $ttl = (int) $row_ab->request_cache_lifetime;
        $limit = $row_ab->request_items_per_page < 1 ? 1 : $row_ab->request_items_per_page;
        $main_template = $row_ab->request_template_main;
        $item_template = $row_ab->request_template_item;
        $request_order_by = $row_ab->request_order_by;
        $request_asc_desc = $row_ab->request_asc_desc;
        $request_order = $request_order_by . " " . $request_asc_desc;
        $request_order_fields = '';
        $request_order_tables = '';
        if ($row_ab->request_order_by_nat) {
            $request_order_tables = "LEFT JOIN " . PREFIX . "_document_fields AS s" . $row_ab->request_order_by_nat . "\r\n\t\t\t    ON (s" . $row_ab->request_order_by_nat . ".document_id = a.Id and s" . $row_ab->request_order_by_nat . ".rubric_field_id=" . $row_ab->request_order_by_nat . ")";
            $request_order_fields = "s" . $row_ab->request_order_by_nat . ".field_value, ";
            $request_order = "s" . $row_ab->request_order_by_nat . ".field_value " . $row_ab->request_asc_desc;
        }
        $doctime = get_settings('use_doctime') ? "AND a.document_published <= UNIX_TIMESTAMP() AND\r\n \t\t         \t(a.document_expire = 0 OR a.document_expire >=UNIX_TIMESTAMP())" : '';
        $where_cond = empty($_POST['req_' . $id]) && empty($_SESSION['doc_' . $AVE_Core->curentdoc->Id]['req_' . $id]) ? unserialize($row_ab->request_where_cond) : unserialize(request_get_condition_sql_string($row_ab->Id));
        $where_cond['from'] = str_replace('%%PREFIX%%', PREFIX, $where_cond['from']);
        $where_cond['where'] = str_replace('%%PREFIX%%', PREFIX, $where_cond['where']);
        if ($row_ab->request_show_pagination == 1) {
            if (!empty($AVE_Core->install_modules['comment']->Status)) {
                $num = $AVE_DB->Query(eval2var(" ?> \r\n\t\t\t\t\tSELECT COUNT(*)\r\n\t\t\t\t\tFROM \r\n\t\t\t\t\t" . ($where_cond['from'] ? $where_cond['from'] : '') . "\r\n\t\t\t\t\t" . PREFIX . "_documents AS a\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\ta.Id != '1'\r\n\t\t\t\t\tAND a.Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\t\t\tAND a.Id != '" . get_current_document_id() . "'\r\n\t\t\t\t\tAND a.rubric_id = '" . $row_ab->rubric_id . "'\r\n\t\t\t\t\tAND a.document_deleted != '1'\r\n\t\t\t\t\tAND a.document_status != '0'\r\n\t\t\t\t\t" . $where_cond['where'] . "\r\n\t\t\t\t\t" . $doctime . "\r\n\t\t\t\t<?php "), $ttl, 'rub_' . $row_ab->rubric_id)->GetCell();
            } else {
                $num = $AVE_DB->Query(eval2var(" ?>\r\n\t\t\t\t\tSELECT COUNT(*)\r\n\t\t\t\t\tFROM \r\n\t\t\t\t\t" . ($where_cond['from'] ? $where_cond['from'] : '') . "\r\n\t\t\t\t\t" . PREFIX . "_documents AS a\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\ta.Id != '1'\r\n\t\t\t\t\tAND a.Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\t\t\tAND a.Id != '" . get_current_document_id() . "'\r\n\t\t\t\t\tAND a.rubric_id = '" . $row_ab->rubric_id . "'\r\n\t\t\t\t\tAND a.document_deleted != '1'\r\n\t\t\t\t\tAND a.document_status != '0'\r\n\t\t\t\t\t" . $where_cond['where'] . "\r\n\t\t\t\t\t" . $doctime . "\r\n\t\t\t\t<?php "), $ttl, 'rub_' . $row_ab->rubric_id)->GetCell();
            }
            $seiten = ceil($num / $limit);
            if (isset($_REQUEST['apage']) && is_numeric($_REQUEST['apage']) && $_REQUEST['apage'] > $seiten) {
                $redirect_link = rewrite_link('index.php?id=' . $AVE_Core->curentdoc->Id . '&amp;doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias) . (isset($_REQUEST['artpage']) && is_numeric($_REQUEST['artpage']) ? '&amp;artpage=' . $_REQUEST['artpage'] : '') . (isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? '&amp;page=' . $_REQUEST['page'] : ''));
                header('Location:' . $redirect_link);
                exit;
            }
            $start = get_current_page('apage') * $limit - $limit;
        } else {
            $start = 0;
        }
        if ($row_ab->request_items_per_page != 0) {
            $filter_limit = "LIMIT " . $start . "," . $limit;
        }
        if (!empty($AVE_Core->install_modules['comment']->Status)) {
            $q = " ?>\r\n\t\t\t\tSELECT\r\n\t\t\t\t\t" . $request_order_fields . "\r\n\t\t\t\t\ta.Id,\r\n\t\t\t\t\ta.document_title,\r\n\t\t\t\t\ta.document_alias,\r\n\t\t\t\t\ta.document_author_id,\r\n\t\t\t\t\ta.document_count_view,\r\n\t\t\t\t\ta.document_published,\r\n\t\t\t\t\tCOUNT(b.document_id) AS nums\r\n\t\t\t\tFROM\r\n\t\t\t\t\t" . ($where_cond['from'] ? $where_cond['from'] : '') . "\r\n\t\t\t\t\t" . PREFIX . "_documents AS a\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\t" . PREFIX . "_modul_comment_info AS b\r\n\t\t\t\t\t\tON b.document_id = a.Id\r\n\t\t\t\t    " . ($request_order_tables > '' ? $request_order_tables : '') . "\t\r\n\t\t\t\tWHERE\r\n\t\t\t\t\ta.Id != '1'\r\n\t\t\t\tAND a.Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\t\tAND a.Id != '" . get_current_document_id() . "'\r\n\t\t\t\tAND a.rubric_id = '" . $row_ab->rubric_id . "'\r\n\t\t\t\tAND a.document_deleted != '1'\r\n\t\t\t\tAND a.document_status != '0'\r\n\t\t\t\t" . $where_cond['where'] . "\r\n\t\t\t\t" . $doctime . "\r\n\t\t\t\tGROUP BY a.Id\r\n\t\t\t\tORDER BY " . $request_order . "\r\n\t\t\t\t" . $filter_limit . " <?php ";
        } else {
            $q = " ?>\r\n\t\t\t\tSELECT\r\n\t\t\t\t\t" . $request_order_fields . "\r\n\t\t\t\t\ta.Id,\r\n\t\t\t\t\ta.document_title,\r\n\t\t\t\t\ta.document_alias,\r\n\t\t\t\t\ta.document_author_id,\r\n\t\t\t\t\ta.document_count_view,\r\n\t\t\t\t\ta.document_published\r\n\t\t\t\tFROM\r\n\t\t\t\t\t" . ($where_cond['from'] ? $where_cond['from'] : '') . "\r\n\t\t\t\t\t\r\n\t\t\t\t\t" . PREFIX . "_documents AS a\r\n\t\t\t\t\t" . ($request_order_tables > '' ? $request_order_tables : "") . "\r\n\t\t\t\tWHERE\r\n\t\t\t\t\ta.Id != '1'\r\n\t\t\t\tAND a.Id != '" . PAGE_NOT_FOUND_ID . "'\r\n\t\t\t\tAND a.Id != '" . get_current_document_id() . "'\r\n\t\t\t\tAND a.rubric_id = '" . $row_ab->rubric_id . "'\r\n\t\t\t\tAND a.document_deleted != '1'\r\n\t\t\t\tAND a.document_status != '0'\r\n\t\t\t\t" . $where_cond['where'] . "\r\n\t\t\t\t" . $doctime . "\r\n\t\t\t\tORDER BY " . $request_order . "\r\n\t\t\t\t" . $filter_limit . " <?php ";
        }
        $q = eval2var($q);
        $q = $AVE_DB->Query($q, $ttl, 'rub_' . $row_ab->rubric_id);
        if ($q->NumRows() > 0) {
            $main_template = preg_replace('/\\[tag:if_empty](.*?)\\[\\/tag:if_empty]/si', '', $main_template);
            $main_template = str_replace(array('[tag:if_notempty]', '[/tag:if_notempty]'), '', $main_template);
        } else {
            $main_template = preg_replace('/\\[tag:if_notempty](.*?)\\[\\/tag:if_notempty]/si', '', $main_template);
            $main_template = str_replace(array('[tag:if_empty]', '[/tag:if_empty]'), '', $main_template);
        }
        $page_nav = '';
        if ($row_ab->request_show_pagination == 1 && $seiten > 1 && $row_ab->request_items_per_page != 0) {
            $page_nav = ' <a class="pnav" href="index.php?id=' . $AVE_Core->curentdoc->Id . '&amp;doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias) . (isset($_REQUEST['artpage']) && is_numeric($_REQUEST['artpage']) ? '&amp;artpage=' . $_REQUEST['artpage'] : '') . '&amp;apage={s}' . (isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? '&amp;page=' . $_REQUEST['page'] : '') . '">{t}</a> ';
            $page_nav = get_pagination($seiten, 'apage', $page_nav, get_settings('navi_box'));
            $page_nav = rewrite_link($page_nav);
        }
        $rows = array();
        $request_documents = array();
        while ($row = $q->FetchRow()) {
            array_push($request_documents, $row->Id);
            array_push($rows, $row);
        }
        $items = '';
        foreach ($rows as $row) {
            $cachefile_docid = BASE_DIR . '/cache/sql/doc_' . $row->Id . '/request-' . $id . '.cache';
            if (!file_exists($cachefile_docid)) {
                $item = preg_replace('/\\[tag:rfld:(\\d+)]\\[(more|esc|[0-9-]+)]/e', "request_get_document_field(\"\$1\", {$row->Id}, \"\$2\")", $item_template);
                //if(!file_exists(dirname($cachefile_docid)))mkdir(dirname($cachefile_docid),0777,true);
                //file_put_contents($cachefile_docid,$item);
            } else {
                $item = file_get_contents($cachefile_docid);
            }
            $link = rewrite_link('index.php?id=' . $row->Id . '&amp;doc=' . (empty($row->document_alias) ? prepare_url($row->document_title) : $row->document_alias));
            $item = str_replace('[tag:link]', $link, $item);
            $item = str_replace('[tag:docid]', $row->Id, $item);
            $item = str_replace('[tag:doctitle]', $row->document_title, $item);
            $item = str_replace('[tag:docparent]', $row->document_parent, $item);
            $item = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $row->document_published)), $item);
            $item = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $row->document_published)), $item);
            $item = str_replace('[tag:docauthor]', get_username_by_id($row->document_author_id), $item);
            $item = str_replace('[tag:docviews]', $row->document_count_view, $item);
            $item = str_replace('[tag:doccomments]', isset($row->nums) ? $row->nums : '', $item);
            $items .= $item;
        }
        $main_template = str_replace('[tag:pages]', $page_nav, $main_template);
        $main_template = str_replace('[tag:doctotal]', $seiten * $q->NumRows(), $main_template);
        $main_template = str_replace('[tag:pagetitle]', $AVE_DB->Query("SELECT document_title FROM " . PREFIX . "_documents WHERE Id = '" . $AVE_Core->curentdoc->Id . "' ")->GetCell(), $main_template);
        $main_template = str_replace('[tag:docid]', $AVE_Core->curentdoc->Id, $main_template);
        $main_template = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $AVE_Core->curentdoc->document_published)), $main_template);
        $main_template = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $AVE_Core->curentdoc->document_published)), $main_template);
        $main_template = str_replace('[tag:docauthor]', get_username_by_id($AVE_Core->curentdoc->document_author_id), $main_template);
        $main_template = preg_replace('/\\[tag:dropdown:([,0-9]+)\\]/e', "request_get_dropdown(\"\$1\", " . $row_ab->rubric_id . ", " . $row_ab->Id . ");", $main_template);
        $return = str_replace('[tag:content]', $items, $main_template);
        $return = str_replace('[tag:path]', ABS_PATH, $return);
        $return = str_replace('[tag:mediapath]', ABS_PATH . 'templates/' . THEME_FOLDER . '/', $return);
        $return = $AVE_Core->coreModuleTagParse($return);
    }
    return $return;
}
Esempio n. 19
0
 public function _parse_link($item)
 {
     $item["module"] = $item["controller"] = $item["method"] = $item["link_out"] = $item["link_in"] = "";
     $link = str_replace(site_url(), "", $item["link"]);
     if (substr($link, 0, 1) == "/") {
         $link = substr($link, 1);
     }
     if (preg_match("/^([a-z]{3,5}:\\/\\/)/i", $link)) {
         $item["link_out"] = $link;
         return $item;
     }
     $params = explode("/", $link);
     if ($params[0] == "admin") {
         $params[1] = !empty($params[1]) ? $params[1] : $this->CI->router->default_controller;
         $item["controller"] = "admin_" . $params[1];
         $item["module"] = $params[1];
         $item["method"] = !empty($params[2]) ? $params[2] : "index";
         $item["params"] = array_slice($params, 3);
         $is_admin = true;
     } else {
         $params[0] = !empty($params[0]) ? $params[0] : $this->CI->router->default_controller;
         $item["controller"] = $item["module"] = $params[0];
         $item["method"] = !empty($params[1]) ? $params[1] : "index";
         $item["params"] = array_slice($params, 2);
         $is_admin = false;
     }
     $item["link_in"] = $item["link"];
     if (!empty($item["module"]) && !empty($item["method"]) && $this->CI->pg_module->get_module_by_gid($item["module"])) {
         $params_str = !empty($item["params"]) ? implode("|", $item["params"]) : "";
         $this->CI->load->helper("seo");
         $item["link"] = rewrite_link($item["module"], $item["method"], $params_str, $is_admin);
     } else {
         $item["link"] = site_url() . $item["link"];
     }
     return $item;
 }
Esempio n. 20
0
 /**
  * Авторизация пользователя
  *
  */
 function loginUserLogin()
 {
     global $AVE_Template;
     if (empty($_SESSION['referer'])) {
         $referer = get_referer_link();
         $_SESSION['referer'] = false === strstr($referer, 'module=login') ? $referer : get_home_link();
     }
     if (!empty($_POST['user_login']) && !empty($_POST['user_pass'])) {
         $result = user_login($_POST['user_login'], $_POST['user_pass'], 1, (int) (isset($_POST['SaveLogin']) && $_POST['SaveLogin'] == 1));
         if ($result === true) {
             header('Location:' . rewrite_link($_SESSION['referer']));
             unset($_SESSION['referer']);
             exit;
         } elseif ($result === 3) {
             header('Location:' . ABS_PATH . 'index.php?module=login&action=register&sub=registerfinal');
             exit;
         } else {
             unset($_SESSION['user_id'], $_SESSION['user_pass']);
             $AVE_Template->assign('login', false);
         }
     } else {
         $AVE_Template->assign('login', false);
     }
     if ($this->_loginSettingsGet('login_status') == 1) {
         $AVE_Template->assign('active', 1);
     }
     $AVE_Template->config_load($this->_lang_file, 'loginprocess');
     if (!defined('MODULE_CONTENT')) {
         define('MODULE_CONTENT', $AVE_Template->fetch($this->_tpl_dir . 'process.tpl'));
     }
 }
Esempio n. 21
0
/**
 * Выборка докуметов из БД на основании Месяца, Года и Дня
 * День необязательный параметр
 *
 * @param int $newsarchive_id	идентификатор архива
 * @param int $month			месяц
 * @param int $year				год
 * @param int $day				день
 */
function show_by($newsarchive_id, $month, $year, $day = 0)
{
    global $AVE_DB, $AVE_Template;
    if (defined('MODULE_CONTENT')) {
        return;
    }
    $assign = array();
    $tpl_dir = BASE_DIR . '/modules/newsarchive/templates/';
    $lang_file = BASE_DIR . '/modules/newsarchive/lang/' . $_SESSION['user_language'] . '.txt';
    $AVE_Template->config_load($lang_file, 'admin');
    // Определяем, пришел ли в запросе номер дня
    $db_day = is_numeric($day) && $day != 0 ? "AND DAYOFMONTH(FROM_UNIXTIME(a.document_published)) = '" . $day . "'" : '';
    // Выбираем все параметры для запроса с текущим ID
    $newsarchive = $AVE_DB->Query("\r\n\t\tSELECT *\r\n\t\tFROM " . PREFIX . "_modul_newsarchive\r\n\t\tWHERE id = '" . (int) $newsarchive_id . "'\r\n\t")->FetchRow();
    // Формирование условий сортировки выводимых документов
    $db_sort = 'ORDER BY a.document_published ASC';
    if (isset($_REQUEST['sort'])) {
        switch ($_REQUEST['sort']) {
            case 'title':
                $db_sort = 'ORDER BY a.document_title ASC';
                break;
            case 'title_desc':
                $db_sort = 'ORDER BY a.document_title DESC';
                break;
            case 'date':
                $db_sort = 'ORDER BY a.document_published ASC';
                break;
            case 'date_desc':
                $db_sort = 'ORDER BY a.document_published DESC';
                break;
            case 'rubric':
                $db_sort = 'ORDER BY b.rubric_title ASC';
                break;
            case 'rubric_desc':
                $db_sort = 'ORDER BY b.rubric_title DESC';
                break;
            default:
                $db_sort = 'ORDER BY a.document_published ASC';
                break;
        }
    }
    $doctime = get_settings('use_doctime') ? "AND document_published <= " . time() . " AND (document_expire = 0 OR document_expire >= " . time() . ")" : '';
    // Выбираем из БД документы. которые соответствуют условиям для запроса и модуля
    $query = $AVE_DB->Query("\r\n\t\tSELECT\r\n\t\t  \ta.Id,\r\n\t\t  \ta.rubric_id,\r\n\t\t  \ta.document_title,\r\n\t\t  \ta.document_alias,\r\n\t\t  \ta.document_published,\r\n\t\t  \tb.rubric_title\r\n\t  \tFROM\r\n\t  \t\t" . PREFIX . "_documents as a,\r\n\t  \t\t" . PREFIX . "_rubrics as b\r\n\t\tWHERE rubric_id IN (" . $newsarchive->newsarchive_rubrics . ")\r\n\t\tAND MONTH(FROM_UNIXTIME(a.document_published)) = '" . (int) $month . "'\r\n\t\tAND YEAR(FROM_UNIXTIME(a.document_published))= '" . (int) $year . "'\r\n\t\t" . $db_day . "\r\n\t\tAND a.rubric_id = b.Id\r\n\t\tAND a.Id != '" . PAGE_NOT_FOUND_ID . "'\r\n  \t\tAND document_deleted != '1'\r\n  \t\tAND document_status != '0'\r\n  \t\t" . $doctime . "\r\n\t\t" . $db_sort . "\r\n\t");
    // Заполняем массив докуметов результатами из БД
    $documents = array();
    while ($doc = $query->FetchRow()) {
        $doc->document_alias = rewrite_link('index.php?id=' . $doc->Id . '&amp;doc=' . (empty($doc->document_alias) ? prepare_url($doc->document_title) : $doc->document_alias));
        array_push($documents, $doc);
    }
    // Формируем меню навигации по дням
    $day_in_month = date('t', mktime(0, 0, 0, (int) $month, 1, (int) $year));
    $m_arr = array(null, 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
    $assign['newsarchive'] = $newsarchive;
    $assign['documents'] = $documents;
    $assign['days'] = range(1, $day_in_month);
    $assign['month_name'] = $m_arr[(int) $month];
    $assign['year'] = (int) $year;
    $assign['month'] = (int) $month;
    $assign['day'] = (int) $day;
    $AVE_Template->assign($assign);
    define('MODULE_SITE', $AVE_Template->get_config_vars('ARCHIVE_FROM') . ' ' . $m_arr[(int) $month] . ', ' . (int) $year . ' ' . $AVE_Template->get_config_vars('ARCHIVE_YEAR'));
    define('MODULE_CONTENT', $AVE_Template->fetch($tpl_dir . 'archive_result.tpl'));
}
Esempio n. 22
0
 public function ajax_available_user_activate_in_search()
 {
     $return = array('available' => 0, 'content' => '', 'display_login' => 0);
     if ($this->session->userdata('auth_type') != 'user') {
         $return['display_login'] = 1;
     } else {
         $return = $this->Users_model->service_available_user_activate_in_search_action($this->user_id);
         if ($return["content_buy_block"] == true) {
             $this->load->model('services/models/Services_users_model');
             $return["content"] = $this->Services_users_model->available_service_block($this->user_id, 'user_activate_in_search_template');
             $this->load->helper('seo');
             $this->session->set_userdata(array('service_redirect' => rewrite_link('users', 'profile')));
         }
     }
     exit(json_encode($return));
 }
Esempio n. 23
0
 /**
  * Return data for generating site map
  * 
  * @return array
  */
 public function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $auth = $this->CI->session->userdata("auth_type");
     $block[] = array("name" => l('header_news', 'news'), "link" => rewrite_link('news', 'index'), "clickable" => true);
     return $block;
 }
Esempio n. 24
0
 public function format_list($list)
 {
     if (empty($list) || !is_array($list)) {
         return array();
     }
     $users_ids = array();
     foreach ($list as $l) {
         $users_ids[] = $l['id_contact'];
     }
     if ($users_ids) {
         $this->CI->load->helper('seo');
         $this->CI->load->model('Users_model');
         $users = $this->CI->Users_model->get_users_list_by_key(null, null, null, array(), $users_ids);
         $users[0] = $this->CI->Users_model->format_default_user(1);
         foreach ($list as &$l) {
             $user = !empty($users[$l['id_contact']]) ? $users[$l['id_contact']] : $users[0];
             $l['contact_user'] = array('id' => intval($user['id']), 'output_name' => $user['output_name'], 'age' => !empty($user['age']) ? intval($user['age']) : 0, 'location' => !empty($user['location']) ? $user['location'] : '', 'thumbs' => $user['media']['user_logo']['thumbs'], 'link' => rewrite_link('users', 'view', $user));
         }
     }
     return $list;
 }
Esempio n. 25
0
/**
 * Рекурсивная функция для формирования меню навигации
 *
 * @param object	$navi_menu меню (шаблоны, параметры)
 * @param array		$navi_items (пункты по родителям)
 * @param array		$navi_active_way ("активный путь")
 * @param array		$navi_item_tpl (шаблоны пунктов)
 * @param int		$parent (исследуемый родитель, изначально 0 - верхний уровень)
 * @return string	$navi - готовый код навигации
 */
function printNavi($navi_menu, $navi_items, $navi_active_way, $navi_item_tpl, $parent = 0)
{
    // выясняем уровень
    $navi_item_level = $navi_items[$parent][0]['navi_item_level'];
    // собираем каждый пункт в данном родителе -> в переменной $item
    foreach ($navi_items[$parent] as $row) {
        // Проверяем пункт меню на принадлежность к "активному пути" и выбираем шаблон
        $item = in_array($row['Id'], $navi_active_way) ? $navi_item_tpl[$navi_item_level]['active'] : $navi_item_tpl[$navi_item_level]['inactive'];
        ################### ПАРСИМ ТЕГИ ###################
        // id
        @($item = str_replace('[tag:linkid]', $row['Id'], $item));
        // название
        @($item = str_replace('[tag:linkname]', $row['title'], $item));
        // ссылка
        if (strpos($row['navi_item_link'], 'module=') === false && start_with('index.php?', $row['navi_item_link'])) {
            $item = str_replace('[tag:link]', $row['navi_item_link'] . "&amp;doc=" . (!$row['document_alias'] ? prepare_url($row['title']) : $row['document_alias']), $item);
            $item = str_ireplace('"//"', '"/"', str_ireplace('///', '/', rewrite_link($item)));
        } else {
            $item = str_replace('[tag:link]', $row['navi_item_link'], $item);
            if (start_with('www.', $row['navi_item_link'])) {
                $item = str_replace('www.', 'http://www.', $item);
            }
        }
        // target
        $item = str_replace('[tag:target]', empty($row['navi_item_target']) ? '_self' : $row['navi_item_target'], $item);
        // описание
        @($item = str_replace('[tag:desc]', stripslashes($row['navi_item_desc']), $item));
        // изображение
        @($item = str_replace('[tag:img]', stripslashes($row['navi_item_Img']), $item));
        @($img = explode(".", $row['navi_item_Img']));
        @($row['Img_act'] = $img[0] . "_act." . $img[1]);
        @($item = str_replace('[tag:img_act]', stripslashes($row['Img_act']), $item));
        @($item = str_replace('[tag:img_id]', stripslashes($row['navi_item_Img_id']), $item));
        ################### /ПАРСИМ ТЕГИ ##################
        // Определяем тег для вставки следующего уровня
        switch ($navi_item_level) {
            case 1:
                $tag = '[tag:level:2]';
                break;
            case 2:
                $tag = '[tag:level:3]';
        }
        // Если есть подуровень, то заново запускаем для него функцию и вставляем вместо тега
        if (!empty($navi_items[$row['Id']])) {
            $item_sublevel = printNavi($navi_menu, $navi_items, $navi_active_way, $navi_item_tpl, $row['Id']);
            $item = @str_replace($tag, $item_sublevel, $item);
        } else {
            $item = @str_replace($tag, '', $item);
        }
        // Подставляем в переменную навигации готовый пункт
        if (empty($navi)) {
            $navi = '';
        }
        $navi .= $item;
    }
    // Вставляем все пункты уровня в шаблон уровня
    switch ($navi_item_level) {
        case 1:
            $navi = str_replace("[tag:content]", $navi, $navi_menu->navi_level1begin);
            break;
        case 2:
            $navi = str_replace("[tag:content]", $navi, $navi_menu->navi_level2begin);
            break;
        case 3:
            $navi = str_replace("[tag:content]", $navi, $navi_menu->navi_level3begin);
            break;
    }
    // Возвращаем сформированный уровень
    return $navi;
}
Esempio n. 26
0
 /**
  * Вывод галереи
  *
  * @param string $tpl_dir - путь к папке с шаблонами модуля
  * @param int $gallery_id - идентификатор галереи
  * @param int $lim - количество изображений на странице
  * @param int $ext - признак вывода всех изображений галереи
  */
 function galleryShow($tpl_dir, $gallery_id, $lim, $ext = 0)
 {
     global $AVE_DB, $AVE_Template, $AVE_Core;
     $assign = $images = array();
     $row_gs = $AVE_DB->Query("\r\n\t\t\tSELECT *\r\n\t\t\tFROM " . PREFIX . "_modul_gallery\r\n\t\t\tWHERE id = '" . $gallery_id . "'\r\n\t\t")->FetchRow();
     $limit = $row_gs->gallery_image_on_page > 0 ? $row_gs->gallery_image_on_page : $this->_default_limit_images;
     $limit = empty($lim) ? $limit : $lim;
     $limit = $ext != 1 ? $limit : 10000;
     $start = get_current_page() * $limit - $limit;
     switch ($row_gs->gallery_orderby) {
         case 'position':
             $order_by = "image_position ASC";
             break;
         case 'titleasc':
             $order_by = "image_title ASC";
             break;
         case 'titledesc':
             $order_by = "image_title DESC";
             break;
         case 'dateasc':
             $order_by = "image_date ASC";
             break;
         default:
             $order_by = "image_date DESC";
             break;
     }
     $num = $AVE_DB->Query("\r\n\t\t\tSELECT COUNT(*)\r\n\t\t\tFROM " . PREFIX . "_modul_gallery_images\r\n\t\t\tWHERE gallery_id = '" . $gallery_id . "'\r\n\t\t")->GetCell();
     $sql = $AVE_DB->Query("\r\n\t\t\tSELECT *\r\n\t\t\tFROM " . PREFIX . "_modul_gallery_images\r\n\t\t\tWHERE gallery_id = '" . $gallery_id . "'\r\n\t\t\tORDER BY " . $order_by . "\r\n\t\t\tLIMIT " . $start . "," . $limit . "\r\n\t\t");
     //		$num = $AVE_DB->Query("SELECT FOUND_ROWS()")->GetCell();
     $folder = rtrim('modules/gallery/uploads/' . $row_gs->gallery_folder, '/') . '/';
     while ($row = $sql->FetchAssocArray()) {
         $row['image_type'] = $this->_galleryFileTypeGet($row['image_file_ext']);
         $row['image_author'] = get_username_by_id($row['image_author_id']);
         $row['image_filename'] = rawurlencode($row['image_filename']);
         if (file_exists(BASE_DIR . '/' . $folder . 'th__' . $row['image_filename'])) {
             $row['thumbnail'] = ABS_PATH . $folder . 'th__' . $row['image_filename'];
         } else {
             $row['thumbnail'] = sprintf("%smodules/gallery/thumb.php?file=%s&amp;type=%s&amp;xwidth=%u&amp;folder=%s", ABS_PATH, $row['image_filename'], $row['image_type'], $row_gs->gallery_thumb_width, $row_gs->gallery_folder);
         }
         if ($row_gs->gallery_image_size_show == 1) {
             $fs = filesize(BASE_DIR . '/' . $folder . $row['image_filename']);
             $row['image_size'] = round($fs / 1024, 0);
         }
         if ($row_gs->gallery_type == 7) {
             $search = array('[tag:img:id]', '[tag:img:filename]', '[tag:img:thumbnail]', '[tag:img:title]', '[tag:img:description]', '[tag:gal:id]', '[tag:gal:folder]');
             $replace = array($row['id'], $row['image_filename'], $row['thumbnail'], htmlspecialchars(empty($row['image_title']) ? $AVE_Template->get_config_vars('NoTitle') : $row['image_title'], ENT_QUOTES), htmlspecialchars(empty($row['image_description']) ? $AVE_Template->get_config_vars('NoDescr') : $row['image_description'], ENT_QUOTES), $row_gs->id, ltrim($row_gs->gallery_folder . '/', '/'));
             $row['gallery_script'] = str_replace($search, $replace, $row_gs->gallery_script);
             $row['gallery_image_template'] = str_replace($search, $replace, $row_gs->gallery_image_template);
         }
         array_push($images, $row);
     }
     // Постраничная навигация
     if ($num > $limit) {
         $page_nav = ' <a class="pnav" href="index.php?id=' . $AVE_Core->curentdoc->Id . '&amp;doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias) . (isset($_REQUEST['artpage']) && is_numeric($_REQUEST['artpage']) ? '&amp;artpage=' . $_REQUEST['artpage'] : '') . (isset($_REQUEST['apage']) && is_numeric($_REQUEST['apage']) ? '&amp;apage=' . $_REQUEST['apage'] : '') . '&amp;page={s}' . '">{t}</a> ';
         $page_nav = get_pagination(ceil($num / $limit), 'page', $page_nav, get_settings('navi_box'));
         $assign['page_nav'] = rewrite_link($page_nav);
     }
     $assign['more_images'] = intval(!empty($lim) && $num > $lim);
     $assign['gallery'] = $row_gs;
     $assign['images'] = $images;
     $AVE_Template->assign($assign);
     $AVE_Template->display($tpl_dir . ($ext == 1 ? 'gallery_popup.tpl' : 'gallery.tpl'));
 }
Esempio n. 27
0
 public function get_sitemap_urls()
 {
     $this->CI->load->helper('seo');
     $auth = $this->CI->session->userdata("auth_type");
     $block[] = array("name" => l('header_mailbox', 'mailbox'), "link" => rewrite_link('mailbox', 'index'), "clickable" => $auth == "user", "items" => array(array("name" => l('header_mailbox_write', 'mailbox'), "link" => rewrite_link('mailbox', 'write'), "clickable" => $auth == "user"), array("name" => l('header_mailbox_outbox', 'mailbox'), "link" => rewrite_link('mailbox', 'outbox'), "clickable" => $auth == "user"), array("name" => l('header_mailbox_drafts', 'mailbox'), "link" => rewrite_link('mailbox', 'drafts'), "clickable" => $auth == "user"), array("name" => l('header_mailbox_trash', 'mailbox'), "link" => rewrite_link('mailbox', 'trash'), "clickable" => $auth == "user"), array("name" => l('header_mailbox_spam', 'mailbox'), "link" => rewrite_link('mailbox', 'spam'), "clickable" => $auth == "user")));
     return $block;
 }
Esempio n. 28
0
 /**
  * Метод, предназанченный для сборки всей страницы в единое целое.
  *
  * @param int $id идентификатор документа
  * @param int $rub_id идентификатор рубрики
  */
 function coreSiteFetch($id, $rub_id = '')
 {
     global $AVE_DB;
     // Если происходит вызов модуля, получаем соответствующие мета-теги и получаем шаблон модуля
     if (!empty($_REQUEST['module'])) {
         $out = $this->_coreModuleMetatagsFetch();
         $out = $this->_coreDocumentTemplateGet('', '', $this->_coreModuleTemplateGet());
     } else {
         if (!isset($this->curentdoc->Id) && !$this->_coreCurrentDocumentFetch($id, UGROUP)) {
             // Определяем документ с 404 ошиюкой, в случае, если документ не найден
             if ($this->_corePageNotFoundFetch(PAGE_NOT_FOUND_ID, UGROUP)) {
                 $_REQUEST['id'] = $_GET['id'] = $id = PAGE_NOT_FOUND_ID;
             }
         }
         // проверяем параметры публикации документа
         if (!$this->_coreDocumentIsPublished()) {
             $this->_coreErrorPage404();
         }
         // Определяем права доступа к документам рубрики
         define('RUB_ID', !empty($rub_id) ? $rub_id : $this->curentdoc->rubric_id);
         $this->_coreRubricPermissionFetch(RUB_ID);
         if (!(isset($_SESSION[RUB_ID . '_docread']) && $_SESSION[RUB_ID . '_docread'] == 1 || isset($_SESSION[RUB_ID . '_alles']) && $_SESSION[RUB_ID . '_alles'] == 1)) {
             // читать запрещено - извлекаем ругательство и отдаём вместо контента
             $main_content = get_settings('message_forbidden');
         } else {
             if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
                 // увеличиваем счетчик версий для печати
                 $AVE_DB->Query("\n\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\n\t\t\t\t\t\tSET document_count_print = document_count_print+1\n\t\t\t\t\t\tWHERE Id = '" . $id . "'\n\t\t\t\t\t");
             } else {
                 if (!isset($_SESSION['doc_view'][$id])) {
                     // увеличиваем счетчик просмотров (1 раз в пределах сессии)
                     $AVE_DB->Query("\n\t\t\t\t\t\t\tUPDATE " . PREFIX . "_documents\n\t\t\t\t\t\t\tSET document_count_view = document_count_view+1\n\t\t\t\t\t\t\tWHERE Id = '" . $id . "'\n\t\t\t\t\t\t");
                     $_SESSION['doc_view'][$id] = time();
                 }
                 $curdate = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
                 if (!isset($_SESSION['doc_view_dayly[' . $curdate . '][' . $id . ']'])) {
                     // и подневный счетчик просмотров тоже увеличиваем
                     $curdate = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
                     $AVE_DB->Query("\n                            UPDATE\n                                " . PREFIX . "_view_count\n                            SET\n                                count = count + 1\n                            WHERE\n                                document_id = '" . $id . "' AND\n                                day_id = '" . $curdate . "'\n                        ");
                     if (!$AVE_DB->_handle->affected_rows) {
                         $AVE_DB->Query("\n                                INSERT INTO " . PREFIX . "_view_count (\n                                    document_id,\n                                    day_id,\n                                    count\n                                )\n                                VALUES (\n                                    '" . $id . "',  '" . $curdate . "', '1'\n                                )\n                            ");
                     }
                     $_SESSION['doc_view_dayly[' . $curdate . '][' . $id . ']'] = time();
                 }
             }
             if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                 // кэширование разрешено
                 // извлекаем скомпилированный шаблон документа из кэша
                 $main_content = $AVE_DB->Query("\n\t\t\t\t\t\tSELECT compiled\n\t\t\t\t\t\tFROM " . PREFIX . "_rubric_template_cache\n\t\t\t\t\t\tWHERE hash  = '" . $this->_get_cache_hash() . "'\n\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t")->GetCell();
             } else {
                 // кэширование запрещено
                 $main_content = false;
             }
             if (empty($main_content)) {
                 // кэш пустой или отключен, извлекаем и компилируем шаблон
                 if (!empty($this->curentdoc->rubric_template)) {
                     $rubTmpl = $this->curentdoc->rubric_template;
                 } else {
                     $rubTmpl = $AVE_DB->Query("\n\t\t\t\t\t\t\tSELECT rubric_template\n\t\t\t\t\t\t\tFROM " . PREFIX . "_rubrics\n\t\t\t\t\t\t\tWHERE Id = '" . RUB_ID . "'\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t")->GetCell();
                 }
                 $rubTmpl = trim($rubTmpl);
                 if (empty($rubTmpl)) {
                     // не задан шаблон рубрики
                     $main_content = $this->_rubric_template_empty;
                 } else {
                     // парсим теги полей в шаблоне документа
                     $main_content = preg_replace_callback('/\\[tag:fld:([a-zA-Z0-9-_]+)\\]/', 'document_get_field', $rubTmpl);
                     $main_content = preg_replace_callback('/\\[tag:([r|c|f|t]\\d+x\\d+r*):(.+?)]/', 'callback_make_thumbnail', $main_content);
                     // удаляем ошибочные теги полей
                     $main_content = preg_replace('/\\[tag:fld:\\d*\\]/', '', $main_content);
                     if (CACHE_DOC_TPL && empty($_POST) && !(isset($_SESSION['user_adminmode']) && $_SESSION['user_adminmode'] == 1)) {
                         // кэширование разрешено
                         // сохраняем скомпилированный шаблон в кэш
                         $AVE_DB->Query("\n\t\t\t\t\t\t\t\tINSERT " . PREFIX . "_rubric_template_cache\n\t\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\t\thash     = '" . $this->_get_cache_hash() . "',\n\t\t\t\t\t\t\t\t\trub_id   = '" . RUB_ID . "',\n\t\t\t\t\t\t\t\t\tgrp_id   = '" . UGROUP . "',\n\t\t\t\t\t\t\t\t\tdoc_id   = '" . $id . "',\n\t\t\t\t\t\t\t\t\tcompiled = '" . addslashes($main_content) . "'\n\t\t\t\t\t\t\t");
                     }
                 }
             }
             $main_content = preg_replace('/\\[tag:date:([a-zA-Z0-9-]+)\\]/e', "RusDate(date('\$1', " . $this->curentdoc->document_published . "))", $main_content);
             $main_content = str_replace('[tag:docdate]', pretty_date(strftime(DATE_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:doctime]', pretty_date(strftime(TIME_FORMAT, $this->curentdoc->document_published)), $main_content);
             $main_content = str_replace('[tag:docauthorid]', $this->curentdoc->document_author_id, $main_content);
             $main_content = str_replace('[tag:docauthor]', get_username_by_id($this->curentdoc->document_author_id), $main_content);
         }
         $out = str_replace('[tag:maincontent]', $main_content, $this->_coreDocumentTemplateGet(RUB_ID));
     }
     // /вывод документа
     //Работа с условиями
     /*
     		$out = preg_replace('/\[tag:if_exp:?(.*)\]/u', '<?php 
     	$my_exp000=true;
     	$my_exp0001=\'$my_exp000=\'. str_replace(\'#var#\',\'$\',<<<BLOCK
     $1;
     BLOCK
     );
     	@eval($my_exp0001);
     	if($my_exp000==true)
     		{
     ?>', $out);
     		$out = str_replace('[tag:if_exp_else]', '<?php }else{ ?>', $out);
     		$out = str_replace('[tag:/if_exp]', '<?php } ?>', $out);
     */
     // Тут мы вводим в хеадер иньекцию скриптов.
     if (defined('RUB_ID')) {
         $rubheader = $AVE_DB->Query("\n\t\t\t\t\t\t\tSELECT rubric_header_template\n\t\t\t\t\t\t\tFROM " . PREFIX . "_rubrics\n\t\t\t\t\t\t\tWHERE Id = '" . RUB_ID . "'\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t", CACHE_LIFETIME)->GetCell();
         $out = str_replace('[tag:rubheader]', $rubheader . '[tag:rubheader]', $out);
     }
     $out = preg_replace('/\\[tag:rfld:([a-zA-Z0-9-_]+)]\\[(more|esc|img|[0-9-]+)]/e', "request_get_document_field(\"\$1\", {$id}, \"\$2\")", $out);
     // Если в запросе пришел параметр print, т.е. страница для печати, парсим контент, который обрамлен
     // тегами только для печати
     if (isset($_REQUEST['print']) && $_REQUEST['print'] == 1) {
         $out = str_replace(array('[tag:if_print]', '[/tag:if_print]'), '', $out);
         $out = preg_replace('/\\[tag:if_notprint\\](.*?)\\[\\/tag:if_notprint\\]/si', '', $out);
     } else {
         // В противном случае наоборот, парсим только тот контент, который предназначен НЕ для печати
         $out = preg_replace('/\\[tag:if_print\\](.*?)\\[\\/tag:if_print\\]/si', '', $out);
         $out = str_replace(array('[tag:if_notprint]', '[/tag:if_notprint]'), '', $out);
     }
     // получаем из шаблона системный тег, определяющий название темы дизайна
     $match = '';
     preg_match('/\\[tag:theme:(\\w+)]/', $out, $match);
     define('THEME_FOLDER', empty($match[1]) ? DEFAULT_THEME_FOLDER : $match[1]);
     $out = preg_replace('/\\[tag:theme:(.*?)]/', '', $out);
     // парсим теги модулей
     $out = $this->coreModuleTagParse($out);
     if (isset($_REQUEST['module']) && !(isset($this->install_modules[$_REQUEST['module']]) && '1' == $this->install_modules[$_REQUEST['module']]->ModuleStatus)) {
         display_notice($this->_module_error);
     }
     // парсим теги системных блоков
     $out = preg_replace_callback('/\\[tag:sysblock:([0-9-]+)\\]/', 'parse_sysblock', $out);
     // парсим теги системы внутренних запросов
     $out = preg_replace_callback('/\\[tag:request:(\\d+)\\]/', 'request_parse', $out);
     // парсим теги навигации
     $out = preg_replace_callback('/\\[tag:navigation:(\\d+):?([0-9,]*)\\]/', 'parse_navigation', $out);
     // парсим теги скрытого текста
     $out = parse_hide($out);
     // парсим остальные теги основного шаблона
     $search = array('[tag:mediapath]', '[tag:path]', '[tag:sitename]', '[tag:document]', '[tag:alias]', '[tag:home]', '[tag:robots]', '[tag:canonical]', '[tag:docid]', '[tag:breadcrumb]');
     $replace = array(ABS_PATH . 'templates/' . THEME_FOLDER . '/', ABS_PATH, htmlspecialchars(get_settings('site_name'), ENT_QUOTES), get_redirect_link('print'), @$this->curentdoc->document_alias, get_home_link(), isset($this->curentdoc->document_meta_robots) ? $this->curentdoc->document_meta_robots : '', canonical($_SERVER['REQUEST_URI']), isset($this->curentdoc->Id) ? $this->curentdoc->Id : '', get_breadcrumb());
     if (defined('MODULE_CONTENT')) {
         // парсинг тегов при выводе из модуля
         $search[] = '[tag:maincontent]';
         $replace[] = MODULE_CONTENT;
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(defined('MODULE_SITE') ? MODULE_SITE : '', ENT_QUOTES);
         $search[] = '[tag:description]';
         $replace[] = htmlspecialchars(defined('MODULE_DESCRIPTION') ? MODULE_DESCRIPTION : '', ENT_QUOTES);
         $search[] = '[tag:keywords]';
         $replace[] = htmlspecialchars(defined('MODULE_KEYWORDS') ? MODULE_KEYWORDS : '', ENT_QUOTES);
     } else {
         $search[] = '[tag:keywords]';
         $replace[] = isset($this->curentdoc->document_meta_keywords) ? htmlspecialchars($this->curentdoc->document_meta_keywords, ENT_QUOTES) : '';
         $search[] = '[tag:description]';
         $replace[] = isset($this->curentdoc->document_meta_description) ? htmlspecialchars($this->curentdoc->document_meta_description, ENT_QUOTES) : '';
         $search[] = '[tag:title]';
         $replace[] = htmlspecialchars(pretty_chars($this->curentdoc->document_title), ENT_QUOTES);
     }
     $search[] = '[tag:maincontent]';
     $replace[] = '';
     $search[] = '[tag:printlink]';
     $replace[] = get_print_link();
     $search[] = '[tag:version]';
     $replace[] = APP_INFO;
     $search[] = '[tag:docviews]';
     $replace[] = isset($this->curentdoc->document_count_view) ? $this->curentdoc->document_count_view : '';
     // парсим тизер документа
     $out = preg_replace('/\\[tag:teaser:(\\d+)\\]/e', "showteaser(\$1)", $out);
     if (defined('RUB_ID')) {
         $out = preg_replace('/\\[tag:docauthoravatar:(\\d+)\\]/e', "getAvatar(" . intval($this->curentdoc->document_author_id) . ",\"\$1\")", $out);
     }
     if (defined('RUB_ID')) {
         $out = preg_replace('/\\[tag:lang:([a-zA-Z0-9-_]+)\\]/', '<?php if($AVE_Core->curentdoc->document_lang=="$1") { ?>', $out);
     } else {
         $out = preg_replace('/\\[tag:lang:([a-zA-Z0-9-_]+)\\]/', '<?php if($_SESSION["user_language"]=="$1") { ?>', $out);
     }
     $out = str_replace('[tag:/lang]', '<?php } ?>', $out);
     // парсим остальные теги основного шаблона
     $out = str_replace($search, $replace, $out);
     unset($search, $replace);
     // парсим теги для combine.php
     $out = preg_replace_callback('/\\[tag:(css|js):([^ :\\/]+):?(\\S+)*\\]/', array($this, '_parse_combine'), $out);
     // ЧПУ
     $out = rewrite_link($out);
     echo $out;
 }
Esempio n. 29
0
 /**
  * Return data for generating sitemap page
  * 
  * @return array
  */
 public function getSitemapUrls()
 {
     $this->CI->load->helper('seo');
     //$auth = $this->CI->session->userdata("auth_type");
     $block[] = array("name" => l('header_memberships_index', self::MODULE_GID), "link" => rewrite_link(self::MODULE_GID, 'index'), "clickable" => true);
     return $block;
 }
Esempio n. 30
0
function printQuickfinder(&$nav_items, &$quickfinder = '', $parent = '0')
{
    foreach ($nav_items[$parent] as $row) {
        if (strpos($row['navi_item_link'], 'module=') === false && start_with('index.php?', $row['navi_item_link'])) {
            $row['navi_item_link'] .= '&amp;doc=' . (empty($row['document_alias']) ? prepare_url($row['title']) : $row['document_alias']);
        }
        if (start_with('www.', $row['navi_item_link'])) {
            $row['navi_item_link'] = str_replace('www.', 'http://www.', $row['navi_item_link']);
        }
        $row['navi_item_link'] = rewrite_link($row['navi_item_link']);
        if (!start_with('javascript:', $row['navi_item_link'])) {
            if ($row['navi_item_target'] == '_blank') {
                $row['navi_item_link'] = "javascript:window.open('" . $row['navi_item_link'] . "', '', '')";
            } else {
                $row['navi_item_link'] = "window.location.href = '" . $row['navi_item_link'] . "'";
            }
        }
        $quickfinder .= '<option class="level_' . $row['navi_item_level'] . '" value="' . $row['navi_item_link'] . '"' . ($row['active'] == 1 ? ' selected="selected"' : '') . '>' . pretty_chars($row['title']) . '</option>';
        if (isset($nav_items[$row['Id']])) {
            printQuickfinder($nav_items, $quickfinder, $row['Id']);
        }
    }
}