Browse Source

Fixes

pull/3/head
M@dD3n 5 years ago
parent
commit
5725bec81a
  1. 114
      class/class.core.php
  2. 6
      functions/func.parserequest.php

114
class/class.core.php

@ -66,6 +66,14 @@
public $_module_not_found = 'Запрашиваемый модуль не найден.'; public $_module_not_found = 'Запрашиваемый модуль не найден.';
/**
* Получаем шаблон документа
*
* @param $rubric_id
* @param $template_id
*
* @return bool|null|string
*/
function _getMainTemplate($rubric_id, $template_id) function _getMainTemplate($rubric_id, $template_id)
{ {
global $AVE_DB; global $AVE_DB;
@ -633,6 +641,13 @@
} }
/**
* @param $main_content
* @param $id
* @param $rubTmpl
*
* @return mixed|null|string|string[]
*/
function _main_content ($main_content, $id, $rubTmpl) function _main_content ($main_content, $id, $rubTmpl)
{ {
global $AVE_DB, $AVE_Template; global $AVE_DB, $AVE_Template;
@ -655,10 +670,10 @@
// Парсим элементы полей // Парсим элементы полей
$main_content = preg_replace_callback( $main_content = preg_replace_callback(
'/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/', '/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/',
create_function( function($m)
'$m', {
'return get_field_element($m[1], $m[2], $m[3], ' . $this->curentdoc->Id . ');' return get_field_element($m[1], $m[2], $m[3], $this->curentdoc->Id);
), },
$main_content $main_content
); );
@ -668,10 +683,10 @@
// Повторно парсим элементы полей // Повторно парсим элементы полей
$main_content = preg_replace_callback( $main_content = preg_replace_callback(
'/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/', '/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/',
create_function( function($m)
'$m', {
'return get_field_element($m[1], $m[2], $m[3], ' . $this->curentdoc->Id . ');' return get_field_element($m[1], $m[2], $m[3], $this->curentdoc->Id);
), },
$main_content $main_content
); );
@ -710,8 +725,10 @@
// парсим теги в шаблоне рубрики // парсим теги в шаблоне рубрики
$main_content = preg_replace_callback( $main_content = preg_replace_callback(
'/\[tag:date:([a-zA-Z0-9-. \/]+)\]/', '/\[tag:date:([a-zA-Z0-9-. \/]+)\]/',
create_function('$m','return translate_date(date($m[1], '.$this->curentdoc->document_published.')); function ($match)
'), {
return translate_date(date($match[1], $this->curentdoc->document_published));
},
$main_content $main_content
); );
@ -752,6 +769,11 @@
} }
/**
* Получаем ID для кеша документа
*
* @return array|bool
*/
function _get_cache_id() function _get_cache_id()
{ {
$cache = array(); $cache = array();
@ -777,6 +799,13 @@
} }
/**
* Создаем компилированный документ
*
* @param $main_content
*
* @return bool
*/
function setCompileDocument ($main_content) function setCompileDocument ($main_content)
{ {
$cache = $this->_get_cache_id(); $cache = $this->_get_cache_id();
@ -807,6 +836,11 @@
} }
/**
* Получаем скомпилированный документ
*
* @return bool|string
*/
function getCompileDocument () function getCompileDocument ()
{ {
$cache = $this->_get_cache_id(); $cache = $this->_get_cache_id();
@ -1255,16 +1289,14 @@
} }
// Парсим поля запроса // Парсим поля запроса
$out = preg_replace_callback( $out = preg_replace_callback('/\[tag:teaser:(\d+)(|:\[(.*?)\])\]/',
'/\[tag:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/', function ($m) use ($id)
create_function( {
'$m', return request_get_document_field($m[1], $id, $m[2], (defined('RUB_ID') ? RUB_ID : 0));
'return request_get_document_field($m[1], ' . $id . ', $m[2], ' . (defined('RUB_ID') ? RUB_ID : 0) . ');' },
),
$out $out
); );
// Удаляем ошибочные теги полей документа в шаблоне рубрики // Удаляем ошибочные теги полей документа в шаблоне рубрики
$out = preg_replace('/\[tag:rfld:\w*\]/', '', $out); $out = preg_replace('/\[tag:rfld:\w*\]/', '', $out);
@ -1294,12 +1326,11 @@
$out); $out);
// Парсим тизер документа // Парсим тизер документа
$out = preg_replace_callback( $out = preg_replace_callback('/\[tag:teaser:(\d+)(|:\[(.*?)\])\]/',
'/\[tag:teaser:(\d+)(|:\[(.*?)\])\]/', function ($m)
create_function( {
'$m', return showteaser($m[1], $m[2]);
'return showteaser($m[1], $m[2]);' },
),
$out $out
); );
@ -1497,26 +1528,25 @@
$replace[] = isset ($this->curentdoc->document_count_view) ? $this->curentdoc->document_count_view : ''; $replace[] = isset ($this->curentdoc->document_count_view) ? $this->curentdoc->document_count_view : '';
// Парсим тизер документа // Парсим тизер документа
$out = preg_replace_callback( $out = preg_replace_callback('/\[tag:teaser:(\d+)(|:\[(.*?)\])\]/',
'/\[tag:teaser:(\d+)(|:\[(.*?)\])\]/', function ($m)
create_function( {
'$m', return showteaser($m[1], $m[2]);
'return showteaser($m[1], $m[2]);' },
),
$out $out
); );
// Парсим аватар автора документа // Парсим аватар автора документа
if (defined('RUB_ID')) if (defined('RUB_ID'))
$out = preg_replace_callback( $out = preg_replace_callback('/\[tag:docauthoravatar:(\d+)\]/',
'/\[tag:docauthoravatar:(\d+)\]/', function ($m)
create_function( {
'$m', return getAvatar(intval($this->curentdoc->document_author_id), $m[1]);
'return getAvatar('.intval($this->curentdoc->document_author_id).', $m[1]);' },
),
$out $out
); );
// Парсим теги языковых условий // Парсим теги языковых условий
if (defined('RUB_ID')) if (defined('RUB_ID'))
{ {
@ -1607,14 +1637,12 @@
$get_url = implode('/', array_diff($get_url, $pages)); $get_url = implode('/', array_diff($get_url, $pages));
$pages = implode('/', $pages); $pages = implode('/', $pages);
preg_replace_callback( preg_replace_callback('/(page|apage|artpage)-(\d+)/i',
'/(page|apage|artpage)-(\d+)/i', function ($matches)
create_function( {
'$matches', $_GET[$matches[1]] = $matches[2]; $_REQUEST[$matches[1]] = $matches[2];;
'$_GET[$matches[1]] = $matches[2]; $_REQUEST[$matches[1]] = $matches[2];' },
), $pages);
$pages
);
} }
//-- В противном случае формируем окончательную ссылку для документа //-- В противном случае формируем окончательную ссылку для документа
else else

6
functions/func.parserequest.php

@ -1088,8 +1088,10 @@
//-- Дата //-- Дата
$main_template = preg_replace_callback( $main_template = preg_replace_callback(
'/\[tag:date:([a-zA-Z0-9-. \/]+)\]/', '/\[tag:date:([a-zA-Z0-9-. \/]+)\]/',
create_function('$m','return translate_date(date($m[1], '.$AVE_Core->curentdoc->document_published.')); function ($match) use ($AVE_Core)
'), {
return translate_date(date($match[1], $AVE_Core->curentdoc->document_published));
},
$main_template $main_template
); );

Loading…
Cancel
Save