/** * Sitemap filter * * Receives existing sitemap and adds pages section */ function _page_sitemap($sitemap) { global $_USERGROUPS; $perms = new JOJO_Permissions(); $pagetree = new hktree(); $sitemappages = JOJO::selectQuery("SELECT * FROM page WHERE pg_livedate<" . strtotime('now') . " AND (pg_expirydate=0 OR pg_expirydate>" . strtotime('now') . ") ORDER BY pg_order"); $n = count($sitemappages); for ($i = 0; $i < $n; $i++) { $link = JOJO::urlPrefix(JOJO::yes2true($sitemappages[$i]['pg_ssl'])); if ($sitemappages[$i]['pageid'] == 1) { //homepage $link = _SITEURL; } elseif (substr(strtolower($sitemappages[$i]['pg_link']), 0, 7) == 'http://') { //external $link .= $sitemappages[$i]['pg_link']; } elseif ($sitemappages[$i]['pg_url']) { //discovery level if (_MULTILANGUAGE) { $link .= $sitemappages[$i]['pg_language'] . '/' . $sitemappages[$i]['pg_url'] . '/'; } else { $link .= $sitemappages[$i]['pg_url'] . '/'; } } else { //rewritten $link .= JOJO::rewrite('page', $sitemappages[$i]['pageid'], $sitemappages[$i]['pg_title']); } $perms->getPermissions('page', $sitemappages[$i]['pageid']); if ($perms->hasPerm($_USERGROUPS, 'show')) { $pagetree->addNode($sitemappages[$i]['pageid'], $sitemappages[$i]['pg_parent'], $sitemappages[$i]['pg_title'], $link); } } /* Add to the sitemap array */ $sitemap['pages'] = array('title' => 'Pages', 'tree' => $pagetree->asArray(0, 0, 5), 'order' => 0, 'header' => '', 'footer' => ''); return $sitemap; }