private function parsePageContent($page) { if ($page instanceof ormPage && $page->active) { page::assign('page_id', $page->id); $pages = ormPages::getActiveId(); while (list($num, $id) = each($pages)) { page::assign('page_id' . $num, $id); } page::globalVar('h1', $page->h1); page::globalVar('title', $page->title); if ($page->keywords) { page::globalVar('keywords', $page->keywords); } if ($page->description) { page::globalVar('description', $page->description); } if ($page->template2_id != 0) { $content = page::macros('structure')->objView($page->id); } else { $content = $page->content; } $templ_name = ($templ = templates::get($page->template_id)) ? $templ->getFile() : 'default'; system::$defTemplate = '/structure/' . $templ_name . '.tpl'; if (empty($content)) { $content = ' '; } return $content; } }
/** * Returns all the warnings * * @return string The warnings */ function show_warnings() { global $lang, $templates; if (empty($this->warnings)) { return false; } // Incase a template fails and we're recieving a blank page. if (MANUAL_WARNINGS) { echo $this->warnings . "<br />"; } if (!$lang->warnings) { $lang->warnings = "The following warnings occured:"; } if (defined("IN_ADMINCP")) { $warning = makeacpphpwarning($this->warnings); } else { $template_exists = false; if (!is_object($templates) || !method_exists($templates, 'get')) { if (@file_exists(MYBB_ROOT . "inc/class_templates.php")) { @(require_once MYBB_ROOT . "inc/class_templates.php"); $templates = new templates(); $template_exists = true; } } else { $template_exists = true; } if ($template_exists == true) { eval("\$warning = \"" . $templates->get("php_warnings") . "\";"); } } return $warning; }
/** * View all alerts. * * @param MyBB $mybb MyBB core object. * @param MyLanguage $lang Language object. * @param templates $templates Template manager. * @param array $theme Details about the current theme. */ function myalerts_view_alerts($mybb, $lang, $templates, $theme) { if (MybbStuff_MyAlerts_AlertManager::getInstance() === false) { myalerts_create_instances(); } $alerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getAlerts(0, 10); if (!isset($lang->myalerts)) { $lang->load('myalerts'); } add_breadcrumb($lang->myalerts_page_title, 'alerts.php?action=alerts'); require_once __DIR__ . '/inc/functions_user.php'; usercp_menu(); $numAlerts = MybbStuff_MyAlerts_AlertManager::getInstance()->getNumAlerts(); $page = (int) $mybb->input['page']; $pages = ceil($numAlerts / $mybb->settings['myalerts_perpage']); if ($page > $pages or $page <= 0) { $page = 1; } if ($page) { $start = ($page - 1) * $mybb->settings['myalerts_perpage']; } else { $start = 0; $page = 1; } $multipage = multipage($numAlerts, $mybb->settings['myalerts_perpage'], $page, "alerts.php"); $alertsList = MybbStuff_MyAlerts_AlertManager::getInstance()->getAlerts($start); $readAlerts = array(); if (is_array($alertsList) && !empty($alertsList)) { foreach ($alertsList as $alertObject) { $altbg = alt_trow(); $alert = parse_alert($alertObject); if ($alert['message']) { eval("\$alertsListing .= \"" . $templates->get('myalerts_alert_row') . "\";"); } $readAlerts[] = $alert['id']; } } else { $altbg = 'trow1'; eval("\$alertsListing = \"" . $templates->get('myalerts_alert_row_no_alerts') . "\";"); } MybbStuff_MyAlerts_AlertManager::getInstance()->markRead($readAlerts); global $headerinclude, $header, $footer, $usercpnav; $content = ''; eval("\$content = \"" . $templates->get('myalerts_page') . "\";"); output_page($content); }
/** * @return HTML * @param int(string) $section - ID страницы сайта, подразделы которой будут выводиться в списке или системное имя класса, объекты которого нужно вывести * @param string $templ_name - Шаблон оформления по которому будет строится список подразделов * @param int $max_count - Максимальное количество элементов в списке * @param string $order_by - Способ сортировки элементов списка. SQL-подобный синтаксис, например: "name DESC". * @param int $start_pos - Номер элемента по порядку с которого будет выводиться список. * @desc МАКРОС: Выводит список страниц из любого раздела сайта. */ public function objListByTags($section, $TEMPLATE = 'default', $max_count = 0, $order_by = 0, $start_pos = 0) { $list = ''; // Определяем источник данных: ID, имя класса, путь, объект ormPage $independent = $section instanceof ormPage ? false : true; $class_name = $class_frame = ''; if ($independent) { $info = ormPages::getSectionByPath($section); if ($info['section'] === false) { return ''; } if (!empty($info['class'])) { $class_name = $info['class']; } if ($info['section'] instanceof ormPage) { $section = $info['section']; if ($TEMPLATE == 'default' && $section->template2_id > 0) { $TEMPLATE = templates::get($section->template2_id)->getFile(); } } } // Если нужно, подгружаем файл шаблона if (!is_array($TEMPLATE)) { $templ_file = '/structure/objects/' . $TEMPLATE . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('structure.objListByTags', $templ_file); } } // Формируем выборку объектов $sel = new ormSelect($class_name); $sel->findInPages(); $sel->where('active', '=', 1); $sel->where('id', '<>', $section->id); $sel->where('tags', '=', $section->tags, 'OR'); // Сортировка списка $order_by = trim(empty($order_by) && $section instanceof ormPage ? $section->order_by : $order_by); if (!empty($order_by)) { $pos = strpos($order_by, ' '); if ($pos) { $parram = substr($order_by, $pos + 1); $order_by = substr($order_by, 0, $pos); } else { $parram = ''; } $sel->orderBy($order_by, $parram); } else { if ($section instanceof ormPage) { $sel->orderBy(position, asc); } } $class_list = $sel->getClassesList(); if (!empty($class_list)) { // Узнаем какие поля объектов будут участвовать в выборке $fields_str = ''; $fields = page::getFields('obj', $TEMPLATE, $class_list, $class_frame); if (isset($fields['obj'])) { while (list($key, $val) = each($fields['obj'])) { if ($val != 'url' && $val != 'class' && $val != 'num') { $fields_str .= empty($fields_str) ? $val : ', ' . $val; } } } $sel->fields($fields_str); // Количество элементов и постраничная навигация $max_count = empty($max_count) && $section instanceof ormPage ? $section->number_of_items : $max_count; if (!empty($max_count)) { if (isset($fields['funct']) && in_array('structure.navigation', $fields['funct'])) { $count_page = ceil($sel->getCount() / $max_count); page::assign('count_page', $count_page); if (system::getCurrentNavNum() != 0) { $niz = empty($start_pos) ? system::getCurrentNavNum() * $max_count - $max_count : $start_pos; $sel->limit($niz, $max_count); } else { $sel->limit($max_count); } } else { if (!empty($start_pos)) { $sel->limit($start_pos, $max_count); } else { $sel->limit($max_count); } } } // Формируем список while ($obj = $sel->getObject()) { // Парсим поля страницы if (isset($fields['obj_all'])) { reset($fields['obj_all']); while (list($num, $name) = each($fields['obj_all'])) { page::assign('obj.' . $name, $obj->__get($name)); } } $class = $obj->getClass()->getSName(); $num = $sel->getObjectNum() + 1; // $link = ($obj->other_link != '') ? $obj->other_link : $obj->url; $target = $obj->in_new_window ? ' target="_blank"' : ''; page::assign('obj.num', $num); page::assign('obj.target', $target); page::assign('obj.url', $obj->_url); page::assign('obj.class', $class); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); if ($obj->super) { page::assign('super', ' mainnews corners'); } else { page::assign('super', ''); } if ($num === 1) { page::assign('first_children_id', $obj->id); } page::assign('last_children_id', $obj->id); if (isset($TEMPLATE['list_' . $class])) { $templ = 'list_' . $class; } else { if (isset($TEMPLATE['list'])) { $templ = 'list'; } else { $templ = ''; } } $act = in_array($obj->id, ormPages::getActiveId()) && isset($TEMPLATE[$templ . '_active']) ? '_active' : ''; if (isset($TEMPLATE[$templ . $act])) { if ($num > 1 && isset($TEMPLATE['separator'])) { $list .= $TEMPLATE['separator']; } $list .= page::parse($TEMPLATE[$templ . $act]); } } } if ($independent) { if (!empty($list)) { page::assign('list', $list); if (isset($TEMPLATE['frame_list'])) { $list = page::parse($TEMPLATE['frame_list']); } else { $list = page::errorBlock('structure.objListByTags', $templ_file, 'frame_list'); } } else { if (isset($TEMPLATE['empty'])) { $list = page::parse($TEMPLATE['empty']); } } } return $list; }