/**
 * 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;
}