| 
<?php/**
 * About
 *
 * You may not change or alter any portion of this comment or credits
 * of supporting developers from this source code or any supporting source code
 * which is considered copyrighted (c) material of the original comment or credit authors.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * @copyright      The XOOPS Co.Ltd. http://www.xoops.com.cn
 * @copyright      XOOPS Project (https://xoops.org)
 * @license        GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
 * @package        about
 * @since          1.0.0
 * @author         Mengjue Shao <[email protected]>
 * @author         Susheng Yang <[email protected]>
 */
 
 use XoopsModules\About\Constants;
 use XoopsModules\About\Utility;
 use XoopsModules\About\PageHandler;
 use XoopsModules\About\Helper;
 
 /** @var PageHandler $pageHandler */
 /** @var Helper $helper */
 
 require_once __DIR__ . '/header.php';
 
 $page_id = Xmf\Request::getInt('page_id', 0);
 //$page_id      = isset($_REQUEST['page_id']) ? $_REQUEST['page_id'] : '';
 //$pageHandler     = new About\PageHandler($db);
 
 $myts = \MyTextSanitizer::getInstance();
 
 // Menu
 $menu_criteria = new \CriteriaCompo();
 $menu_criteria->add(new \Criteria('page_status', Constants::PUBLISHED), 'AND');
 $menu_criteria->add(new \Criteria('page_menu_status', Constants::IN_MENU), 'AND');
 $menu_criteria->setSort('page_order');
 $menu_criteria->order = 'ASC';
 $fields               = [
 'page_id',
 'page_pid',
 'page_menu_title',
 'page_blank',
 'page_menu_status',
 'page_status',
 'page_text',
 ];
 
 $menu = $pageHandler->getAll($menu_criteria, $fields, false);
 foreach ($menu as $k => $v) {
 $page_text             = $myts->displayTarea(trim($v['page_text']), 1,1,1,1,1);
 $menu[$k]['page_text'] = false;
 if (preg_match('/^https?\:\/\//', $page_text)) {
 $menu[$k]['page_text'] = true;
 }
 //    $menu[$k]['page_text'] = trim($v['page_text']) === 'http://' ? true : false;
 }
 $page_menu = $pageHandler->menuTree($menu);
 
 // Display
 if (Constants::PAGE == $helper->getConfig('display', Constants::PAGE) || !empty($page_id)) {
 // Fun menu display
 $criteria = new \CriteriaCompo();
 if (!empty($page_id)) {
 $criteria->add(new \Criteria('page_id', $page_id));
 } else {
 $criteria->add(new \Criteria('page_index', Constants::DEFAULT_INDEX));
 }
 $criteria->add(new \Criteria('page_status', Constants::PUBLISHED));
 
 $criteria->setSort('page_order');
 $criteria->order = 'ASC';
 $page            = current($pageHandler->getObjects($criteria, null, false));
 if (!empty($page)) {
 $xoopsOption['xoops_pagetitle'] = htmlspecialchars($page['page_title'] . ' - ' . $helper->getModule()->name(), ENT_QUOTES | ENT_HTML5);
 $xoopsOption['template_main']   = Utility::getTemplate('page', $page['page_tpl']);
 } else {
 $xoopsOption['xoops_pagetitle'] = htmlspecialchars(_MD_ABOUT_INDEX . ' - ' . $helper->getModule()->name(), ENT_QUOTES | ENT_HTML5);
 $xoopsOption['template_main']   = Utility::getTemplate();
 }
 
 require_once XOOPS_ROOT_PATH . '/header.php';
 $GLOBALS['xoTheme']->addStylesheet("modules/{$moduleDirName}/assets/css/style.css");
 $GLOBALS['xoTheme']->addStylesheet("modules/{$moduleDirName}/assets/js/jquery-treeview/jquery.treeview.css");
 $GLOBALS['xoTheme']->addScript('browse.php?Frameworks/jquery/jquery.js');
 $GLOBALS['xoTheme']->addScript("modules/{$moduleDirName}/assets/js/jquery-treeview/jquery.treeview.js");
 
 if (!empty($page)) {
 //        $page['page_text'] = $myts->undoHtmlSpecialChars($page['page_text']);
 $page['page_text'] = $myts->undoHtmlSpecialChars($myts->displayTarea($page['page_text'], 1,1,1,1,1));
 if (Constants::PAGE_TYPE_LINK == $page['page_type']) {
 header('location: ' . $page['page_text']);
 }
 /** @var xos_opal_Theme $xoTheme */
 $xoTheme->addMeta('meta', 'description', htmlspecialchars($page['page_menu_title'], ENT_QUOTES | ENT_HTML5));
 $xoopsTpl->assign('pagemenu', $page_menu);
 $xoopsTpl->assign('page', $page);
 }
 } else {
 // List (Category) display
 $xoopsOption['xoops_pagetitle'] = $helper->getModule()->name();
 $xoopsOption['template_main']   = Utility::getTemplate('list');
 require_once XOOPS_ROOT_PATH . '/header.php';
 $GLOBALS['xoTheme']->addStylesheet("modules/{$moduleDirName}/assets/css/style.css");
 
 $criteria = new \CriteriaCompo();
 $criteria->add(new \Criteria('page_status', Constants::PUBLISHED));
 $criteria->setSort('page_order');
 $criteria->order = 'ASC';
 $list            = $pageHandler->getAll($criteria, null, false);
 foreach ($list as $k => $v) {
 $text                      = strip_tags($myts->undoHtmlSpecialChars($myts->displayTarea($v['page_text'], 1,1,1,1,1)));
 $list[$k]['page_text']     = xoops_substr($text, 0, $helper->getConfig('str_ereg', Constants::DEFAULT_EREG));
 $list[$k]['page_pushtime'] = formatTimestamp($v['page_pushtime'], _SHORTDATESTRING);
 }
 $xoopsTpl->assign('list', $list);
 }
 
 // get breadcrumb
 $tree_open = [];
 if (!empty($bread)) {
 $bread = array_reverse($pageHandler->getBread($menu, $page_id), true);
 foreach ($bread as $k => $v) {
 if ($k != $page_id) {
 $xoBreadcrumbs[] = ['title' => $v, 'link' => $helper->url("index.php?page_id={$k}")];
 } else {
 $xoBreadcrumbs[] = ['title' => $v];
 }
 $tree_open[$k] = $k;
 }
 $xoopsTpl->assign('tree_open', $tree_open);
 }
 $xoopsTpl->assign('page_id', $page_id);
 
 require_once __DIR__ . '/footer.php';
 
 |