} } if ($is_logged and $user_group[$member_id['user_group']]['time_limit']) { if ($member_id['time_limit'] != "" and intval($member_id['time_limit']) < $_TIME) { $db->query("UPDATE " . USERPREFIX . "_users set user_group='{$user_group[$member_id['user_group']]['rid']}', time_limit='' WHERE user_id='{$member_id['user_id']}'"); $member_id['user_group'] = $user_group[$member_id['user_group']]['rid']; } } } else { $dle_login_hash = ""; $_IP = get_ip(); } if (!$is_logged) { $member_id['user_group'] = 5; } $tpl->load_template('login.tpl'); $tpl->set('{login-method}', $config['auth_metod'] ? "E-Mail:" : $lang['login_metod']); $tpl->set('{registration-link}', $PHP_SELF . "?do=register"); $tpl->set('{lostpassword-link}', $PHP_SELF . "?do=lostpassword"); $tpl->set('{logout-link}', $PHP_SELF . "?action=logout"); $tpl->set('{admin-link}', $config['http_home_url'] . $config['admin_path'] . "?mod=main"); $tpl->set('{login}', $member_id['name']); $tpl->set('{pm-link}', $PHP_SELF . "?do=pm"); $tpl->set('{new-pm}', $member_id['pm_unread']); $tpl->set('{all-pm}', $member_id['pm_all']); if ($user_group[$member_id['user_group']]['icon']) { $tpl->set('{group-icon}', "<img src=\"" . $user_group[$member_id['user_group']]['icon'] . "\" alt=\"\" />"); } else { $tpl->set('{group-icon}', ""); } if ($member_id['favorites']) {
public function Start($CommCfg) { $this->New_Cfg($CommCfg); // создаем новый конфиг $where = array(); // проверка некоторых параметров конфига по версиях $allow_alt_url = $this->config['version_id'] >= '10.2' ? $this->config['allow_alt_url'] == '1' : $this->config['allow_alt_url'] == "yes"; $allow_cache = $this->config['version_id'] >= '10.2' ? $this->config['allow_cache'] == '1' : $this->config['allow_cache'] == "yes"; $allow_multi_category = $this->config['version_id'] >= '10.2' ? $this->config['allow_multi_category'] == '1' : $this->config['allow_multi_category'] == "yes"; if ($this->config['version_id'] >= '10.4' and $this->comm_cfg['rating_comm']) { // рейтинг комментариев только для DLE 10.4 и выще $where[] = "c.rating > {$this->comm_cfg[rating_comm]}"; } // работа с категориями if ($allow_multi_category) { if ($this->comm_cfg['stop_category']) { $where[] = "category NOT REGEXP '[[:<:]](" . $this->Explode_Category($this->comm_cfg['stop_category'], "multi") . ")[[:>:]]'"; } if ($this->comm_cfg['from_category']) { $where[] = "category REGEXP '[[:<:]](" . $this->Explode_Category($this->comm_cfg['from_category'], "multi") . ")[[:>:]]'"; } } else { if ($this->comm_cfg['stop_category']) { $where[] = "category NOT IN ('" . $this->Explode_Category($this->comm_cfg['stop_category']) . "')"; } if ($this->comm_cfg['from_category']) { $where[] = "category IN ('" . $this->Explode_Category($this->comm_cfg['from_category']) . "')"; } } if ($this->comm_cfg['news_xfield']) { // работа с доп полями новостей $where[] = $this->Explode_xField($this->comm_cfg['news_xfield'], "p.xfields"); } if ($this->comm_cfg['user_xfield']) { // работа с доп полями пользователей $where[] = $this->Explode_xField($this->comm_cfg['user_xfield'], "u.xfields"); } // работа с новостями if ($this->comm_cfg['stop_id']) { $where[] = $this->Explode_NewsID($this->comm_cfg['stop_id']); } if ($this->comm_cfg['from_id']) { $where[] = $this->Explode_NewsID($this->comm_cfg['from_id']); } if ($this->comm_cfg['ncomm']) { // выводим только с комментариями у новостей больше чем $where[] = "p.comm_num > {$this->comm_cfg[ncomm]}"; } if ($this->comm_cfg['fixed']) { // выводим только с зафиксированых новостей $where[] = "p.fixed = 1"; } if ($this->comm_cfg['tags']) { $t = explode(',', $this->comm_cfg['tags']); $t = implode('|', $t); $where[] = "p.tags regexp '[[:<:]](" . $t . ")[[:>:]]'"; } if ($this->comm_cfg['news_read']) { // выводим только с комментариями у новостей больше чем $where[] = "e.news_read > {$this->comm_cfg[news_read]}"; } if ($this->comm_cfg['rating_news']) { // выводим только с комментариями у новостей больше чем $where[] = "e.rating > {$this->comm_cfg[rating_news]}"; } if ($this->comm_cfg['only_avatar']) { // выводим только с аватарами $where[] = "u.foto != ''"; } if ($this->comm_cfg['only_news']) { // выводим только с новостями $where[] = "u.news_num > 0"; } if ($this->comm_cfg['only_fav']) { // выводим только с закладками $where[] = "u.favorites != ''"; } if ($this->comm_cfg['only_fullname']) { // выводим только с полным именем $where[] = "u.fullname != ''"; } if ($this->comm_cfg['only_land']) { // выводим только с место жительством $where[] = "u.land != ''"; } if ($this->comm_cfg['news_user']) { // выводим только если новостей больше чем $where[] = "u.news_num > {$this->comm_cfg[news_user]}"; } if ($this->comm_cfg['comm']) { // выводим только если комментариев больше чем $where[] = "u.comm_num > {$this->comm_cfg[comm]}"; } // префикс кэша $Comm_hash = md5($this->comm_cfg['max_comm'] . $this->comm_cfg['max_text'] . $this->comm_cfg['max_title'] . $this->comm_cfg['check_guest'] . $this->comm_cfg['stop_category'] . $this->comm_cfg['from_category'] . $this->comm_cfg['stop_id'] . $this->comm_cfg['from_id'] . $this->comm_cfg['only_avatar'] . $this->comm_cfg['only_news'] . $this->comm_cfg['news_user'] . $this->comm_cfg['comm'] . $this->comm_cfg['only_fav'] . $this->comm_cfg['only_fullname'] . $this->comm_cfg['only_land']); $is_change = false; if (!$allow_cache) { if ($this->config['version_id'] >= '10.2') { $this->config['allow_cache'] = '1'; } else { $this->config['allow_cache'] = "yes"; } $is_change = true; } $Comm = dle_cache("Comm_", $this->config['skin'] . $Comm_hash); // подгружаем из кэша if (!$Comm) { if (count($where) > 0) { $where = " AND " . implode(" AND ", $where); } else { $where = ""; } $sql = $this->db->query("SELECT c.id as comid, c.post_id, c.date, c.user_id, c.is_register, c.text, c.autor, c.email, c.approve, p.id, p.date as newsdate, p.title, p.category, p.comm_num, p.alt_name, e.news_id, e.news_read, e.rating, u.foto, u.user_group, u.user_id FROM " . PREFIX . "_comments as c, " . PREFIX . "_post as p, " . PREFIX . "_post_extras as e, " . PREFIX . "_users as u WHERE p.id=c.post_id AND e.news_id=c.post_id AND c.approve = 1 AND c.user_id = u.user_id {$where} ORDER BY c.date DESC LIMIT 0, " . $this->comm_cfg['max_comm']); $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; $tpl->load_template('comm/comm.tpl'); $count_rows = $sql->num_rows; if ($count_rows > 0) { while ($row = $this->db->get_row($sql)) { $row['date'] = strtotime($row['date']); $row['category'] = intval($row['category']); // Обработка ссылки на комментарий $on_page = FALSE; if ($row['comm_num'] > $this->config['comm_nummers']) { $on_page = 'page,1,' . ceil($row['comm_num'] / $this->config['comm_nummers']) . ','; } if ($allow_alt_url) { if ($condition = $this->config['seo_type'] == 1 or $this->config['seo_type'] == 2) { if ($row['category'] and $this->config['seo_type'] == 2) { $full_link = $this->config['http_home_url'] . get_url($row['category']) . "/" . $on_page . $row['id'] . "-" . $row['alt_name'] . ".html"; } else { $full_link = $this->config['http_home_url'] . $on_page . $row['id'] . "-" . $row['alt_name'] . ".html"; } } else { $full_link = $this->config['http_home_url'] . date('Y/m/d/', $row['date']) . $on_page . $row['alt_name'] . ".html"; } } else { $full_link = $this->config['http_home_url'] . "index.php?newsid=" . $row['id']; } $full_link = $full_link . '#comment-id-' . $row['comid']; // Обработка текста комментария if (dle_strlen($row['text'], $this->config['charset']) > $this->comm_cfg['max_text']) { $text = stripslashes(dle_substr($row['text'], 0, $this->comm_cfg['max_text'], $this->config['charset']) . " ..."); } else { $text = stripslashes($row['text']); } // Обработка заголовка новости (title) if (dle_strlen($row['title'], $this->config['charset']) > $this->comm_cfg['max_title']) { $title = stripslashes(dle_substr($row['title'], 0, $this->comm_cfg['max_title'], $this->config['charset']) . " ..."); } else { $title = stripslashes($row['title']); } // Обработка ника автора комментария if ($row['is_register'] == 1) { if ($allow_alt_url) { $go_page = $this->config['http_home_url'] . "user/" . urlencode($row['autor']) . "/"; } else { $go_page = "{$PHP_SELF}?subaction=userinfo&user="******"onclick=\"ShowProfile('" . urlencode($row['autor']) . "', '" . htmlspecialchars($go_page, ENT_QUOTES, $this->config['charset']) . "', '" . $this->group[$this->member['user_group']]['admin_editusers'] . "'); return false;\""; } else { $go_page = "onclick=\"ShowProfile('" . urlencode($row['autor']) . "', '" . $go_page . "'); return false;\""; } if ($allow_alt_url) { $author = "<a {$go_page} href=\"" . $this->config['http_home_url'] . "user/" . urlencode($row['autor']) . "/\">" . $row['autor'] . "</a>"; } else { $author = "<a {$go_page} href=\"{$PHP_SELF}?subaction=userinfo&user="******"\">" . $row['autor'] . "</a>"; } } else { $author = strip_tags($row['autor']); } // Обработка фото автора комментария if ($row['foto'] and $row['is_register'] == 1) { if (count(explode("@", $row['foto'])) == 2) { $tpl->set('{foto}', '//www.gravatar.com/avatar/' . md5(trim($row['foto'])) . '?s=' . intval($this->group[$row['user_group']]['max_foto'])); } else { if ($this->config['version_id'] >= '10.5') { if (strpos($row['foto'], "//") === 0) { $avatar = "http:" . $row['foto']; } else { $avatar = $row['foto']; } $avatar = @parse_url($avatar); if ($avatar['host']) { $tpl->set('{foto}', $row['foto']); } else { $tpl->set('{foto}', $this->config['http_home_url'] . "uploads/fotos/" . $row['foto']); } } else { if ($row['foto'] and file_exists(ROOT_DIR . "/uploads/fotos/" . $row['foto'])) { $tpl->set('{foto}', $this->config['http_home_url'] . "uploads/fotos/" . $row['foto']); } } } } else { $tpl->set('{foto}', "{THEME}/dleimages/noavatar.png"); } // Обработка ссылки автора комментария if ($allow_alt_url) { $user_url = $this->config['http_home_url'] . "user/" . urlencode($row['autor']) . "/"; } else { $user_url = "{$PHP_SELF}?subaction=userinfo&user="******", H:i", $row['date'])); } elseif (date('Ymd', $row['date']) == date('Ymd', $_TIME - 86400)) { $tpl->set('{date}', $lang['time_gestern'] . langdate(", H:i", $row['date'])); } else { $tpl->set('{date}', langdate($this->config['timestamp_active'], $row['date'])); } $tpl->copy_template = preg_replace("#\\{date=(.+?)\\}#ie", "langdate('\\1', '{$row['date']}')", $tpl->copy_template); $tpl->set('{text}', $text); //текст комментария $tpl->set('{user_url}', $user_url); // ссылка на автора $tpl->set('{user_name}', $row['autor']); // просто ник автора $tpl->set('[user_url]', "<a href=\"" . $user_url . "\">"); // оборачиваем в ссылку $tpl->set('[/user_url]', "</a>"); // оборачиваем в ссылку $tpl->set('{author}', $author); // автор с ссылкой на профиль с модальным окном $tpl->set('[color]', $this->group[$row['user_group']]['group_prefix']); // префикс цвета группы $tpl->set('[/color]', $this->group[$row['user_group']]['group_suffix']); // суфикс цвета группы $tpl->set('{title}', $title); // укороченный заголовок $tpl->set('{long_title}', stripslashes($row['title'])); // полный заголовок $tpl->set('{rating}', $row['rating']); // рейтинг новости $tpl->set('{views}', $row['news_read']); // просмотров новости $tpl->set('{full_link}', $full_link); // линк на комментарий $tpl->set('{comm_num}', $row['comm_num']); // кол-во комментариев новости $tpl->set("{error}", ""); $tpl->set('[comm]', ""); $tpl->set('[/comm]', ""); $tpl->set_block("'\\[not-comm\\](.*?)\\[/not-comm\\]'si", ""); $tpl->compile('comm'); //компиляция шаблона } $this->db->free($sql); //очищаем от запросов } else { $tpl->set("{error}", "Комментариев нету!"); $tpl->set_block("'\\[comm\\](.*?)\\[/comm\\]'si", ""); $tpl->set('[not-comm]', ""); $tpl->set('[/not-comm]', ""); $tpl->compile('comm'); } $tpl->clear(); //очищаем шаблон $Comm = $tpl->result['comm']; if (preg_match_all('/<!--dle_spoiler(.*?)<!--\\/dle_spoiler-->/is', $Comm, $spoilers)) { foreach ($spoilers as $spoiler) { $Comm = str_replace($spoiler, '<div class="quote">Для просмотра содержимого спойлера, перейдите к выбранному комментарию.</div>', $Comm); } } if ($this->group[$this->member['user_group']]['allow_hide']) { $Comm = preg_replace("'\\[hide\\](.*?)\\[/hide\\]'si", "\\1", $Comm); } else { $Comm = preg_replace("'\\[hide\\](.*?)\\[/hide\\]'si", "<div class=\"quote\"> Для вашей группы скрытый текст не виден </div>", $Comm); } create_cache("Comm_", $Comm, $this->config['skin'] . $Comm_hash); //создаем кэш if ($is_change) { $this->config['allow_cache'] = false; } //выключаем кэш принудительно (возвращаем назад) } echo '<div class="iComm" id="iComm"><ul class="lastcomm">' . $Comm . '</ul> <!-- .lastcomm --></div>'; }
$template = $parse->process($_POST['template']); if ($config['allow_static_wysiwyg'] or $allow_br != '1') { $template = $parse->BB_Parse($template); } else { $template = $parse->BB_Parse($template, false); } } $descr = trim(htmlspecialchars(stripslashes($_POST['description']), ENT_QUOTES, $config['charset'])); if ($_GET['page'] == "rules") { $descr = $lang['rules_edit']; } if ($_POST['allow_template']) { $dle_module = "static"; if ($_POST['static_tpl'] == "") { if (@is_file($tpl->dir . "/preview.tpl")) { $tpl->load_template('preview.tpl'); } else { $tpl->load_template('static.tpl'); } } else { $tpl->load_template($_POST['static_tpl'] . '.tpl'); } $tpl->set('[static-preview]', ""); $tpl->set('[/static-preview]', ""); $tpl->set_block("'\\[full-preview\\](.*?)\\[/full-preview\\]'si", ""); $tpl->set_block("'\\[short-preview\\](.*?)\\[/short-preview\\]'si", ""); $tpl->set('{static}', stripslashes($template)); $tpl->set('{description}', $descr); $tpl->set('{views}', "0"); $tpl->set('{pages}', ""); $tpl->set('{date}', "--");
<category><![CDATA[{category}]]></category> <dc:creator>{rssauthor}</dc:creator> <pubDate>{rssdate}</pubDate> </item>[/fullrss] [yandexrss]<item> <title>{title}</title> <link>{rsslink}</link> <description>{short-story}</description> <category>{category}</category>{images} <pubDate>{rssdate}</pubDate> <yandex:full-text>{full-story}</yandex:full-text> </item>[/yandexrss] HTML; $tpl->copy_template = $tpl->template; } else { $tpl->load_template('rss.tpl'); } if ($config['site_offline'] or !$config['allow_rss']) { $rss_content .= <<<XML <item> <title>RSS in offline mode</title> <guid isPermaLink="true"></guid> <link></link> <description>RSS in offline mode</description> <category>undefined</category> <dc:creator>DataLife Engine</dc:creator> <pubDate>DataLife Engine</pubDate> </item> XML; } else { if ($config['rss_format'] == 1) {
$entry = ""; for ($i = 0; $i < sizeof($body); $i++) { $num = $answer[$i]['count']; ++$pn; if ($pn > 5) { $pn = 1; } if (!$num) { $num = 0; } if ($max != 0) { $proc = 100 * $num / $max; } else { $proc = 0; } $proc = round($proc, 2); $entry .= "<div class=\"vote\">{$body[$i]} - {$num} ({$proc}%)</div><div class=\"voteprogress\"><span class=\"vote{$pn}\" style=\"width:" . intval($proc) . "%;\">{$proc}%</span></div>\n"; } $entry = "<div id=\"dle-vote\">{$entry}</div>"; $tpl->load_template('vote.tpl'); $tpl->set('{list}', $entry); $tpl->set('{vote_id}', $rid); $tpl->set('{title}', $title); $tpl->set('{votes}', $max); $tpl->set('[voteresult]', ''); $tpl->set('[/voteresult]', ''); $tpl->set_block("'\\[votelist\\].*?\\[/votelist\\]'si", ""); $tpl->compile('vote'); $db->close(); $tpl->result['vote'] = str_replace('{THEME}', $config['http_home_url'] . 'templates/' . $vote_skin, $tpl->result['vote']); echo $tpl->result['vote'];
$tpl = new dle_template(); $tpl->dir = ROOT_DIR . '/templates/' . $_REQUEST['skin']; define('TEMPLATE_DIR', $tpl->dir); $_POST['name'] = convert_unicode($_POST['name'], $config['charset']); $_POST['subj'] = convert_unicode($_POST['subj'], $config['charset']); $_POST['text'] = convert_unicode($_POST['text'], $config['charset']); $name = $parse->process(trim($_POST['name'])); $subj = $parse->process(trim($_POST['subj'])); if ($config['allow_comments_wysiwyg'] != "yes") { $text = $parse->BB_Parse($parse->process($_POST['text']), false); } else { $parse->wysiwyg = true; $parse->ParseFilter(array('div', 'span', 'p', 'br', 'strong', 'em', 'ul', 'li', 'ol'), array(), 0, 1); $text = $parse->BB_Parse($parse->process($_POST['text'])); } $tpl->load_template('pm.tpl'); preg_replace("'\\[readpm\\](.*?)\\[/readpm\\]'ies", "del_tpl('\\1')", $tpl->copy_template); if (strpos($tpl->copy_template, "[xfvalue_") !== false) { $xfound = true; } else { $xfound = false; } if ($xfound) { $xfields = xfieldsload(true); $xfieldsdata = xfieldsdataload($member_id['xfields']); foreach ($xfields as $value) { $preg_safe_name = preg_quote($value[0], "'"); if ($value[5] != 1 or $member_id['user_group'] == 1 or $is_logged and $member_id['name'] == $row['user_from']) { if (empty($xfieldsdata[$value[0]])) { $tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template); } else {
$name = @$db->safesql(strip_tags(urldecode($_GET['name']))); } else { $name = ''; } if (!$name) { die("Hacking attempt!"); } if (preg_match("/[\\||\\'|\\<|\\>|\"|\\!|\\?|\$|\\@|\\/|\\\\|\\&\\~\\*\\+]/", $name)) { die("Not allowed user name!"); } $row = $db->super_query("SELECT * FROM " . USERPREFIX . "_users WHERE name = '{$name}'"); @header("Content-type: text/html; charset=" . $config['charset']); if (!$row['user_id']) { echo "<div id='dleprofilepopup' title='{$lang['all_err_1']}' style='display:none'><br />{$lang['news_err_26']}</div>"; } else { $tpl->load_template('profile_popup.tpl'); if (strpos($tpl->copy_template, "[xfvalue_") !== false) { $xfields = xfieldsload(true); $xfieldsdata = xfieldsdataload($row['xfields']); foreach ($xfields as $value) { $preg_safe_name = preg_quote($value[0], "'"); if ($value[5] != 1 or $member_id['user_group'] == 1 or $is_logged and $row['is_register'] and $member_id['name'] == $row['name']) { if (empty($xfieldsdata[$value[0]])) { $tpl->copy_template = preg_replace("'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template); $tpl->copy_template = str_replace("[xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template); $tpl->copy_template = str_replace("[/xfnotgiven_{$preg_safe_name}]", "", $tpl->copy_template); } else { $tpl->copy_template = preg_replace("'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template); $tpl->copy_template = str_replace("[xfgiven_{$preg_safe_name}]", "", $tpl->copy_template); $tpl->copy_template = str_replace("[/xfgiven_{$preg_safe_name}]", "", $tpl->copy_template); }
Copyright (c) 2004,2012 SoftNews Media Group ===================================================== Данный код защищен авторскими правами ===================================================== Файл: opensearch.php ----------------------------------------------------- Назначение: Модуль поддержки OpenSearch ===================================================== */ define('DATALIFEENGINE', true); define('ROOT_DIR', substr(dirname(__FILE__), 0, -7)); define('ENGINE_DIR', ROOT_DIR . '/engine'); @error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); @ini_set('display_errors', true); @ini_set('html_errors', false); @ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE); include ENGINE_DIR . '/data/config.php'; if ($config['http_home_url'] == "") { $config['http_home_url'] = explode("engine/opensearch.php", $_SERVER['PHP_SELF']); $config['http_home_url'] = reset($config['http_home_url']); $config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url']; } require_once ENGINE_DIR . '/classes/templates.class.php'; $tpl = new dle_template(); $tpl->dir = ROOT_DIR . '/templates'; define('TEMPLATE_DIR', $tpl->dir); $tpl->load_template('opensearch.tpl'); $tpl->set('{path}', $config['http_home_url']); $tpl->compile('main'); header('Content-type: application/xml'); echo $tpl->result['main'];
$log_id = intval($member_id['user_id']); } else { $log_id = $_IP; } $poll = $db->super_query("SELECT * FROM " . PREFIX . "_poll WHERE news_id = '{$row['id']}'"); if ($config['allow_cache'] and $dle_module != "showfull") { $log = array('count' => 0); } else { $log = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_poll_log WHERE news_id = '{$row['id']}' AND member ='{$log_id}'"); } $poll['title'] = stripslashes($poll['title']); $poll['frage'] = stripslashes($poll['frage']); $body = explode("<br />", stripslashes($poll['body'])); $tplpoll = new dle_template(); $tplpoll->dir = TEMPLATE_DIR; $tplpoll->load_template('poll.tpl'); $tplpoll->set('{title}', $poll['title']); $tplpoll->set('{question}', $poll['frage']); $tplpoll->set('{votes}', $poll['votes']); $tplpoll->set('{news-id}', $row['id']); if ($log['count']) { $tplpoll->set_block("'\\[not-voted\\](.+?)\\[/not-voted\\]'si", ""); $tplpoll->set('[voted]', ''); $tplpoll->set('[/voted]', ''); } else { $tplpoll->set_block("'\\[voted\\](.+?)\\[/voted\\]'si", ""); $tplpoll->set('[not-voted]', ''); $tplpoll->set('[/not-voted]', ''); } $list = "<div id=\"dle-poll-list-{$row['id']}\">"; if (!$log['count'] and $user_group[$member_id['user_group']]['allow_poll']) {
$my_cat_link = "---"; } else { $my_cat = array(); $my_cat_link = array(); foreach ($catlist as $element) { if ($element) { $my_cat[] = $cat[$element]; $my_cat_link[] = "<a href=\"#\">{$cat[$element]}</a>"; } } $my_cat = stripslashes(implode(', ', $my_cat)); $my_cat_link = stripslashes(implode(', ', $my_cat_link)); } $dle_module = "main"; if (@is_file($tpl->dir . "/preview.tpl")) { $tpl->load_template('preview.tpl'); } else { $tpl->load_template('shortstory.tpl'); } if ($parse->not_allowed_text) { $tpl->copy_template = $lang['news_err_39']; } $tpl->copy_template = preg_replace("#\\{custom(.+?)\\}#i", "", $tpl->copy_template); $tpl->template = preg_replace("#\\{custom(.+?)\\}#i", "", $tpl->template); $tpl->set('[short-preview]', ""); $tpl->set('[/short-preview]', ""); $tpl->set_block("'\\[full-preview\\](.*?)\\[/full-preview\\]'si", ""); $tpl->set_block("'\\[static-preview\\](.*?)\\[/static-preview\\]'si", ""); $tpl->set('{title}', $title); if (preg_match("#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches)) { $count = intval($matches[1]);
function custom_print($matches = array()) { global $db, $is_logged, $member_id, $xf_inited, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module, $allow_comments_ajax, $PHP_SELF, $news_date; if (!count($matches)) { return ""; } $param_str = trim($matches[1]); $aviable = array(); $thisdate = date("Y-m-d H:i:s", $_TIME); $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id)"; $where = array(); $allow_cache = $config['allow_cache']; if (preg_match("#aviable=['\"](.+?)['\"]#i", $param_str, $match)) { $aviable = explode('|', $match[1]); } else { $aviable[] = "global"; } $do = $dle_module ? $dle_module : "main"; if (!in_array($do, $aviable) and $aviable[0] != "global") { return ""; } if (preg_match("#id=['\"](.+?)['\"]#i", $param_str, $match)) { $temp_array = array(); $where_id = array(); $match[1] = explode(',', trim($match[1])); foreach ($match[1] as $value) { if (count(explode('-', $value)) == 2) { $value = explode('-', $value); $where_id[] = "id >= '" . intval($value[0]) . "' AND id <= '" . intval($value[1]) . "'"; } else { $temp_array[] = intval($value); } } if (count($temp_array)) { $where_id[] = "id IN ('" . implode("','", $temp_array) . "')"; } if (count($where_id)) { $custom_id = implode(' OR ', $where_id); $where[] = $custom_id; } } $allow_list = explode(',', $user_group[$member_id['user_group']]['allow_cats']); if ($allow_list[0] != "all" and !$user_group[$member_id['user_group']]['allow_short']) { if ($config['allow_multi_category']) { $where[] = "category regexp '[[:<:]](" . implode('|', $allow_list) . ")[[:>:]]'"; } else { $where[] = "category IN ('" . implode("','", $allow_list) . "')"; } } if (preg_match("#category=['\"](.+?)['\"]#i", $param_str, $match)) { $temp_array = array(); $match[1] = explode(',', $match[1]); foreach ($match[1] as $value) { if (count(explode('-', $value)) == 2) { $temp_array[] = get_mass_cats($value); } else { $temp_array[] = intval($value); } } $temp_array = implode(',', $temp_array); $custom_category = $db->safesql(trim(str_replace(',', '|', $temp_array))); if ($config['allow_multi_category']) { $where[] = "category regexp '[[:<:]](" . $custom_category . ")[[:>:]]'"; } else { $custom_category = str_replace("|", "','", $custom_category); $where[] = "category IN ('" . $custom_category . "')"; } } if (preg_match("#days=['\"](.+?)['\"]#i", $param_str, $match)) { $days = intval(trim($match[1])); $where[] = "p.date >= '{$thisdate}' - INTERVAL {$days} DAY AND p.date < '{$thisdate}'"; } else { $days = 0; } if (preg_match("#author=['\"](.+?)['\"]#i", $param_str, $match)) { $author = $db->safesql(trim($match[1])); $where[] = "p.autor like '{$author}'"; } else { $author = ""; } $where[] = "approve=1"; if ($config['no_date'] and !$config['news_future'] and !$days) { $where[] = "date < '" . $thisdate . "'"; } if (preg_match("#template=['\"](.+?)['\"]#i", $param_str, $match)) { $custom_template = trim($match[1]); } else { $custom_template = "shortstory"; } if (preg_match("#from=['\"](.+?)['\"]#i", $param_str, $match)) { $custom_from = intval($match[1]); } else { $custom_from = 0; } if (preg_match("#limit=['\"](.+?)['\"]#i", $param_str, $match)) { $custom_limit = intval($match[1]); } else { $custom_limit = $config['news_number']; } if (preg_match("#cache=['\"](.+?)['\"]#i", $param_str, $match)) { if ($match[1] == "yes") { $config['allow_cache'] = "yes"; } else { $config['allow_cache'] = false; } } if (preg_match("#fixed=['\"](.+?)['\"]#i", $param_str, $match)) { $fixed = ""; $fixedcache = "fixed yes"; if ($match[1] == "yes") { $fixed = "fixed DESC, "; } elseif ($match[1] == "only") { $where[] = "fixed='1'"; $fixedcache = "fixed only"; } } else { $fixed = ""; $fixedcache = ""; } if ($is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and !$user_group[$member_id['user_group']]['allow_all_edit'])) { $config['allow_cache'] = false; } if ($cat_info[$custom_category]['news_sort'] != "") { $news_sort = $cat_info[$custom_category]['news_sort']; } else { $news_sort = $config['news_sort']; } if ($cat_info[$custom_category]['news_msort'] != "") { $news_msort = $cat_info[$custom_category]['news_msort']; } else { $news_msort = $config['news_msort']; } if (preg_match("#order=['\"](.+?)['\"]#i", $param_str, $match)) { $allowed_sort = array('date' => 'date', 'rating' => 'rating', 'reads' => 'news_read', 'comments' => 'comm_num', 'title' => 'title', 'rand' => 'RAND()'); if ($allowed_sort[$match[1]]) { $news_sort = $allowed_sort[$match[1]]; } if ($match[1] == "rand") { $fixed = ""; $news_msort = ""; } else { $news_msort = "DESC"; } if ($match[1] == "title") { $news_msort = "ASC"; } } $sql_select .= " WHERE " . implode(' AND ', $where) . " ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit; $custom_cache_id = $custom_id . $custom_category . $user_group[$member_id['user_group']]['allow_cats'] . $custom_from . $custom_limit . $news_sort . $news_msort . $custom_template . $days . $author . $fixedcache; $content = dle_cache("news", $custom_cache_id, true); if ($content !== false) { $config['allow_cache'] = $allow_cache; return $content; } else { $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; $tpl->load_template($custom_template . '.tpl'); $sql_result = $db->query($sql_select); include ENGINE_DIR . '/modules/show.custom.php'; if ($config['files_allow'] == "yes") { if (strpos($tpl->result['content'], "[attachment=") !== false) { $tpl->result['content'] = show_attach($tpl->result['content'], $attachments); } } create_cache("news", $tpl->result['content'], $custom_cache_id, true); $config['allow_cache'] = $allow_cache; return $tpl->result['content']; } }
/** * Метод подхватывает tpl-шаблон, заменяет в нём теги и возвращает отформатированную строку * @param $template - название шаблона, который нужно применить * @param $vars - ассоциативный массив с данными для замены переменных в шаблоне * @param $blocks - ассоциативный массив с данными для замены блоков в шаблоне * @param $copyTemplate - массив с данными для замены тегов * @param $copyTemplateMetod - str_replace или preg_replace в зависимости от переменной * * @return string tpl-шаблон, заполненный данными из массива $data */ public function applyTemplate($template, $vars = array(), $blocks = array()) { // Подключаем файл шаблона $template.tpl, заполняем его $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; $tpl->load_template($template.'.tpl'); // Заполняем шаблон переменными foreach($vars as $var => $value) { $tpl->set($var, $value); } // Заполняем шаблон блоками foreach($blocks as $block => $value) { $tpl->set_block($block, $value); } // Компилируем шаблон (что бы это не означало ;)) $tpl->compile($template); // Выводим результат return $tpl->result[$template]; }
function show_attach($story, $id, $static = false) { global $db, $config, $lang, $user_group, $member_id, $_TIME, $news_date; $find_1 = array(); $find_2 = array(); $replace_1 = array(); $replace_2 = array(); $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; if ($static) { if (is_array($id) and count($id)) { $list = array(); foreach ($id as $value) { $list[] = intval($value); } $id = implode(',', $list); $where = "static_id IN ({$id})"; } else { $where = "static_id = '" . intval($id) . "'"; } $db->query("SELECT id, date, name, onserver, dcount FROM " . PREFIX . "_static_files WHERE {$where}"); $area = "&area=static"; } else { if (is_array($id) and count($id)) { $list = array(); foreach ($id as $value) { $list[] = intval($value); } $id = implode(',', $list); $where = "news_id IN ({$id})"; } else { $where = "news_id = '" . intval($id) . "'"; } $db->query("SELECT id, date, name, onserver, dcount FROM " . PREFIX . "_files WHERE {$where}"); $area = ""; } if (!file_exists($tpl->dir . "/attachment.tpl")) { $tpl->template = <<<HTML [allow-download]<span class="attachment"><a href="{link}" >{name}</a> [count] [{size}] ({$lang['att_dcount']} {count})[/count]</span>[/allow-download] [not-allow-download]<span class="attachment">{$lang['att_denied']}</span>[/not-allow-download] HTML; $tpl->copy_template = $tpl->template; } else { $tpl->load_template('attachment.tpl'); } while ($row = $db->get_row()) { $row['name'] = explode("/", $row['name']); $row['name'] = end($row['name']); $filename_arr = explode(".", $row['onserver']); $type = strtolower(end($filename_arr)); $find_1[] = '[attachment=' . $row['id'] . ']'; $find_2[] = "#\\[attachment={$row['id']}:(.+?)\\]#i"; if (stripos($tpl->copy_template, "{md5}") !== false) { $tpl->set('{md5}', @md5_file(ROOT_DIR . '/uploads/files/' . $row['onserver'])); } if (stripos($tpl->copy_template, "{size}") !== false) { $tpl->set('{size}', formatsize(@filesize(ROOT_DIR . '/uploads/files/' . $row['onserver']))); } if ($user_group[$member_id['user_group']]['allow_files']) { $tpl->set('[allow-download]', ""); $tpl->set('[/allow-download]', ""); $tpl->set_block("'\\[not-allow-download\\](.*?)\\[/not-allow-download\\]'si", ""); } else { $tpl->set('[not-allow-download]', ""); $tpl->set('[/not-allow-download]', ""); $tpl->set_block("'\\[allow-download\\](.*?)\\[/allow-download\\]'si", ""); } if ($config['files_count']) { $tpl->set('{count}', $row['dcount']); $tpl->set('[count]', ""); $tpl->set('[/count]', ""); $tpl->set_block("'\\[not-allow-count\\](.*?)\\[/not-allow-count\\]'si", ""); } else { $tpl->set('{count}', ""); $tpl->set('[not-allow-count]', ""); $tpl->set('[/not-allow-count]', ""); $tpl->set_block("'\\[count\\](.*?)\\[/count\\]'si", ""); } if (date('Ymd', $row['date']) == date('Ymd', $_TIME)) { $tpl->set('{date}', $lang['time_heute'] . langdate(", H:i", $row['date'])); } elseif (date('Ymd', $row['date']) == date('Ymd', $_TIME - 86400)) { $tpl->set('{date}', $lang['time_gestern'] . langdate(", H:i", $row['date'])); } else { $tpl->set('{date}', langdate($config['timestamp_active'], $row['date'])); } $news_date = $row['date']; $tpl->copy_template = preg_replace_callback("#\\{date=(.+?)\\}#i", "formdate", $tpl->copy_template); $tpl->set('{name}', $row['name']); $tpl->set('{extension}', $type); $tpl->set('{link}', $config['http_home_url'] . "engine/download.php?id=" . $row['id'] . $area); $tpl->set('{id}', $row['id']); $tpl->compile('attachment'); $replace_1[] = $tpl->result['attachment']; $tpl->result['attachment'] = str_replace($row['name'], "\\1", $tpl->result['attachment']); $replace_2[] = $tpl->result['attachment']; $tpl->result['attachment'] = ''; } $tpl->clear(); $db->free(); $story = str_replace($find_1, $replace_1, $story); $story = preg_replace($find_2, $replace_2, $story); return $story; }
public function block_online(dle_template &$tpl) { if (!$this->config['allow_module'] || !$this->config['allow_online_block']) { return false; } if ((int) $this->config['block_online_cache_time'] && file_exists(ENGINE_DIR . "/cache/block_online.tmp") && time() - filemtime(ENGINE_DIR . "/cache/block_online.tmp") > (int) $this->config['block_online_cache_time'] && ($cache = dle_cache("block_online"))) { $tpl->result['block_online'] = $cache; return true; } $this->_db_connect(); $this->db->query("SELECT member_id, ip_address, running_time, location_1_type, browser, member_name FROM " . IPB_PREFIX . "sessions WHERE running_time>" . (time() - $this->config['online_time'])); $users = $robots = $onl_onlinebots = array(); $guests = $count_user = $count_robots = 0; while ($user = $this->db->get_row()) { foreach ($user as &$value) { $this->_convert_charset($value, true); } if ($user['member_id'] == 0) { $current_robot = $this->robots($user['browser']); if ($current_robot != "") { if ($onl_onlinebots[$current_robot]['lastactivity'] < $user['running_time']) { $robots[$current_robot]['name'] = $current_robot; $robots[$current_robot]['lastactivity'] = $user['running_time']; $robots[$current_robot]['host'] = $user['ip_address']; $robots[$current_robot]['location'] = $user['location_1_type']; } } else { $guests++; } } else { if ($users[$user['member_id']]['lastactivity'] < $user['running_time']) { $users[$user['member_id']]['username'] = $user['member_name']; $users[$user['member_id']]['lastactivity'] = $user['running_time']; $users[$user['member_id']]['useragent'] = $user['browser']; $users[$user['member_id']]['host'] = $user['ip_address']; $users[$user['member_id']]['location'] = $user['location_1_type']; } } } $location_array = array("%addcomments%" => $this->lang['paddcomments'], "%readnews%" => $this->lang['preadnews'], "%incategory%" => $this->lang['pincategory'], "%posin%" => $this->lang['pposin'], "%mainpage%" => $this->lang['pmainpage'], "%view_pofile%" => $this->lang['view_profile'], "%newposts%" => $this->lang['newposts'], "%view_stats%" => $this->lang['view_stats']); if (count($users)) { foreach ($users as $id => $value) { $user_array[$value['username']]['desc'] = ''; if (@$GLOBALS['member_id']['user_group'] == 1) { $user_array[$value['username']]['desc'] .= $this->lang['os'] . $this->os($value['useragent']) . '<br />' . $this->lang['browser'] . $this->browser($users[$id]['useragent']) . '<br />' . '<b>IP:</b> ' . $users[$id]['host'] . '<br />'; } $user_array[$value['username']]['desc'] .= $this->lang['was'] . $this->timeagos($users[$id]['lastactivity']) . $this->lang['back'] . '<br />' . $this->lang['location']; if (preg_match("'%(.*?)%'si", $users[$id]['location'])) { foreach ($location_array as $find => $replace) { $users[$id]['location'] = str_replace($find, $replace, $users[$id]['location']); } } else { $users[$id]['location'] = $this->lang['pforum']; } $user_array[$value['username']]['desc'] .= $users[$id]['location'] . "<br/>"; $user_array[$value['username']]['id'] = $id; $count_user++; } } if (count($robots)) { foreach ($robots as $name => $value) { if (!empty($GLOBALS['member_id']['user_group']) && $GLOBALS['member_id']['user_group'] == 1) { $robot_array[$name] = $this->lang['os'] . $this->os($robots[$name]['useragent']) . '<br />' . $this->lang['browser'] . $this->browser($robots[$name]['useragent']) . '<br />' . '<b>IP:</b> ' . $robots[$name]['host'] . '<br />'; } $robot_array[$name] .= $this->lang['was'] . $this->timeagos($robots[$name]['lastactivity']) . $this->lang['back'] . '<br />' . $this->lang['location']; if (preg_match("'%(.*?)%'si", $robots[$name]['location'])) { foreach ($location_array as $find => $replace) { $robots[$name]['location'] = str_replace($find, $replace, $robots[$name]['location']); } } else { $robots[$name]['location'] = $this->lang['pforum']; } $robot_array[$name] .= $robots[$name]['location'] . "<br/>"; $count_robots++; } } $users = ""; $i = 0; if (count($user_array)) { foreach ($user_array as $name => $desc) { if ($i) { $users .= $this->config['separator']; } $desc['desc'] = htmlspecialchars($desc['desc'], ENT_QUOTES); $users .= "<a onmouseover=\"showhint('{$desc['desc']}', this, event, '180px');\" href=\"{$this->ipb_config['board_url']}/index.php?showuser={$desc['id']}\" >" . $name . "</a>"; $i++; } } else { $users = $this->lang['notusers']; } $robots = ""; $i = 0; if (count($robot_array)) { foreach ($robot_array as $name => $desc) { if ($i) { $robots .= $this->config['separator']; } $desc = htmlspecialchars($desc, ENT_QUOTES); $robots .= "<span onmouseover=\"showhint('{$desc}', this, event, '180px');\" style=\"cursor:hand;\" >" . $name . "</span>"; $i++; } } else { $robots = $this->lang['notbots']; } $tpl->load_template('block_online.tpl'); $tpl->set('{users}', $count_user); $tpl->set('{guest}', $guests); $tpl->set('{robots}', $count_robots); $tpl->set('{all}', $count_user + $guests + $count_robots); $tpl->set('{userlist}', $users); $tpl->set('{botlist}', $robots); /* $tpl->copy_template = "\n<script type=\"text/javascript\" src=\"".$GLOBALS['config']['http_home_url']."engine/skins/default.js\"></script>\n <style type=\"text/css\" media=\"all\"> @import url(/templates/".$GLOBALS['config']['skin']."/css/block_online.css); </style>" .$tpl->copy_template;*/ $tpl->compile('block_online'); $tpl->clear(); $this->_db_disconnect(); if ((int) $this->config['block_online_cache_time']) { create_cache("block_online", $tpl->result['block_online']); } return true; }
} else { if ($allow_sub_cats) { $get_cats = str_replace("|", "','", $get_cats); $where_category = "category IN ('" . $get_cats . "') AND "; } else { $where_category = "category = '{$get_cats}' AND "; } } } else { $where_category = ""; } $db->query("SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$where_category}{$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('{$body}') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number']); } $tpl2 = new dle_template(); $tpl2->dir = TEMPLATE_DIR; $tpl2->load_template('relatednews.tpl'); if (strpos($tpl2->copy_template, "[xfvalue_") !== false or strpos($tpl2->copy_template, "[xfgiven_") !== false) { $xfound = true; } else { $xfound = false; } while ($related = $db->get_row()) { if ($first_show) { $related_ids[] = $related['id']; } $related['date'] = strtotime($related['date']); if (!$related['category']) { $my_cat = "---"; $my_cat_link = "---"; } else { $my_cat = array();
private function _online_block(dle_template &$tpl) { global $PHP_SELF; $cache = ''; if ($this->config['vb_block_online_cache_time'] && function_exists('dle_cache')) { $block_time = get_vars('vb_block_online_cache_time'); if (time() - $block_time < $this->config['vb_block_online_cache_time']) { $cache = dle_cache('vb_block_online_cache'); } } if (!$cache) { $this->_db_connect(); if (!$this->vb_config['refresh']) { $this->vb_config['refresh'] = 15; } $this->db->query("SELECT s.userid, s.host, s.lastactivity, s.location, s.useragent, u.username FROM " . VB_PREFIX . "session AS s\n LEFT OUTER JOIN " . VB_PREFIX . "user AS u\n ON u.userid=s.userid\n WHERE s.lastactivity>" . (time() - $this->vb_config['refresh'] * 60)); $users = $robots = array(); $guests = $count_user = $count_robots = 0; while ($user = $this->db->get_row()) { if (VB_CHARSET && VB_CHARSET != DLE_CHARSET) { $user['useragent'] = iconv(VB_CHARSET, DLE_CHARSET, $user['useragent']); $user['location'] = iconv(VB_CHARSET, DLE_CHARSET, $user['location']); $user['username'] = iconv(VB_CHARSET, DLE_CHARSET, $user['username']); } if ($user['userid'] == 0) { $current_robot = $this->_robots($user['useragent']); if ($current_robot != "") { $robots[$current_robot]['name'] = $current_robot; $robots[$current_robot]['lastactivity'] = $user['lastactivity']; $robots[$current_robot]['host'] = $user['host']; $robots[$current_robot]['location'] = $user['location']; } else { $guests++; } } else { $users[$user['userid']]['username'] = $user['username']; $users[$user['userid']]['lastactivity'] = $user['lastactivity']; $users[$user['userid']]['useragent'] = $user['useragent']; $users[$user['userid']]['host'] = $user['host']; $users[$user['userid']]['location'] = $user['location']; } } $location_array = array("%addcomments%" => $this->lang['paddcomments'], "%readnews%" => $this->lang['preadnews'], "%incategory%" => $this->lang['pincategory'], "%posin%" => $this->lang['pposin'], "%mainpage%" => $this->lang['pmainpage'], "%view_pofile%" => $this->lang['view_profile'], "%newposts%" => $this->lang['newposts'], "%view_stats%" => $this->lang['view_stats']); if (count($users)) { foreach ($users as $id => $value) { if ($GLOBALS['member_id']['user_group'] == 1) { $user_array[$value['username']] = $this->lang['os'] . $this->_os($users[$id]['useragent']) . '<br />' . $this->lang['browser'] . $this->_browser($users[$id]['useragent']) . '<br />' . '<b>IP:</b> ' . $users[$id]['host'] . '<br />'; } $user_array[$value['username']] .= $this->lang['was'] . $this->_timeagos($users[$id]['lastactivity']) . $this->lang['back'] . '<br />' . $this->lang['location']; if (preg_match("'%(.*?)%'si", $users[$id]['location'])) { foreach ($location_array as $find => $replace) { $users[$id]['location'] = str_replace($find, $replace, $users[$id]['location']); } } else { $users[$id]['location'] = $this->lang['pforum']; } $user_array[$value['username']] .= $users[$id]['location'] . "<br/>"; $descr = $user_array[$value['username']]; $user_array[$value['username']] = array(); $user_array[$value['username']]['descr'] = $descr; $user_array[$value['username']]['id'] = $id; $count_user++; } } if (count($robots)) { foreach ($robots as $name => $value) { if ($GLOBALS['member_id']['user_group'] == 1) { $robot_array[$name] = $this->lang['os'] . $this->_os($robots[$name]['useragent']) . '<br />' . $this->lang['browser'] . $this->_browser($robots[$name]['useragent']) . '<br />' . '<b>IP:</b> ' . $robots[$name]['host'] . '<br />'; } $robot_array[$name] .= $this->lang['was'] . $this->_timeagos($robots[$name]['lastactivity']) . $this->lang['back'] . '<br />' . $this->lang['location']; if (preg_match("'%(.*?)%'si", $robots[$name]['location'])) { foreach ($location_array as $find => $replace) { $robots[$name]['location'] = str_replace($find, $replace, $robots[$name]['location']); } } else { $robots[$name]['location'] = $this->lang['pforum']; } $robot_array[$name] .= $robots[$name]['location'] . "<br/>"; $count_robots++; } } $users = ""; $i = 0; if (count($user_array)) { foreach ($user_array as $name => $a) { $desc = $a['descr']; $id = $a['id']; if ($i) { $users .= $this->config['separator']; } $desc = htmlspecialchars($desc, ENT_QUOTES); if (!$this->config['vb_block_online_user_link_forum']) { $user_url = $GLOBALS['config']['allow_alt_url'] == "yes" ? $GLOBALS['config']['http_home_url'] . "user/" . urlencode($name) . "/" : $PHP_SELF . "?subaction=userinfo&user="******"/member.php?u=" . $id; } $users .= "<a onmouseover=\"showhint('{$desc}', this, event, '180px');\" href=\"" . $user_url . "\" >" . $name . "</a>"; $i++; } } else { $users = $this->lang['notusers']; } $robots = ""; $i = 0; if (count($robot_array)) { foreach ($robot_array as $name => $desc) { if ($i) { $robots .= $this->config['separator']; } $desc = htmlspecialchars($desc, ENT_QUOTES); $robots .= "<span onmouseover=\"showhint('{$desc}', this, event, '180px');\" style=\"cursor:hand;\" >" . $name . "</span>"; $i++; } } else { $robots = $this->lang['notbots']; } $tpl->load_template('block_online.tpl'); $tpl->set('{users}', $count_user); $tpl->set('{guest}', $guests); $tpl->set('{robots}', $count_robots); $tpl->set('{all}', $count_user + $guests + $count_robots); $tpl->set('{userlist}', $users); $tpl->set('{botlist}', $robots); $tpl->compile('block_online'); $tpl->clear(); if ($this->config['block_online_cache_time'] && function_exists('create_cache')) { create_cache("vb_block_online_cache", $tpl->result['block_online']); set_vars('vb_block_online_cache_time', time()); } } else { $tpl->result['block_online'] = $cache; } }
////////////////////////////// //тут будет код для DLE 9.6+// ////////////////////////////// } else { if (strlen($row['full_story']) < strlen($row['short_story'])) { $body = $row['short_story']; } else { $body = $row['full_story']; } $body = $db->safesql(strip_tags(stripslashes($metatags['title'] . " " . $body))); } } if ($template) { $tplb = new dle_template(); $tplb->dir = TEMPLATE_DIR; $tplb->load_template($template . '.tpl'); $tooday = date('Y-m-d H:i:s', $_TIME); $query_mod = ""; $ignore_category = $ignore_cat ? "NOT" : ""; if ($show_cat && $show_cat != "this") { $query_mod .= "AND {$ignore_category} p.category regexp '[[:<:]](" . str_replace(',', '|', $show_cat) . ")[[:>:]]'"; } if ($show_cat == "this" && $category_id != "") { $query_mod .= "AND {$ignore_category} p.category IN (" . intval($category_id) . ")"; } if ($xfilter) { $query_mod .= "AND p.xfields regexp '[[:<:]](" . $xfilter . ")[[:>:]]'"; } if ($day && $day !== 0 && !$last && !$relatedpro && !$random) { $query_mod .= "AND p.date >= '{$tooday}' - INTERVAL {$day} DAY"; }
/** * * @param string $template file name * @return TemplateUser */ public function load($template) { $this->tpl->load_template($this->patch . $template . ".tpl"); return $this; }
protected function _loadTmpl($name) { $this->_tpl->load_template(self::TEMPLATE_PATH . $name . ".tpl"); }
function msgbox($title, $text) { global $tpl; $tpl_2 = new dle_template(); $tpl_2->dir = TEMPLATE_DIR; $tpl_2->load_template('info.tpl'); $tpl_2->set('{error}', $text); $tpl_2->set('{title}', $title); $tpl_2->compile('info'); $tpl_2->clear(); $tpl->result['info'] .= $tpl_2->result['info']; }
public function lastTopics(dle_template $tpl) { if (!$this->config['allow_forum_block'] || !$this->config['allow_module']) { return ''; } if ((int) $this->config['block_cache_time']) { $cache = dle_cache('xen_block_cache_time'); if ($cache) { $cache = unserialize($cache); if (!empty($cache['time']) && $cache['time'] > time() - $this->config['block_cache_time']) { return $cache['data']; } } } $forum_id = ""; if ($this->config['bad_forum_for_block'] && !$this->config['good_forum_for_block']) { $forum_bad = explode(",", $this->config['bad_forum_for_block']); $forum_id = " AND t.node_id NOT IN('" . implode("','", $forum_bad) . "')"; } elseif (!$this->config['bad_forum_for_block'] && $this->config['good_forum_for_block']) { $forum_good = explode(",", $this->config['good_forum_for_block']); $forum_id = " AND t.node_id IN('" . implode("','", $forum_good) . "')"; } if (!(int) $this->config['count_post']) { $this->config['count_post'] = 10; } $sth = $this->db->query('SELECT t.title, t.thread_id, t.last_post_date, t.reply_count, t.view_count, f.title as forum_title, t.node_id, t.last_post_username, t.last_post_user_id FROM ' . F_PREFIX . 'thread AS t LEFT JOIN ' . F_PREFIX . 'node AS f ON f.node_id = t.node_id WHERE discussion_state="visible"' . $forum_id . ' ORDER BY t.last_post_date DESC LIMIT 0, ' . intval($this->config['count_post'])); $forum_url = rtrim($this->options['boardUrl'], "/") . "/"; if (!$this->config['block_rewrite_url']) { $forum_url .= "index.php?"; } $tpl->load_template('block_forum_posts.tpl'); preg_match("'\\[row\\](.*?)\\[/row\\]'si", $tpl->copy_template, $matches); $block_content = ''; while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { $short_name = $title = $this->_convert_encoding($row["title"], true); $row['last_post_username'] = $this->_convert_encoding($row['last_post_username'], true); if (!empty($this->config['length_name']) && dle_strlen($title, $this->DLEConfig['charset']) > $this->config['length_name']) { $short_name = dle_substr($title, 0, $this->config['length_name'], $this->DLEConfig['charset']) . " ..."; } switch (date("d.m.Y", $row["last_post_date"])) { case date("d.m.Y"): $date = date($this->lang['today_in'] . "H:i", $row["last_post_date"]); break; case date("d.m.Y", time() - 86400): $date = date($this->lang['yesterday_in'] . "H:i", $row["last_post_date"]); break; default: $date = date("d.m.Y H:i", $row["last_post_date"]); } $replace = array('{user}' => $this->_convert_encoding($row['last_post_username'], true), '{user_url}' => $forum_url . "members/" . $this->getTitleForUrl($row['last_post_username']) . "." . $row['last_post_user_id'] . "/", '{reply_count}' => $row["reply_count"], '{view_count}' => $row["view_count"], '{full_name}' => $title, '{post_url}' => $forum_url . "threads/" . $this->getTitleForUrl($row['title']) . "." . $row["thread_id"] . "/", '{shot_name_post}' => $short_name, '{forum_name}' => $this->_convert_encoding($row['forum_title'], true), '{forum_url}' => $forum_url . "forums/" . $this->getTitleForUrl($row['forum_title']) . "." . $row["node_id"] . "/", '{date}' => $date); $block_content .= strtr($matches[1], $replace); } $tpl->set_block("'\\[row\\](.*?)\\[/row\\]'si", $block_content); $tpl->compile('block_forum_posts'); $tpl->clear(); if ((int) $this->config['block_cache_time']) { create_cache('xen_block_cache_time', serialize(array('time' => time(), 'data' => $tpl->result['block_forum_posts']))); } return $tpl->result['block_forum_posts']; }
function custom_users($matches = array()) { global $db, $_TIME, $config, $lang, $user_group, $user_conf, $news_date, $member_id, $nav; if (!count($matches)) { return ""; } $yes_no_map = array("yes" => "1", "no" => "0"); $param_str = trim($matches[1]); $thisdate = strtotime(date("Y-m-d H:i:s", $_TIME)); $where = array(); if (preg_match("#template=['\"](.+?)['\"]#i", $param_str, $match)) { $comm_tpl = trim($match[1]); } else { return ""; } if (preg_match("#id=['\"](.+?)['\"]#i", $param_str, $match)) { $temp_array = array(); $where_id = array(); $match[1] = explode(',', trim($match[1])); foreach ($match[1] as $value) { if (count(explode('-', $value)) == 2) { $value = explode('-', $value); $where_id[] = "u.user_id >= '" . intval($value[0]) . "' AND u.user_id <= '" . intval($value[1]) . "'"; } else { $temp_array[] = intval($value); } } if (count($temp_array)) { $where_id[] = "u.user_id IN ('" . implode("','", $temp_array) . "')"; } if (count($where_id)) { $custom_id = implode(' OR ', $where_id); $where[] = $custom_id; } } if (preg_match("#group=['\"](.+?)['\"]#i", $param_str, $match)) { $temp_array = array(); $where_id = array(); $match[1] = explode(',', trim($match[1])); foreach ($match[1] as $value) { if (count(explode('-', $value)) == 2) { $value = explode('-', $value); $where_id[] = "u.user_group >= '" . intval($value[0]) . "' AND u.user_group <= '" . intval($value[1]) . "'"; } else { $temp_array[] = intval($value); } } if (count($temp_array)) { $where_id[] = "u.user_group IN ('" . implode("','", $temp_array) . "')"; } if (count($where_id)) { $custom_id = implode(' OR ', $where_id); $where[] = $custom_id; } } if (preg_match("#online=['\"](.+?)['\"]#i", $param_str, $match)) { if ($match[1] == "yes") { $where[] = "u.lastdate+1200 > {$_TIME} "; } else { $where[] = "u.lastdate+1200 <= {$_TIME} "; } } if (preg_match("#from=['\"](.+?)['\"]#i", $param_str, $match)) { $user_from = intval($match[1]); $custom_all = $custom_from; } else { $user_from = 0; $custom_all = 0; } if (preg_match("#limit=['\"](.+?)['\"]#i", $param_str, $match)) { $user_limit = intval($match[1]); } else { $user_limit = $config['comm_nummers']; } if (preg_match("#order=['\"](.+?)['\"]#i", $param_str, $match)) { $allowed_order = array('news' => 'news_num', 'comment' => 'comm_num', 'group' => 'user_group', 'lastdate' => 'lastdate', 'regdate' => 'reg_date', 'nick' => 'name', 'rand' => 'RAND()'); if ($allowed_order[$match[1]]) { $user_order = $allowed_order[$match[1]]; } } if (!$user_order) { $user_order = "reg_date"; } if (preg_match("#sort=['\"](.+?)['\"]#i", $param_str, $match)) { $allowed_sort = array('asc' => 'ASC', 'desc' => 'DESC'); if ($allowed_sort[$match[1]]) { $user_sort = $allowed_sort[$match[1]]; } } if (!$user_sort) { $user_order = "ASC"; } if (preg_match("#cache=['\"](.+?)['\"]#i", $param_str, $match)) { $user_cache = $yes_no_map[$match[1]]; } else { $user_cache = "0"; } if (preg_match("#not=['\"](.+?)['\"]#i", $param_str, $match)) { $not_found = $db->safesql($match[1]); } else { $not_found = ""; } if (preg_match("#friends=['\"](.+?)['\"]#i", $param_str, $match)) { $fids = array(); if ($match[1] == "current") { $friend_que = $db->query("SELECT friend_id FROM " . PREFIX . "_users_friends WHERE user_id = '{$member_id['user_id']}' AND approve = '1'"); while ($row = $db->get_row($friend_que)) { $fids[] = $row['friend_id']; } } else { if ($match[1] == "profile") { $friend_que = $db->query("SELECT f.friend_id FROM " . PREFIX . "_users_friends f LEFT JOIN " . PREFIX . "_users u ON ( u.user_id = f.user_id ) WHERE u.name = '{$_REQUEST['user']}' AND f.approve = '1'"); while ($row = $db->get_row($friend_que)) { $fids[] = $row['friend_id']; } } } if (count($fids) > 0) { $where[] = "u.user_id IN ('" . implode("','", $fids) . "')"; } else { $where[] = "u.user_id = '0'"; } } else { $user_friends = false; } if (preg_match("#xfield=['\"](.+?)['\"]#i", $param_str, $match)) { $_temp = explode(",", $match[1]); $_rules = array(); foreach ($_temp as $_temp2) { if (strpos($_temp2, "this.") !== False && isset($member_id)) { $_temp3 = explode(":", $_temp2); $_temp4 = trim(str_replace("this.", "", $_temp3[1])); unset($_temp3); $_thisxf = xfieldsdataload($member_id['xfields']); if (array_key_exists($_temp4, $_thisxf)) { $_rules[] = "u.xfields LIKE '%" . $_temp4 . "|" . $_thisxf[$_temp4] . "%'"; } } else { $_rules[] = "u.xfields LIKE '%" . str_replace(":", "|", $_temp2) . "%'"; } } if (count($_rules) > 0) { $where[] = "( " . implode(" AND ", $_rules) . " )"; $use_xfield = True; } } else { $use_xfield = False; } $user_yes = false; $user_cols = array("email", "name", "user_id", "news_num", "comm_num", "user_group", "lastdate", "reg_date", "signature", "foto", "fullname", "land", "logged_ip"); if ($user_conf['sel_xfields']) { $user_cols[] = "xfields"; } $_WHERE = count($where) > 0 ? " WHERE " . implode(' AND ', $where) : ""; $build_navigation = false; if (isset($_GET['cstart'])) { $cstart = intval($_GET['cstart']); } else { $cstart = 0; } if (preg_match("#navigation=['\"](.+?)['\"]#i", $param_str, $match)) { if ($match[1] == "yes" and $url_page !== false) { $build_navigation = true; $custom_limit = $user_limit; //if ( $cstart > 10 ) $config['allow_cache'] = false; if ($cstart) { $cstart = $cstart - 1; $cstart = $cstart * $custom_limit + $user_from; $user_from = $cstart; } $count_que = $db->super_query("SELECT COUNT(u.name) as total FROM " . PREFIX . "_users u{$_WHERE} ORDER BY {$user_order} {$user_sort}"); $count_all = $count_que['total']; } else { $build_navigation = false; } } else { $build_navigation = false; } $user_sql = "SELECT u." . implode(", u.", $user_cols) . " FROM " . PREFIX . "_users u{$_WHERE} ORDER BY {$user_order} {$user_sort} LIMIT {$user_from},{$user_limit}"; $user_que = $db->query($user_sql); if ($user_cache) { $user_cacheid = $param_str . $user_sql . $member_id['user_group'] . $build_navigation . $cstart . implode("|", $user_conf); $cache_content = dle_cache("news_ucustom", $user_cacheid, true); } else { $cache_content = false; } if (!$cache_content) { $tpl = new dle_template(); $tpl->dir = TEMPLATE_DIR; // Build navigation - start $url_page =& $nav['url_page']; $user_query =& $nav['user_query']; if ($build_navigation and $count_all) { $tpl->load_template('navigation.tpl'); $no_prev = false; $no_next = false; if (isset($_GET['cstart'])) { $cstart = intval($_GET['cstart']); } else { $cstart = 1; } if (isset($cstart) and $cstart != "" and $cstart > 1) { $prev = $cstart - 1; if ($config['allow_alt_url']) { $prev_page = $prev == 1 ? $url_page . "/" : $url_page . "/page/" . $prev . "/"; $tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link\\]'si", "<a href=\"" . $prev_page . "\">\\1</a>"); } else { $prev_page = $prev == 1 ? $PHP_SELF . "?" . $user_query : $PHP_SELF . "?cstart=" . $prev . "&" . $user_query; $tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link\\]'si", "<a href=\"" . $prev_page . "\">\\1</a>"); } } else { $tpl->set_block("'\\[prev-link\\](.*?)\\[/prev-link\\]'si", "<span>\\1</span>"); $no_prev = TRUE; } if ($custom_limit) { $pages = ""; if ($count_all > $custom_limit) { $enpages_count = @ceil($count_all / $custom_limit); if ($enpages_count <= 10) { for ($j = 1; $j <= $enpages_count; $j++) { if ($j != $cstart) { if ($config['allow_alt_url']) { $pages .= $j == 1 ? "<a href=\"" . $url_page . "/\">{$j}</a> " : "<a href=\"" . $url_page . "/page/" . $j . "/\">{$j}</a>"; } else { $pages .= $j == 1 ? "<a href=\"{$PHP_SELF}?{$user_query}\">{$j}</a> " : "<a href=\"{$PHP_SELF}?{$user_query}&cstart={$j}\">{$j}</a>"; } } else { $pages .= "<span>{$j}</span> "; } } } else { $start = 1; $end = 10; $nav_prefix = "<span class=\"nav_ext\">{$lang['nav_trennen']}</span> "; if ($cstart > 0) { if ($cstart > 6) { $start = $cstart - 4; $end = $start + 8; if ($end >= $enpages_count) { $start = $enpages_count - 9; $end = $enpages_count - 1; $nav_prefix = ""; } else { $nav_prefix = "<span class=\"nav_ext\">{$lang['nav_trennen']}</span> "; } } } if ($start >= 2) { $pages .= $config['allow_alt_url'] ? "<a href=\"" . $url_page . "/\">1</a> <span class=\"nav_ext\">{$lang['nav_trennen']}</span> " : "<a href=\"{$PHP_SELF}?{$user_query}\">1</a> <span class=\"nav_ext\">{$lang['nav_trennen']}</span> "; } for ($j = $start; $j <= $end; $j++) { if ($j != $cstart) { if ($config['allow_alt_url']) { $pages .= $j == 1 ? "<a href=\"" . $url_page . "/\">{$j}</a> " : "<a href=\"" . $url_page . "/page/" . $j . "/\">{$j}</a> "; } else { $pages .= $j == 1 ? "<a href=\"{$PHP_SELF}?{$user_query}\">{$j}</a> " : "<a href=\"{$PHP_SELF}?{$user_query}&cstart={$j}\">{$j}</a> "; } } else { $pages .= "<span>{$j}</span> "; } } if ($cstart != $enpages_count) { $pages .= $config['allow_alt_url'] ? $nav_prefix . "<a href=\"" . $url_page . "/page/{$enpages_count}/\">{$enpages_count}</a>" : $nav_prefix . "<a href=\"{$PHP_SELF}?{$user_query}&cstart={$enpages_count}\">{$enpages_count}</a>"; } else { $pages .= "<span>{$enpages_count}</span> "; } } } $tpl->set('{pages}', $pages); } if ($custom_limit and $custom_limit < $count_all and $cstart < $enpages_count) { $next_page = $cstart + 1; $next = $config['allow_alt_url'] ? $url_page . '/page/' . $next_page . '/' : $PHP_SELF . "?" . $user_query . "&cstart=" . $next_page; $tpl->set_block("'\\[next-link\\](.*?)\\[/next-link\\]'si", "<a href=\"" . $next . "\">\\1</a>"); } else { $tpl->set_block("'\\[next-link\\](.*?)\\[/next-link\\]'si", "<span>\\1</span>"); $no_next = TRUE; } if (!$no_prev or !$no_next) { $tpl->compile('navi'); } $tpl->clear(); } // Build navigation - end $tpl->load_template($comm_tpl . '.tpl'); while ($user_row = $db->get_row($user_que)) { $user_yes = true; $news_row = false; if ($user_conf['sel_news_info']) { $news_row = $db->super_query("SELECT id, title, category, alt_name, date FROM " . PREFIX . "_post WHERE autor = '{$user_row['name']}' ORDER BY date DESC LIMIT 0,1"); if ($news_row) { if (preg_match("#\\{news-title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches)) { $count = intval($matches[1]); $tpl->set($matches[0], user_title($count, $news_row['title'])); } else { $tpl->set('{news-title}', strip_tags(stripslashes($news_row['title']))); } $tpl->set('{news-link}', user_fulllink($news_row['post_id'], $news_row['category'], $news_row['alt_name'], $news_row['pdate'])); $tpl->set('{news-cat}', get_categories($news_row['category'])); $news_date = strtotime($news_row['date']); $tpl->copy_template = preg_replace_callback("#\\{news-date=(.+?)\\}#i", "user_formdate", $tpl->copy_template); $tpl->set('{news-date}', $news_row['date']); $tpl->set('{news-id}', $news_row['id']); } } if ($user_row['lastdate'] + 1200 > $_TIME) { $tpl->set('[online]', ""); $tpl->set('[/online]', ""); $tpl->set_block("'\\[offline\\](.*?)\\[/offline\\]'si", ""); } else { $tpl->set('[offline]', ""); $tpl->set('[/offline]', ""); $tpl->set_block("'\\[online\\](.*?)\\[/online\\]'si", ""); } $news_date = $user_row['reg_date']; $tpl->copy_template = preg_replace_callback("#\\{reg-date=(.+?)\\}#i", "user_formdate", $tpl->copy_template); $tpl->set('{reg-date}', date("d.m.Y H:i:s", $news_date)); $news_date = $user_row['lastdate']; $tpl->copy_template = preg_replace_callback("#\\{last-date=(.+?)\\}#i", "user_formdate", $tpl->copy_template); $tpl->set('{last-date}', date("d.m.Y H:i:s", $news_date)); if (count(explode("@", $user_row['foto'])) == 2) { $tpl->set('{foto}', 'http://www.gravatar.com/avatar/' . md5(trim($user_row['foto'])) . '?s=' . intval($user_group[$user_row['user_group']]['max_foto'])); } else { if ($user_row['foto'] && $config['version_id'] < "10.5") { if (file_exists(ROOT_DIR . "/uploads/fotos/" . $user_row['foto'])) { $tpl->set('{foto}', $config['http_home_url'] . "uploads/fotos/" . $comm_row['foto']); } else { $tpl->set('{foto}', "{THEME}/dleimages/noavatar.png"); } } else { if ($user_row['foto'] && $config['version_id'] >= "10.5") { $tpl->set('{foto}', $user_row['foto']); } else { $tpl->set('{foto}', "{THEME}/dleimages/noavatar.png"); } } } if ($user_conf['sel_xfields']) { $xf = xfieldsdataload($user_row['xfields']); foreach ($xf as $xf_key => $xf_val) { $xf_key = preg_quote($xf_key, "'"); $tpl->set("{xfield-" . $xf_key . "}", $xf_val); } } else { $tpl->set_block("'{xfield-(.*?)}'si", ""); } $tpl->set("{name}", $user_row['name']); $tpl->set("{name-colored}", $user_group[$user_row['user_group']]['group_prefix'] . $user_row['name'] . $user_group[$user_row['user_group']]['group_suffix']); $tpl->set("{name-url}", $config['allow_alt_url'] ? $config['http_home_url'] . "user/" . urlencode($user_row['name']) : $config['http_home_url'] . "index.php?subaction=userinfo&user="******"{name-popup}", $config['allow_alt_url'] ? "ShowProfile('" . urlencode($user_row['name']) . "', '" . $config['http_home_url'] . "user/" . urlencode($user_row['name']) . "/', '1'); return false;" : "ShowProfile('" . urlencode($user_row['name']) . "', '" . $config['http_home_url'] . "index.php?subaction=userinfo&user="******"', '0'); return false;"); $tpl->set("{allnews-url}", $config['allow_alt_url'] ? $config['http_home_url'] . "user/" . urlencode($user_row['name']) . "/news/" : $config['http_home_url'] . "index.php?subaction=allnews&user="******"{allcomm-url}", $config['http_home_url'] . "index.php?do=lastcomments&userid=" . urlencode($user_row['user_id'])); $tpl->set("{pm-url}", $config['http_home_url'] . "index.php?do=pm&doaction=newpm&user="******"{email-url}", $config['http_home_url'] . "index.php?do=feedback&user="******"{news-num}", intval($user_row['news_num'])); $tpl->set("{comm-num}", intval($user_row['comm_num'])); $tpl->set("{email}", $user_row['email']); $tpl->set("{ip}", $user_row['logged_ip']); $tpl->set("{id}", $user_row['user_id']); $tpl->set("{land}", $user_row['land']); $tpl->set('{info}', $user_row['info']); $tpl->set('{sign}', $user_row['signature']); $tpl->set("{full-name}", $user_row['fullname']); $tpl->set("{group}", $user_group[$user_row['user_group']]['group_name']); $tpl->set("{group-id}", $user_group[$user_row['user_group']]['id']); $tpl->set("{group-colored}", $user_group[$user_row['user_group']]['group_prefix'] . $user_group[$user_row['user_group']]['group_name'] . $user_group[$user_row['user_group']]['group_suffix']); $tpl->set("{group-icon}", $user_group[$user_row['user_group']]['icon']); $tpl->compile("content"); $tpl->result['content'] = preg_replace("#\\{xfield-(.*?)\\}#is", "", $tpl->result['content']); $tpl->result['content'] = preg_replace("#\\[user-group=" . $user_row['user_group'] . "\\](.*?)\\[/user-group\\]#is", "\\1", $tpl->result['content']); $tpl->result['content'] = preg_replace("#\\[user-group=([0-9])\\](.*?)\\[/user-group\\]#is", "", $tpl->result['content']); $tpl->result['content'] = preg_replace("#\\[news\\](.*?)\\[/news\\]#is", $news_row != false ? "\\1" : "", $tpl->result['content']); } if (!$user_yes) { $tpl->result['content'] = $not_found; } if ($build_navigation) { $tpl->result['content'] = $tpl->result['content'] . $tpl->result['navi']; } $tpl->result['content'] = str_replace("{THEME}", $config['http_home_url'] . "templates/" . $config['skin'] . "/", $tpl->result['content']); if ($user_cache) { create_cache("news_ucustom", $tpl->result['content'], $user_cacheid, true); } return $tpl->result['content']; } else { return $cache_content; } }