本文整理汇总了PHP中rewrite_link函数的典型用法代码示例。如果您正苦于以下问题:PHP rewrite_link函数的具体用法?PHP rewrite_link怎么用?PHP rewrite_link使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rewrite_link函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save_payment
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);
}
示例2: mod_example
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;
}
示例3: get_sitemap_urls
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;
}
示例4: mod_faq
/**
* Обработка тега модуля
*
* @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;
// Отключаем кеширование
}
示例5: index
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');
}
示例6: mod_navigation
/**
* Функция обработки тега модуля
*
* @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;
}
示例7: mod_moredoc
/**
* Функция обработки тега модуля
*
*/
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 . '&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;
// Отключаем кеширование
}
示例8: tpl_function_seolink
/**
* 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);
}
示例9: document_pagination
/**
* Постраничная навигация документа
*
* @param string $text текст многострочной части документа
* @return string
*/
function document_pagination($text)
{
global $AVE_Core;
// IE8 <div style="page-break-after: always"><span style="display: none"> </span></div>
// Chrome <div style="page-break-after: always; "><span style="DISPLAY:none"> </span></div>
// FF <div style="page-break-after: always;"><span style="display: none;"> </span></div>
$pages = preg_split('#<div style="page-break-after:[; ]*always[; ]*"><span style="display:[ ]*none[;]*"> </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 . '&doc=' . (empty($AVE_Core->curentdoc->document_alias) ? prepare_url($AVE_Core->curentdoc->document_title) : $AVE_Core->curentdoc->document_alias) . '&artpage={s}' . '">{t}</a> ';
$page_nav = get_pagination($total_page, 'artpage', $page_nav, get_settings('navi_box'));
$text .= rewrite_link($page_nav);
}
return $text;
}
示例10: contactFormShow
/**
* Метод, предназначенный для вывода контактной формы в публичной части сайта
*
* @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 . '&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 {
//.........这里部分代码省略.........
示例11: explode
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 . '&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
示例12: commentPostNew
/**
* Метод, предназначенный для записи в БД нового комментария.
*
* @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('&', '&', $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;
}
示例13: searchResultGet
/**
* ВНЕШНИЕ МЕТОДЫ
*/
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&query=" . urlencode($this->_search_string) . ($type_search ? '&ts=1' : '') . (isset($_REQUEST['or']) && 1 == $_REQUEST['or'] ? "&or=1" : "") . "&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("\\"",""",$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 . '&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'));
}
}
示例14: rss
/**
* 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;
}
示例15: get_sitemap_urls
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;
}