Exemplo n.º 1
0
    for ($i = 2; $i <= $num_pages; ++$i) {
        $generator->addUrl(get_base_url() . '/forum-' . $cur_forum['forum_id'] . '-' . clean_url($cur_forum['forum_name']) . '-page-' . $i . '.html', $cur_forum['last_post'], null, '0.5');
    }
}
// Output the data for the topics
$result = $db->query('SELECT t.id as topic_id, t.subject, last_post, sticky, num_replies FROM ' . $db->prefix . 'topics AS t LEFT JOIN ' . $db->prefix . 'forum_perms AS fp ON (fp.forum_id=t.forum_id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL ORDER BY last_post DESC') or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
while ($cur_topic = $db->fetch_assoc($result)) {
    $priority = $cur_topic['sticky'] == '1' ? '1.0' : '0.75';
    $generator->addUrl(get_base_url() . '/' . fluxrewrite("topic-", $cur_topic['topic_id'], $cur_topic['subject'], 1, false, false), $cur_topic['last_post'], null, $priority);
    // We add one because the first post is not counted as a reply but needs to be taken into account for display
    $num_pages = ceil(($cur_topic['num_replies'] + 1) / $pun_config['o_disp_posts_default']);
    for ($i = 2; $i <= $num_pages; ++$i) {
        $generator->addUrl(get_base_url() . '/topic-' . $cur_topic['topic_id'] . '-' . clean_url($cur_topic['subject']) . '-page-' . $i . '.html', $cur_topic['last_post'], null, $priority);
    }
}
$generator->completeSitemap();
abstract class SitemapGenerator
{
    protected function beginSitemap()
    {
        global $pun_config;
        $output = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
        $output .= '<?xml-stylesheet type="text/xsl" href="' . get_base_url() . '/sitemap.xsl"?>' . "\n";
        $output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
        $this->addToSitemap($output);
    }
    public function completeSitemap()
    {
        $this->addToSitemap('</urlset>' . "\n");
    }
    public function addUrl($loc, $lastmod = null, $changefreq = null, $priority = 0.5)