/** * Constructor JavaScript * @param string $code_javascript * @param boolean $add_js_to_page [default value: false] */ function __construct($code_javascript, $add_js_to_page = false) { parent::__construct(); if (!isset($code_javascript)) { throw new NewException("1 argument for " . get_class($this) . "::__construct() is mandatory", 0, getDebugBacktrace(1)); } $this->code_javascript = $code_javascript; $this->is_javascript_object = true; if ($add_js_to_page) { $page_object = Page::getInstance($_GET['p']); if (gettype($code_javascript) != "object") { // search in javascript if begin by $(document).ready( // then put javascript to the end (for AJAX because doc is already loaded) $tmp_code_javascript = trim(str_replace("\t", "", $code_javascript)); $pos_doc_ready = find($tmp_code_javascript, "\$(document).ready(", 1); $pos_jquery_ready = find($tmp_code_javascript, "jQuery(document).ready(", 1); if ($pos_doc_ready >= 18 && $pos_doc_ready <= 30 || $pos_jquery_ready >= 23 && $pos_jquery_ready <= 35) { // 30|35: beacause of tag //<![CDATA[ $page_object->addObject($this, false, true); } else { $page_object->addObject($this); } } else { $page_object->addObject($this); } } }
public function getValues($keys = null, $format = null, $maxDepth = null) { $ret = parent::getValues($keys, $format, $maxDepth); $ret['navigation'] = Xoops_Locale::translate('L_RELATED_NAVIGATION_OPTION' . $this->getVar('related_navigation'), 'page'); $ret['related_links'] = Page::getInstance()->getLinkHandler()->getLinks($this->getVar('related_id')); return $ret; }
function page_blocks_edit($options) { $block_form = new Xoops\Form\BlockForm(); if ($options[0] != 'id') { $mode_form = new Xoops\Form\Select(PageLocale::CONF_BLOCK_MODE, 'options[0]', $options[0], 1, false); $mode_form->addOption('content', PageLocale::CONF_BLOCK_L_CONTENT); $mode_form->addOption('list', PageLocale::CONF_BLOCK_L_LIST); $block_form->addElement($mode_form); $order_form = new Xoops\Form\Select(PageLocale::CONF_BLOCK_ORDER, 'options[1]', $options[1], 1, false); $order_form->addOption('create', PageLocale::CONF_BLOCK_L_RECENT); $order_form->addOption('hits', PageLocale::CONF_BLOCK_L_HITS); $order_form->addOption('rating', PageLocale::CONF_BLOCK_L_RATING); $order_form->addOption('random', PageLocale::CONF_BLOCK_L_RANDOM); $block_form->addElement($order_form); $sort_form = new Xoops\Form\Select(PageLocale::CONF_BLOCK_SORT, 'options[2]', $options[2], 1, false); $sort_form->addOption('ASC', PageLocale::CONF_BLOCK_L_ASC); $sort_form->addOption('DESC', PageLocale::CONF_BLOCK_L_DESC); $block_form->addElement($sort_form); $block_form->addElement(new Xoops\Form\Text(PageLocale::CONF_BLOCK_DISPLAY_NUMBER, 'options[3]', 1, 2, $options[3]), true); $block_form->addElement(new Xoops\Form\RadioYesNo(PageLocale::CONF_BLOCK_ALL_CONTENT, 'options[4]', $options[4])); } else { $block_form->addElement(new Xoops\Form\Hidden('options[0]', $options[0])); $content = Page::getInstance()->getContentHandler()->getPageTitle(1); $select_form = new Xoops\Form\Select(PageLocale::CONF_BLOCK_CONTENTDISPLAY, 'options[1]', $options[1], 1, false); foreach ($content as $value) { $select_form->addOption($value['content_id'], $value['content_title']); } $block_form->addElement($select_form); } return $block_form->render(); }
public function __construct() { $this->_page = Page::getInstance(); $this->_resource = Resource::getInstance(); $this->_lang = Lang::lang(); $this->_db = static::$_defaultDb; $this->_configMain = Registry::get('main', 'config'); }
/** * 页面展示 * @param [type] $html_file [description] * @param array $data [description] * @param integer $http_code [description] * @return [type] [description] */ public static function view($html_file = "", $data = [], $http_code = 200) { http_response_code($http_code); if (empty($html_file)) { return true; } $page = Page::getInstance(); $page->parse($html_file, $data); return $page->outPut(); }
/** * @param PagePage_related|XoopsObject $obj */ public function __construct(PagePage_related $obj) { $helper = Page::getInstance(); $xoops = $helper->xoops(); $xoops->theme()->addScript('modules/page/media/jquery/multi-select.0.3-7/js/jquery.multi-select.js'); $xoops->theme()->addScript('modules/page/media/jquery/multi-select-init.js'); $xoops->theme()->addStylesheet('modules/page/media/jquery/multi-select.0.3-7/css/multi-select.css'); // Get handler $content_Handler = $helper->getContentHandler(); $link_Handler = $helper->getLinkHandler(); $title = $obj->isNew() ? PageLocale::A_ADD_RELATED : PageLocale::A_EDIT_RELATED; parent::__construct($title, 'form', 'related.php', 'post', true); //name $this->addElement(new Xoops\Form\Text(PageLocale::RELATED_NAME, 'related_name', 4, 255, $obj->getVar('related_name'), ''), true); //menu $menu = new Xoops\Form\RadioYesNo(PageLocale::RELATED_MENU, 'related_domenu', $obj->getVar('related_domenu')); $menu->setDescription(PageLocale::RELATED_MENU_DSC); $this->addElement($menu, false); //navigation $navigation = new Xoops\Form\Select(PageLocale::RELATED_NAVIGATION, 'related_navigation', $obj->getVar('related_navigation'), 1, false); $navigation->addOption(1, PageLocale::L_RELATED_NAVIGATION_OPTION1); $navigation->addOption(2, PageLocale::L_RELATED_NAVIGATION_OPTION2); $navigation->addOption(3, PageLocale::L_RELATED_NAVIGATION_OPTION3); $navigation->addOption(4, PageLocale::L_RELATED_NAVIGATION_OPTION4); $navigation->addOption(5, PageLocale::L_RELATED_NAVIGATION_OPTION5); $navigation->setClass('span3'); $this->addElement($navigation); $related_links = $link_Handler->getContentByRelated($obj->getVar('related_id')); $contents_used = $link_Handler->getContentUsed(); $contents = $content_Handler->getPageTitle(1); $related_links_form = new Xoops\Form\Select(PageLocale::RELATED_MAIN, 'datas', $related_links, $size = 20, $multiple = true); foreach ($contents as $k => $content) { if (!in_array($content['content_id'], $contents_used) || in_array($content['content_id'], $related_links)) { $related_links_form->addOption($content['content_id'], $content['content_title']); } } $this->addElement($related_links_form, true); $this->addElement(new Xoops\Form\Hidden('related_id', $obj->getVar('related_id'))); /** * Buttons */ $buttonTray = new Xoops\Form\ElementTray('', ''); $buttonTray->addElement(new Xoops\Form\Hidden('op', 'save')); $buttonSubmit = new Xoops\Form\Button('', 'submit', XoopsLocale::A_SUBMIT, 'submit'); $buttonSubmit->setClass('btn btn-success'); $buttonTray->addElement($buttonSubmit); $buttonReset = new Xoops\Form\Button('', 'reset', XoopsLocale::A_RESET, 'reset'); $buttonReset->setClass('btn btn-warning'); $buttonTray->addElement($buttonReset); $buttonCancel = new Xoops\Form\Button('', 'cancel', XoopsLocale::A_CANCEL, 'button'); $buttonCancel->setExtra("onclick='javascript:history.go(-1);'"); $buttonCancel->setClass('btn btn-danger'); $buttonTray->addElement($buttonCancel); $this->addElement($buttonTray); }
/** * (non-PHPdoc) * @see Block_Abstract::render() */ public function render() { $this->_collectData(); $tpl = new Template(); $tpl->setData(array('config' => $this->_config, 'place' => $this->_config['place'], 'menuData' => $this->_data)); if (static::dependsOnPage) { $tpl->set('page', Page::getInstance()); $tpl->set('pagesTree', Model::factory('Page')->getTree()); } return $tpl->render(Application::getTemplatesPath() . $this->_template); }
/** * ignoreリストを構築する。 */ protected function makeignorelist() { $this->ignorelist = array(); $page = Page::getInstance(self::ignorelistpage); $lines = explode("\n", $page->getsource()); foreach ($lines as $str) { if (mb_ereg('^-\\[\\[(.+)\\]\\]', $str, $m)) { $this->ignorelist[] = $m[1]; } } }
/** * retrieve list of search results * * @return string HTML list of search results */ function Search_showResults() { global $PLUGINS; // { variables global $PAGEDATA; $start = (int) @$_REQUEST['start']; $search = @$_REQUEST['search']; if (!$search) { return '<em id="searchResultsTitle">no search text entered</em>'; } $c = ''; // } // { pages $q = dbAll('select * from pages where (name like "%' . $search . '%" or body like "%' . $search . '%") order by edate desc limit ' . $start . ',20'); $n = count($q); if ($n > 0) { foreach ($q as $p) { Page::getInstance($p['id'], $p); } $q = array_slice($q, $start, 20); $c .= '<h2>Page Search Results</h2><em id="searchResultsTitle">'; if ($n == 1) { $c .= '1 result found'; } else { $c .= $n . ' results found'; } $c .= '</em> <div>'; if ($start > 0) { $c .= '[<a href="' . $PAGEDATA->getRelativeURL() . '?search=' . urlencode($search) . '&start=' . ($start - 20) . '">previous 20</a>] '; } if ($start + 20 < $n) { $c .= '[<a href="' . $PAGEDATA->getRelativeURL() . '?search=' . urlencode($search) . '&start=' . ($start + 20) . '">next 20</a>] '; } $c .= '<ol start="' . ($start + 1) . '" id="searchResults">'; foreach ($q as $r) { $title = $r['title'] == '' ? $r['name'] : $r['title']; $c .= '<li><h4>' . htmlspecialchars($title) . '</h4>' . '<p>' . substr(preg_replace('/<[^>]*>/', '', $r['body']), 0, 200) . '...<br /><a href="/' . urlencode($r['name']) . '?search=' . $search . '">/' . htmlspecialchars($r['name']) . '</a></p></li>'; } $c .= '</ol></div>'; } // } // { others foreach ($PLUGINS as $plugin) { if (@$plugin['search']) { $c .= $plugin['search'](); } } // } if (!$c) { return '<em id="searchResultsTitle">' . __('no results found', 'core') . '</em>'; } return $c; }
protected function _routeModule() { $vers = Request::get('vers', 'int', false); $showRevision = false; $pageCode = $this->_request->getPart(0); if (!strlen($pageCode)) { $pageCode = 'index'; } $pageData = Model::factory('Page')->getCachedItemByField('code', $pageCode); if (empty($pageData)) { Response::redirect('/'); } $cacheManager = new Cache_Manager(); $cache = $cacheManager->get('data'); $blockManager = false; if ($vers) { $user = User::getInstance(); if ($user->isAuthorized() && $user->isAdmin()) { $pageData = array_merge($pageData, Model::factory('Vc')->getData('page', $pageData['id'], $vers)); $showRevision = true; } else { $vers = false; } } if (!$vers && $cache) { Blockmanager::setDefaultCache($cache); } if ($pageData['published'] == false && !$showRevision) { Response::redirect('/'); } $page = Page::getInstance(); foreach ($pageData as $k => $v) { $page->{$k} = $v; } /** * Check if controller attached */ if (strlen($page->func_code)) { $fModules = Config::factory(Config::File_Array, $this->_appConfig->get('frontend_modules')); if ($fModules->offsetExists($page->func_code)) { $controllerConfig = $fModules->get($page->func_code); $this->runController($controllerConfig['class'], $this->_request->getPart(1)); } } if (!$vers && $cache) { Blockmanager::setDefaultCache($cache); } $blockManager = new Blockmanager(); if ($page->show_blocks) { $blockManager->init($page->id, $page->default_blocks, $vers); } $this->showPage($page, $blockManager); }
/** * Used to populate backend * * @param int $limit : Number of item for backend * Expects an array containing: * title : Title for the backend items * link : Link for the backend items * content : content for the backend items * date : Date of the backend items * * @return array */ public function backend($limit) { $ret = array(); $contents = Page::getInstance()->getContentHandler()->getPagePublished(0, $limit); foreach ($contents as $k => $content) { $ret[$k]['title'] = $content->getVar('content_title'); $ret[$k]['link'] = Page::getInstance()->url('viewpage.php') . '?id=' . $content->getVar('content_id'); $ret[$k]['content'] = $content->getVar('content_shorttext') . '<br />' . $content->getVar('content_text'); $ret[$k]['date'] = $content->getVar('content_create'); } return $ret; }
/** * get list of pages that have a common parent * * @param string $constraint the SQL constraint to use * @param boolean $filter whether to only show "published" pages * * @return object the Pages object */ function __construct($constraint, $filter = true) { global $isadmin; $filter = $isadmin || !$filter ? '' : ' && !(special&2)'; $rs = dbAll("select * from pages where {$constraint} {$filter} " . "order by special&2,ord,name"); if (!count($rs)) { $rs = array(); } foreach ($rs as $r) { $this->pages[] = Page::getInstance($r['id'], $r); } Pages::$instancesByParent[$constraint] =& $this; }
public function hasVoted($content_id) { $helper = Page::getInstance(); $uid = $helper->getUserId(); $ip = $helper->xoops()->getenv('REMOTE_ADDR'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('rating_content_id', $content_id)); $criteria2 = new CriteriaCompo(); $criteria2->add(new Criteria('rating_uid', $uid), 'OR'); $criteria2->add(new Criteria('rating_ip', $ip), 'OR'); $criteria->add($criteria2, 'AND'); return parent::getCount($criteria); }
function do_url() { if (empty(Vars::$get['page']) || empty(Vars::$get['file'])) { exit; } if (!mb_ereg('\\.(.+?)$', Vars::$get['file'], $m) || empty(self::$type[$m[1]])) { exit; } $file = AttachedFile::getInstance(Vars::$get['file'], Page::getInstance(Vars::$get['page'])); header('Content-Type: ' . self::$type[$m[1]]); header('Content-Length: ' . $file->getsize()); echo $file->getdata(); exit; }
/** * send a random code to an email address to verify it * * @ return array saying it happened */ function Forms_verificationSend() { if (!isset($_REQUEST['email'])) { return array('error' => 'no email parameter'); } $email = $_REQUEST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return array('error' => 'invalid email address'); } if (!isset($_SESSION['emails'])) { $_SESSION['emails'] = array(); } if (!isset($_SESSION['emails'][$email])) { $pid = (int) @$_REQUEST['page']; if ($pid) { $page = Page::getInstance($pid); if (!$page) { return array('error' => 'page not found'); } $page->initValues(); $prevent = (int) @$page->vars['forms_preventUserFromSubmitting']; if ($prevent) { $id = (int) dbOne('select id from user_accounts where email="' . addslashes($email) . '"', 'id'); if ($id) { if ($prevent == 1) { // don't allow any users to submit return array('error' => $page->vars['forms_preventUserFromSubmittingMessage']); } if ($prevent < 4) { // parse conditions $user = User::getInstance($id); if ($user) { $cond_val = $page->vars['forms_preventUserFromSubmittingCondVal']; $cond_key = $page->vars['forms_preventUserFromSubmittingCondKey']; if ($prevent == 3 && $user->get($cond_key) == $cond_val || $prevent == 2 && $user->get($cond_key) != $cond_val) { return array('error' => $page->vars['forms_preventUserFromSubmittingMessage']); } } } } } } $_SESSION['emails'][$email] = rand(10000, 99999); } mail($email, '[' . $_SERVER['HTTP_HOST'] . '] email verification code', 'The verification code for this email address is: ' . $_SESSION['emails'][$email]); return array('ok' => 1); }
/** * retrieve HTML summary for a set page * * @param int $id ID of the page * * @return string HTML summary for a set page */ function PageSummaries_getHtml($id) { $PAGEDATA = Page::getInstance($id); global $sitedomain; $r = dbRow('select * from page_summaries where page_id="' . $PAGEDATA->id . '"'); if (!count($r)) { return '<em>This page is marked as a page summary, but there is no ' . 'information on how to handle it.</em>'; } if ($r['rss']) { return PageSummaries_rssToHtml($r['rss']); } // { build rss $title = $PAGEDATA->title == '' ? $sitedomain : htmlspecialchars($PAGEDATA->title); $rss = '<' . '?xml version="1.0" ?' . '><rss version="2.0"><channel><title>' . $title . '</title>'; $rss .= '<link>' . $_SERVER['REQUEST_URI'] . '</link><description>RSS for ' . $PAGEDATA->name . '</description>'; $category = $PAGEDATA->category ? ' and category="' . $PAGEDATA->category . '"' : ''; $containedpages = PageSummaries_getContainedPages($r['parent_id']); if (count($containedpages)) { $q2 = dbAll('select edate,name,title,body from pages where id in (' . join(',', $containedpages) . ')' . $category . ' order by cdate desc limit 20'); foreach ($q2 as $r2) { $rss .= '<item>'; if (!$r2['title']) { $r2['title'] = $r2['name']; } $rss .= '<title>' . htmlspecialchars($r2['title']) . '</title>'; $rss .= '<pubDate>' . date_m2h($r2['edate']) . '</pubDate>'; // { build body if ($r['amount_to_show'] == 0 || $r['amount_to_show'] == 1) { $length = $r['amount_to_show'] == 0 ? 300 : 600; $body = str_replace(' ', ' ', preg_replace('/<[^>]*>/', ' ', str_replace(array('&', ' ', '‘'), array('&', ' ', '''), $r2['body']))); $body = substr($body, 0, $length) . '...'; } else { $body = $r2['body']; } $body = str_replace('€', '€', $body); // } $rss .= '<description>' . $body . '</description>'; $rss .= '<link>http://' . $_SERVER['HTTP_HOST'] . '/' . urlencode(str_replace(' ', '-', $r2['name'])) . '</link>'; $rss .= '</item>'; } } $rss .= '</channel></rss>'; dbQuery('update page_summaries set rss="' . addslashes($rss) . '" where page_id="' . $PAGEDATA->id . '"'); // } return PageSummaries_rssToHtml($rss); }
/** * add a comment to a blog entry * * @return array entry status */ function Blog_commentAdd() { $ret = array(); $bid = (int) $_REQUEST['blog_entry_id']; $pid = (int) $_REQUEST['page_id']; $page = Page::getInstance($pid); if (!$page->name) { $ret['error'] = 'Invalid page id.'; return $ret; } $entry = dbRow('select * from blog_entry where id=' . $bid . ' and status>0 and allow_comments'); if (!$entry) { $ret['error'] = 'Entry does not exist, is not yet public,' . ' or does not allow comments.'; return $ret; } $name = $_REQUEST['name']; $email = $_REQUEST['email']; $url = $_REQUEST['url']; $comment = $_REQUEST['comment']; $status = 0; $uid = 0; if (isset($_SESSION['userdata']['id'])) { $name = $_SESSION['userdata']['name']; $email = $_SESSION['userdata']['email']; $status = 1; $uid = $_SESSION['userdata']['id']; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $ret['error'] = 'Invalid email address'; return $ret; } if ($url && !filter_var($url, FILTER_VALIDATE_URL)) { $ret['error'] = 'Invalid URL'; return $ret; } $verification = ''; if (!$status && $entry['allow_comments'] == 1) { $verification = md5(time() . rand()); } dbQuery('insert into blog_comment set user_id=' . $uid . ', name="' . addslashes($name) . '"' . ', url="' . addslashes($url) . '"' . ', email="' . addslashes($email) . '"' . ', comment="' . addslashes($comment) . '"' . ', cdate=now(), blog_entry_id=' . $bid . ', status=' . $status . ', verification="' . $verification . '"'); if (!$status && $entry['allow_comments'] == 1) { Core_mail($email, '[' . $_SERVER['HTTP_HOST'] . '] comment verification', 'A comment was posted on our website claiming to be from your email' . " address.\n\nIf it was not you, then please ignore this email.\n\n" . "To verify the comment, please click the following link:\n" . 'http://' . $_SERVER['HTP_HOST'] . '/a/p=blog/f=commentVerify/md5=' . $verification); $ret['message'] = 'Please check your email for a verification code'; } return $ret; }
function News_getHeadlinesMonth() { $y = (int) $_REQUEST['y']; $m = (int) $_REQUEST['m']; $p = (int) $_REQUEST['pid']; if ($y < 1000 || $y > 9999 || $m < 1 || $m > 12) { Core_quit(); } $m = sprintf('%02d', $m); $sql = 'select id from pages where parent=' . $p . ' and associated_date>"' . $y . '-' . $m . '-00" and associated_date<date_add("' . $y . '-' . $m . '-01", interval 1 month) order by associated_date'; $ps = dbAll($sql); $headlines = array(); foreach ($ps as $p) { $page = Page::getInstance($p['id']); $headlines[] = array('url' => $page->getRelativeURL(), 'adate' => $page->associated_date, 'headline' => htmlspecialchars($page->alias)); } return $headlines; }
/** * switches the reader to a translation if one exists * * @param object $PAGEDATA page object * * @return void */ function Translate_checkCurrentPage($PAGEDATA) { // { if this is a translation page, and no language is selected, select this one. if ($PAGEDATA->type == 'translate' && !isset($_SESSION['translate-lang'])) { $_SESSION['translate-lang'] = $PAGEDATA->vars['translate_language']; } // } // { if no language is selected, then return if (!isset($_SESSION['translate-lang']) || !$_SESSION['translate-lang']) { return; } // } // { various checks if this page is a translation one $page_to_translate = $PAGEDATA->id; if ($PAGEDATA->type == 'translate') { // { if this page's language is the selected one, return if ($PAGEDATA->vars['translate_language'] == $_SESSION['translate-lang']) { return; } // } $page_to_translate = (int) $PAGEDATA->vars['translate_page_id']; } $trs = dbAll('select page_id from page_vars where name="translate_page_id" and value=' . $page_to_translate, false, 'page_vars'); // { try to find a version of the current page in the selected language if ($trs === false || !count($trs)) { return; } $ids = array(); foreach ($trs as $tr) { $ids[] = $tr['page_id']; } $page_id = dbOne('select page_id from page_vars where name="translate_language" and value="' . addslashes($_SESSION['translate-lang']) . '" limit 1', 'page_id'); // { if none found, return if ($page_id === false) { return; } // } $page = Page::getInstance($page_id); if ($page->id) { redirect($page->getRelativeUrl()); } // } }
/** * show the news in Headline mode * * @param array $PAGEDATA the page object * * @return string HTML of the news */ function News_displayHeadlines($PAGEDATA) { $items_per_page = isset($PAGEDATA->vars['news_items']) ? $PAGEDATA->vars['news_items'] : 5; $p = isset($_REQUEST['news_page']) ? (int) $_REQUEST['news_page'] : 0; if ($p < 0) { $p = 0; } $arr = Core_cacheLoad('pages', 'news-' . $GLOBALS['id'] . '-' . $p . '-' . $items_per_page); if ($arr === false) { $order_by = isset($PAGEDATA->vars['news_order']) ? addslashes($PAGEDATA->vars['news_order']) : 'associated_date desc'; $rs = dbAll('select * from pages where parent=' . $GLOBALS['id'] . ' order by ' . $order_by . ',cdate desc limit ' . $p . ',' . $items_per_page); $num_stories = dbOne('select count(id) as num from pages where parent=' . $GLOBALS['id'], 'num'); Core_cacheSave('pages', 'news-' . $GLOBALS['id'] . '-' . $p . '-' . $items_per_page, array($num_stories, $rs)); } else { $num_stories = $arr[0]; $rs = $arr[1]; unset($arr); } $nextprev = array(); $nextprev[] = '<span class="page_n_of_n">' . __('page %1 of %2', array(1 + floor($p / $items_per_page), ceil($num_stories / $items_per_page)), 'core') . '</span>'; if ($p) { $nextprev[] = '<a class="prev" href="?news_page=' . ($p - $items_per_page) . '">' . __('Previous Page') . '</a>'; } if ($p + $items_per_page < $num_stories) { $nextprev[] = '<a class="next" href="?news_page=' . ($p + $items_per_page) . '">' . __('Next Page') . '</a>'; } $nextprev = '<div class="nextprev">' . join(' | ', $nextprev) . '</div>'; $html = $nextprev; $links = array(); foreach ($rs as $r) { $page = Page::getInstance($r['id'], $r); $content = isset($PAGEDATA->vars['news_display']) && $PAGEDATA->vars['news_display'] == 'full' ? $page->render() : substr(preg_replace('/<[^>]*>/', '', preg_replace('#<h1>[^<]*</h1>#', '', $page->render())), 0, 600); $date = isset($PAGEDATA->vars['news_title']) && $PAGEDATA->vars['news_title'] == 'yes' ? '<h2 class="news-header"><a href="' . $page->getRelativeURL() . '">' . htmlspecialchars($page->name) . '</a></h2>' . '<a class="news-date" href="' . $page->getRelativeURL() . '">' . __('posted on %1', array(Core_dateM2H($page->associated_date)), 'core') . '</a>' : ''; if (!isset($page->associated_date) || !$page->associated_date) { $page->associated_date = $page->cdate; } $links[] = $date . '<p class="news-paragraph">' . $content . '...</p>'; } $html .= join('<div class="news-break"></div>', $links); $html .= $nextprev; return $html; }
static function precache($ids) { if (count($ids)) { $rs3 = dbAll('select * from pages where id in (' . join(',', $ids) . ')'); $pvars = dbAll('select * from page_vars where page_id in (' . join(',', $ids) . ')'); $rs2 = array(); foreach ($pvars as $p) { if (!isset($rs2[$p['page_id']])) { $rs2[$p['page_id']] = array(); } $rs2[$p['page_id']][] = $p; } foreach ($rs3 as $r) { if (isset($rs2[$r['id']])) { Page::getInstance($r['id'], $r, $rs2[$r['id']]); } else { Page::getInstance($r['id'], $r); } } } }
public static function view($tpl_folder, $tpl_file, $display = true) { global $_LANG; if ($tpl_folder == 'admin') { $tpl_folder = PATH . '/app/components/' . self::$component . '/backend/views'; } else { $is_exists_tpl_file = file_exists(TEMPLATE_DIR . $tpl_folder . '/' . $tpl_file); $tpl_folder = $is_exists_tpl_file ? TEMPLATE_DIR . $tpl_folder : DEFAULT_TEMPLATE_DIR . $tpl_folder; } $fenom = new RenderTemplate(new Fenom\Provider($tpl_folder)); $fenom->setCompileDir(PATH . '/cache'); $fenom->setCompileId(TEMPLATE . '_'); $fenom->setOptions(array('strip' => true, 'auto_reload' => true)); $fenom->addPluginsDir(__DIR__ . '/plugins/')->addPluginsDir(PATH . '/core/tpl_classes/plugins/fenom'); $fenom->assignAll(['LANG' => $_LANG, 'is_ajax' => \Core::isAjax(), 'is_admin' => \User::getInstance()->is_admin, 'is_user' => \User::getInstance()->id, 'component' => \Core::getInstance()->component, 'do' => \Core::getInstance()->do, 'seo_link' => \Core::request('seolink', 'str', ''), 'site_cfg' => \Config::getInstance()->getConfig(), 'component_already' => \Page::getInstance()->page_body ? true : false, 'template' => TEMPLATE, 'template_dir' => trim(TEMPLATE_DIR, '/')]); if ($display) { $fenom->display($tpl_file, self::$tpl_vars); } else { return $fenom->fetch($tpl_file, self::$tpl_vars); } }
public function updatePerms($content_id, $groups = array()) { $module_id = Page::getInstance()->getModule()->getVar('mid'); $groups_exists = parent::getGroupIds('page_view_item', $content_id, $module_id); $groups_exists = array_values($groups_exists); $groups_delete = array_diff(array_values($groups_exists), $groups); $groups_add = array_diff($groups, array_values($groups_exists)); // delete if (count($groups_delete) != 0) { $criteria = $criteria = new CriteriaCompo(); $criteria->add(new Criteria('gperm_itemid', $content_id)); $criteria->add(new Criteria('gperm_modid', $module_id)); $criteria->add(new Criteria('gperm_name', 'page_view_item', '=')); $criteria->add(new Criteria('gperm_groupid', '(' . implode(', ', $groups_delete) . ')', 'IN')); if (parent::deleteAll($criteria)) { } } // Add if (count($groups_add) != 0) { foreach ($groups_add as $group_id) { parent::addRight('page_view_item', $content_id, $group_id, $module_id); } } }
public function __construct() { $this->_page = Page::getInstance(); $this->_resource = Resource::getInstance(); $this->_module = $this->getModule(); $this->_lang = Lang::lang(); $this->_db = static::$_defaultDb; $this->_configMain = Registry::get('main', 'config'); $cacheManager = new Cache_Manager(); $this->_configBackoffice = Config::factory(Config::File_Array, $this->_configMain->get('configs') . 'backend.php'); $this->_cache = $cacheManager->get('data'); if (Request::get('logout', 'boolean', false)) { User::getInstance()->logout(); session_destroy(); if (!Request::isAjax()) { Response::redirect(Request::url(array('index'))); } } $this->checkAuth(); if ($this->_configBackoffice->get('use_csrf_token')) { $csrf = new Security_Csrf(); $this->_page->csrfToken = $csrf->createToken(); } }
function Menu_show($b) { global $PAGEDATA; if (!$PAGEDATA->id) { return ''; } $md5 = md5('ww_menudisplay|' . print_r($b, true)); $cache = cache_load('menus', $md5); if ($cache) { return $cache; } if (is_array($b)) { $align = isset($b['direction']) && $b['direction'] == 'vertical' ? 'Left' : 'Top'; $vals = $b; } else { $arr = explode('|', $b); $b = $arr[0]; $vals = array(); if (count($arr) > 1) { $d = split(',', $arr[1]); } else { $d = array(); } foreach ($d as $e) { $f = split('=', $e); if (count($f) > 1) { $vals[$f[0]] = $f[1]; } else { $vals[$f[0]] = 1; } } $c = ''; $align = $b == 'vertical' ? 'Left' : 'Top'; } $parent = 0; $classes = ''; if (isset($vals['mode'])) { if ($vals['mode'] == 'accordian' || $vals['mode'] == 'accordion') { $classes .= ' click_required accordion'; } else { if ($vals['mode'] == 'two-tier') { $classes .= ' two-tier'; } } } else { $vals['mode'] = 'default'; } if (isset($vals['preopen_menu'])) { $classes .= ' preopen_menu'; } if (isset($vals['close']) && $vals['close'] == 'no') { $classes .= ' noclose'; } if (isset($vals['parent'])) { $r = Page::getInstanceByName($vals['parent']); if ($r) { $parent = $r->id; } } if (isset($vals['spans'])) { $vals['spans'] = (int) $vals['spans']; } else { $vals['spans'] = 1; } $search_options = 0; $ajaxmenu = $vals['nodropdowns'] ? '' : ' ajaxmenu '; $c = '<div id="ajaxmenu' . $parent . '" class="menuBar' . $align . $ajaxmenu . $classes . ' parent' . $parent . '">'; $rs = Menu_getChildren($parent, $PAGEDATA->id, 0, $parent, $search_options); $links = 0; if ($vals['spans']) { $spanl = '<span class="l"></span>'; $spanr = '<span class="r"></span>'; } else { $spanl = ''; $spanr = ''; } if (count($rs)) { foreach ($rs as $r) { $page = Page::getInstance($r['id']); if (!$links) { $r['classes'] .= ' first'; } $c .= '<a id="ajaxmenu_link' . $r['id'] . '" class="' . $r['classes'] . '" href="' . $page->getRelativeURL() . '">' . $spanl . htmlspecialchars($page->name) . $spanr . '</a>'; $links++; } } if (!@$GLOBALS['DBVARS']['disable-hidden-sitemap']) { $c .= '<a class="menuItemTop nojs" href="' . $PAGEDATA->getRelativeURL() . '?webmespecial=sitemap">' . __('Site Map') . '</a>'; } $c .= '</div>'; if ($vals['mode'] == 'two-tier') { $pid = $PAGEDATA->getTopParentId(); if ($pid != 2 && $pid != 3 && $pid != 17 && $pid != 32 && $pid != 33 && $pid != 34) { $pid = 2; } $rs = Menu_getChildren($pid, $PAGEDATA->id, 0, $parent, $search_options); $c .= '<div id="ajaxmenu' . $pid . '" class="menu tier-two">'; if (count($rs)) { foreach ($rs as $r) { $page = Page::getInstance($r['id']); $c .= '<a id="ajaxmenu_link' . $r['id'] . '" class="' . $r['classes'] . '" href="' . $page->getRelativeURL() . '">' . $spanl . htmlspecialchars($page->name) . $spanr . '</a>'; } } else { $c .= '<a><span class="l"></span> <span class="r"></span></a>'; } $c .= '</div>'; } cache_save('menus', $md5, $c); return $c; }
<?php require_once "../src/Page.php"; try { $page = Page::getInstance(); $page->addHead("<meta charset=\"utf-8\">"); $page->setTitle("title"); $page->setHeader("header<br>"); $page->setContent("content<br>"); $page->setFooter("footer"); print $page->render(); } catch (Exception $e) { echo $e->getMessage(); }
} else { // Create current page object $page_object = Page::getInstance($_GET['p']); if (!$page_object->userHaveRights()) { if ($_GET['mime'] == "text/html") { $user_no_rights_redirect = $page_object->getUserNoRightsRedirect(); if ($user_no_rights_redirect != "") { if (strtoupper(substr($user_no_rights_redirect, 0, 7)) != "HTTP://" && strtoupper(substr($user_no_rights_redirect, 0, 8)) != "HTTPS://") { $user_no_rights_redirect = BASE_URL . $user_no_rights_redirect; } header('HTTP/1.1 301 Moved Temporarily'); header('Status: 301 Moved Temporarily'); header("Location:" . $user_no_rights_redirect); exit; } $page_object = Page::getInstance("error-user-rights"); } else { header('HTTP/1.1 500 Internal Server Error'); echo 'You have no rights on the page ' . $_GET['p']; exit; } } $call_load_method = false; if (CACHING_ALL_PAGES && substr($_GET['p'], 0, 6) != "error-") { if (!$page_object->setCache()) { $call_load_method = true; } } else { $call_load_method = true; } if ($call_load_method) {
<?php /** * generate a sitemap, as defined here: http://sitemaps.org/ * * PHP version 5.2 * * @category None * @package None * @author Kae Verens <*****@*****.**> * @license GPL 2.0 * @link http://kvsites.ie/ */ require_once 'basics.php'; header('Content-type: text/xml; charset=utf-8'); echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; $rs = dbAll('select id,edate,importance,name from pages where importance>0 ' . '&& !(special&2) order by importance desc'); foreach ($rs as $r) { $page = Page::getInstance($r['id'])->initValues(); $https = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; echo '<url><loc>' . $https . '://' . $_SERVER['HTTP_HOST'] . $page->getRelativeUrl() . '</loc>' . '<lastmod>' . preg_replace('/ .*/', '', $r['edate']) . '</lastmod>' . '<priority>' . $r['importance'] . '</priority>' . '</url>'; } echo '</urlset>';
public function getCountPublished($start = 0, $limit = 0, $sort = 'content_weight ASC, content_title', $order = 'ASC') { $helper = Page::getInstance(); $xoops = $helper->xoops(); $module_id = $helper->getModule()->getVar('mid'); // get permitted id $groups = $xoops->getUserGroups(); $pages_ids = $helper->getGrouppermHandler()->getItemIds('page_view_item', $groups, $module_id); // criteria $criteria = new CriteriaCompo(); $criteria->add(new Criteria('content_id', '(' . implode(', ', $pages_ids) . ')', 'IN')); $criteria->add(new Criteria('content_status', 0, '!=')); $criteria->add(new Criteria('content_maindisplay', 0, '!=')); $criteria->setSort($sort); $criteria->setOrder($order); $criteria->setStart($start); $criteria->setLimit($limit); return parent::getCount($criteria); }
/** * get a category row from its id * * @param int $id the category ID * * @return array the data */ function Products_adminCategoryGetFromID($id) { $pageid = dbOne('select page_id from page_vars where name="products_category_to_show"' . ' and value=' . $id, 'page_id', 'page_vars'); $vals = ProductCategory::getInstance($id)->vals; $data = array('attrs' => array('thumbsize_w' => $vals['thumbsize_w'], 'thumbsize_h' => $vals['thumbsize_h'], 'id' => $vals['id'], 'associated_colour' => $vals['associated_colour'], 'name' => $vals['name'], 'enabled' => $vals['enabled'], 'parent_id' => $vals['parent_id']), 'products' => ProductsCategoriesProducts::getByCategoryId($id), 'hasIcon' => file_exists(USERBASE . '/f/products/categories/' . $id . '/icon.png') ? filemtime(USERBASE . '/f/products/categories/' . $id . '/icon.png') : 0); if (isset($pageid)) { $page = Page::getInstance($pageid); if ($page) { $url = $page->getRelativeUrl(); $data['page'] = $url; } } return $data; }