Query(" SELECT sysblock_text FROM " . PREFIX . "_sysblocks WHERE " . (is_numeric($id) ? 'id' : 'sysblock_alias') . " = '" . $id . "' LIMIT 1 ")->GetCell(); if ($cache_file) file_put_contents($cache_file, $return); } //-- парсим теги $search = array( '[tag:mediapath]', '[tag:path]', '[tag:docid]' ); $replace = array( ABS_PATH . 'templates/' . ((defined('THEME_FOLDER') === false) ? DEFAULT_THEME_FOLDER : THEME_FOLDER) . '/', ABS_PATH, get_current_document_id() ); $return = str_replace($search, $replace, $return); $return = preg_replace_callback('/\[tag:home]/', 'get_home_link', $return); $return = preg_replace_callback('/\[tag:breadcrumb]/', 'get_breadcrumb', $return); $return = preg_replace_callback('/\[tag:request:([A-Za-z0-9-_]{1,20}+)\]/', 'request_parse', $return); if (isset($_REQUEST['id']) && $_REQUEST['id'] != '') { //-- парсим теги полей документа в шаблоне рубрики $return = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/', 'get_field_element', $return); $return = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)(|[:(\d)])+?\]/', 'document_get_field', $return); $return = preg_replace_callback('/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/', 'watermarks', $return); $return = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $return); } $return = preg_replace_callback('/\[tag:block:([A-Za-z0-9-_]{1,20}+)\]/', 'parse_block', $return); // Парсим теги системных блоков $return = preg_replace_callback('/\[tag:sysblock:([A-Za-z0-9-_]{1,20}+)(|:\{(.*?)\})\]/', function ($m) { return parse_sysblock($m[1], $m[2]); }, $return); // Если был вызов if ($sysParams != '') { // Заменяем $return = preg_replace_callback('/\[sys:param:([A-Za-z0-9-+_]+)\]/', function ($m) use ($sparams_id) { return params_of_sysblocks($sparams_id, $m[1]); }, $return); } else { // Если чистый запрос тизера, просто вытираем tparam $return = preg_replace('/\[sysparam:([A-Za-z0-9-+_]+)\]/', '', $return); } if ($sysblock_eval) $return = eval2var('?'.'>' . $return . '<'.'?php '); $GLOBALS['block_generate']['SYSBLOCK'][$id] = Debug::endTime('SYSBLOCK_' . $id); return $return; } return false; } /** * Функция получения уникальных параметров для каждого * * @param $id * @param $el * @return string */ function params_of_sysblocks($id, $el) { global $sysParams; if (isset($sysParams[$id][$el])) return $sysParams[$id][$el]; else return false; } /** * Получение основных настроек сисблока * * @param $param string параметр настройки, если не указан - все параметры * @return mixed */ function _getSysBlock($id, $param = '') { global $AVE_DB; $sys_block = null; if ($sys_block === null) { $sql = " SELECT * FROM " . PREFIX . "_sysblocks WHERE " . (is_numeric($id) ? 'id' : 'sysblock_alias') . " = '" . $id . "' "; $sys_block = $AVE_DB->Query($sql, -1, 'sysblocks/' . $id)->FetchAssocArray(); } if ($param == '') return $sys_block; return isset($sys_block[$param]) ? $sys_block[$param] : null; } ?>