예제 #1
0
 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;
 }
예제 #3
0
/**
 * 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);
}
예제 #4
0
 /**
 * @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;
 }