anexis adlı üyeden alıntı: mesajı görüntüle
<?php

require_once('SSI.php');

if ($modSettings['smfVersion'] < '1.1')
    ob_start('ob_sessrewrite');

header('Content-Type: text/plain');

echo '<?xml version="1.0" encoding="UTF-8"?' . '>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">';

$request = db_query("
    SELECT posterTime
    FROM {$db_prefix}messages
    WHERE ID_MSG >= " . ($modSettings['maxMsgID'] - 30) . "
    ORDER BY ID_MSG DESC
    LIMIT 10", __FILE__, __LINE__);
$latest_post_times = array(time());
while ($row = mysql_fetch_assoc($request))
    $latest_post_times[] = $row['posterTime'];
mysql_free_result($request);

$request = db_query("
    SELECT ID_BOARD
    FROM {$db_prefix}boards", __FILE__, __LINE__);
$boards = array();
while ($row = mysql_fetch_assoc($request))
{
    $request2 = db_query("
        SELECT posterTime
        FROM {$db_prefix}messages
        WHERE ID_BOARD = $row[ID_BOARD]" . ($modSettings['totalMessages'] > 100000 ? "
            AND ID_MSG >= " . ($modSettings['maxMsgID'] * 0.5) : '') . "
        ORDER BY ID_MSG DESC
        LIMIT 10", __FILE__, __LINE__);
    $board_post_times = array(time());
    while ($row2 = mysql_fetch_assoc($request2))
        $board_post_times[] = $row2['posterTime'];
    mysql_free_result($request2);

    $boards[] = array(
        'id' => $row['ID_BOARD'],
        'times' => $board_post_times,
    );
}
mysql_free_result($request);

$request = db_query("
    SELECT ID_TOPIC
    FROM {$db_prefix}topics
    ORDER BY numViews + numReplies DESC
    LIMIT 1000", __FILE__, __LINE__);
$topics = array();
while ($row = mysql_fetch_assoc($request))
{
    $request2 = db_query("
        SELECT posterTime
        FROM {$db_prefix}messages
        WHERE ID_TOPIC = $row[ID_TOPIC]
        ORDER BY ID_MSG DESC
        LIMIT 10", __FILE__, __LINE__);
    $topic_post_times = array(time());
    while ($row2 = mysql_fetch_assoc($request2))
        $topic_post_times[] = $row2['posterTime'];
    mysql_free_result($request2);

    $topics[] = array(
        'id' => $row['ID_TOPIC'],
        'times' => $topic_post_times,
    );
}
mysql_free_result($request);

$request = db_query("
    SELECT ID_MEMBER
    FROM {$db_prefix}members
    ORDER BY totalTimeLoggedIn DESC
    LIMIT 20", __FILE__, __LINE__);
$members = array();
while ($row = mysql_fetch_assoc($request))
{
    $request2 = db_query("
        SELECT posterTime
        FROM {$db_prefix}messages
        WHERE ID_MEMBER = $row[ID_MEMBER]" . ($modSettings['totalMessages'] > 100000 ? "
            AND ID_MSG >= " . ($modSettings['maxMsgID'] * 0.5) : '') . "
        ORDER BY ID_MSG DESC
        LIMIT 10", __FILE__, __LINE__);
    $member_post_times = array(time());
    while ($row2 = mysql_fetch_assoc($request2))
        $member_post_times[] = $row2['posterTime'];
    mysql_free_result($request2);

    $members[] = array(
        'id' => $row['ID_MEMBER'],
        'times' => $member_post_times,
    );
}
mysql_free_result($request);

// First, the forum URL.  Highest priority!
echo '
    <url>
        <loc>', $scripturl, '</loc>
        <lastmod>', posts_max_time($latest_post_times), '</lastmod>
        <changefreq>', posts_to_freq($latest_post_times), '</changefreq>
        <priority>1.0</priority>
    </url>';

// Now the boards!
foreach ($boards as $board)
{
    echo '
    <url>
        <loc>', $scripturl, '?board=', $board['id'], '.0</loc>
        <lastmod>', posts_max_time($board['times']), '</lastmod>
        <changefreq>', posts_to_freq($board['times']), '</changefreq>
        <priority>', posts_to_priority(0.8, $board['times']), '</priority>
    </url>';
}

// Popular topics too...
foreach ($topics as $topic)
{
    echo '
    <url>
        <loc>', $scripturl, '?topic=', $topic['id'], '.0</loc>
        <lastmod>', posts_max_time($topic['times']), '</lastmod>
        <changefreq>', posts_to_freq($topic['times']), '</changefreq>
        <priority>', posts_to_priority(0.7, $board['times']), '</priority>
    </url>';
}

// Most active members?
foreach ($members as $member)
{
    echo '
    <url>
        <loc>', $scripturl, '?action=profile;u=', $member['id'], '</loc>
        <lastmod>', posts_max_time($member['times']), '</lastmod>
        <changefreq>', posts_to_freq($member['times']), '</changefreq>
        <priority>', posts_to_priority(0.5, $board['times']), '</priority>
    </url>';
}

echo '
</urlset>';

function posts_max_time($post_times)
{
    if (empty($post_times) || count($post_times) == 1)
        return gmstrftime('%Y-%m-%dT%H:%M:%S+00:00', time() - 3600 * 24 * 10);

    return gmstrftime('%Y-%m-%dT%H:%M:%S+00:00', max($post_times));
}

function posts_to_priority($base, $post_times)
{
    if (empty($post_times) || count($post_times) == 1)
        return sprintf('%1.1f', $base);

    $s = (max($post_times) - min($post_times)) / count($post_times);

    if ($s < 3600 * 24)
        $mod = 0.1;
    else
        $mod = 0;

    return sprintf('%1.1f', $base + $mod);
}

function posts_to_freq($post_times)
{
    if (empty($post_times) || count($post_times) == 1)
        return 'yearly';

    $s = (max($post_times) - min($post_times)) / count($post_times);

    // Changes more often than every hour.
    if ($s < 3600)
        return 'always';
    elseif ($s < 3600 * 12)
        return 'hourly';
    elseif ($s < 3600 * 24 * 4)
        return 'daily';
    else
        return 'monthly';
}

?>
ilkinin değeri konu sayısını belirler. bunu da konu sayının biraz daha üstüne ayarlarsan sorun olmaz. ikinci kırmızı da kullanıcı profilleri. kaç tane istersen ayarlayabilirsin.

Arkadaşın vermiş olduğu kodlar çalışmaktadır daha önceden denemiştim.xml yapısında sitemap alabilirsin.Kolay gelsin