Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Тема закрыта
Есть ли что-то подобное из набора модулей PunBB?
Т.е. например взять любой движок, то имеется карта, которая включает в себя лёгкое и удобное обозрение в виде вывода списка заголовков тем, разбитых по категориям и т.д.
Т.е. есть ли что-то подобное КАРТЕ для форума? Когда можно перейти на КАРТУ и просмотреть в удобном виде все темы разбитые по категориям? И было бы классно если бы к Титлу шло бы ещё небольшое описание (скажем 100-200 символов начала темы).
Это с одной стороны и удобно, а с другой стороный увеличивает число внутренних ссылок, что полезно для поисковиков...
на скорую руку набросал. может пригодится:
файл map.php бросить в корень форума
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
// Load the index.php language file
require PUN_ROOT.'lang/'.$pun_user['language'].'/index.php';
$page_title = pun_htmlspecialchars($pun_config['o_board_title']);
define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';
$fid_list = array();
$categories = array();
$forums = array();
// get available forum list
$result = $db->query('SELECT f.id AS fid, f.forum_name FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY f.id') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
while ($cur_forum = $db->fetch_assoc($result))
{
$fid_list[] = $cur_forum['fid'];
$forums[$cur_forum['fid']] = $cur_forum['forum_name'];
}
$fid_list = implode(',', $fid_list);
// get category list for cache
$result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
while ($cur_category = $db->fetch_assoc($result))
{
$categories[$cur_category['id']] = $cur_category['cat_name'];
}
// loop through topics
$result = $db->query('SELECT f.cat_id, t.forum_id, t.id, t.subject, t.last_post, t.poster FROM
'.$db->prefix.'topics AS t INNER JOIN
'.$db->prefix.'forums AS f ON f.id = t.forum_id INNER JOIN
'.$db->prefix.'categories AS c ON f.cat_id = c.id
WHERE f.id in ('.$fid_list.')
ORDER BY c.disp_position, f.disp_position, f.cat_id, t.forum_id, t.last_post desc') or
error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$cur_category = 0;
$cur_forum = 0;
echo "<div class=\"box\">\n";
echo "\t<div class=\"inbox\">\n";
while ($cur_topic = $db->fetch_assoc($result))
{
if ($cur_topic['cat_id'] != $cur_category) // A new category since last iteration?
{
if ($cur_category != 0)
echo "\t<br />\n";
echo "\t<h2><span>".pun_htmlspecialchars($categories[$cur_topic['cat_id']])."</span></h2>\n";
$cur_category = $cur_topic['cat_id'];
}
if ($cur_topic['forum_id'] != $cur_forum) // A new forum since last iteration?
{
echo "\t\t<p> <strong>".pun_htmlspecialchars($forums[$cur_topic['forum_id']])."</strong></p>\n";
$cur_forum = $cur_topic['forum_id'];
}
echo "\t\t\t<p> » ".pun_htmlspecialchars($cur_topic['poster']).":<br />\n\t\t\t ".
'<a href="viewtopic.php?id='.$cur_topic['id'].'">"'.pun_htmlspecialchars($cur_topic['subject'])."</a></p>\n";
}
echo "\t</div>\n";
echo "</div>\n";
echo "<br />\n<div class=\"clearer\"></div>\n";
$footer_style = 'index';
require PUN_ROOT.'footer.php';
Редактировался artoodetoo (2007-01-24 23:43:08)
artoodetoo
Вот молодец!
респект
+1
artoodetoo,
карта с разбивкой на страницы, с иконками папок. чтобы все по-взослому...
распаковать архив в корень форума - там сам скрипт map.php и две иконки.
в теле скрипта определена константа - количество тем на страницу
define('TOPICS_PER_PAGE', 50);
можно подобрать значение на свой вкус. в языковые файлы lang/*/common.php надо прописать строки 'Site Map', типа такого:
'Site map' => 'Карта сайта',
все!
edited may-08: к сожалению тот сайт был мною заброшен, домен сейчас захвачен говноторговцами ...
нашел какую-то версию, возможно это оно: архив
Да, вот это уже круче намного.
Т.е. например взять любой движок, то имеется карта, которая включает в себя лёгкое и удобное обозрение в виде вывода списка заголовков тем, разбитых по категориям и т.д.
Ну - ка, вожмите и покажите.
Т.е. есть ли что-то подобное КАРТЕ для форума? Когда можно перейти на КАРТУ и просмотреть в удобном виде все темы разбитые по категориям? И было бы классно если бы к Титлу шло бы ещё небольшое описание (скажем 100-200 символов начала темы).
Вообще, что вы просите, это и есть главная страница.
Это с одной стороны и удобно, а с другой стороный увеличивает число внутренних ссылок, что полезно для поисковиков...
От количества внтунренних ссылок может быть только хуже. И если их очень много, то бот их порпосту не будет учитывать.
А вы не боитесь за нагрузку, всётаки форум, это очень динамичный ресурс?
От количества внтунренних ссылок может быть только хуже. И если их очень много, то бот их порпосту не будет учитывать.
От этого зависит релевантность в поиске. Далее идут внешние ссылки. Всё нужно сделать грамотно чтобы иметь высокие позиции при поиске в поисковиках (наиболее важен яндекс и рамблер).
Ну - ка, вожмите и покажите.
Самый простой мод наверно у PunBB - Нужно просто закинуть файл всё и гляди скока душе угодно.
От этого зависит релевантность в поиске. Далее идут внешние ссылки. Всё нужно сделать грамотно чтобы иметь высокие позиции при поиске в поисковиках (наиболее важен яндекс и рамблер).
Вот именно, перелинковка, как вы всегда выражаетесь, должна быть грамотной. Глупо делать для форума карту сайта, так как он сам по сути ей и является. Дополнительной картой сайта вы вызовете лишь нагрузку на хост, а так же на бота, который не всеяден, точнее кушает очень размеренно. Представьте, появление лишь одного поста на форуме меняет всю иерархию сообщений, и боту необходимо снова и снова индексировать данную карту.
Самый простой мод наверно у PunBB - Нужно просто закинуть файл всё smile и гляди скока душе угодно.
Нет уж, не отвертитесь. Вы сказали - "Т.е. например взять любой движок, то имеется карта, которая включает в себя лёгкое и удобное обозрение в виде вывода списка заголовков тем, разбитых по категориям и т.д." Покажите же мне на любом другом движке форума такое.
Нет уж, не отвертитесь. Вы сказали - "Т.е. например взять любой движок, то имеется карта, которая включает в себя лёгкое и удобное обозрение в виде вывода списка заголовков тем, разбитых по категориям и т.д." Покажите же мне на любом другом движке форума такое.
Я имел ввиду просто движок, новостной-статейный например(Друпал, Джимла...).
Вот именно, перелинковка, как вы всегда выражаетесь, должна быть грамотной. Глупо делать для форума карту сайта, так как он сам по сути ей и является. Дополнительной картой сайта вы вызовете лишь нагрузку на хост, а так же на бота, который не всеяден, точнее кушает очень размеренно. Представьте, появление лишь одного поста на форуме меняет всю иерархию сообщений, и боту необходимо снова и снова индексировать данную карту.
Ну это снова из сферы предположений как робот поисковика будет вести себя.
Лично я полагаю что внутренние ссылки и их количество увеличивают вес тех или иных страниц форума-сайта, но также важны внешние ссылки с тайтлом в который включены поисковые фразы. Это две вещи могут сыграть такую роль что даже если на странице нет ни одного из слов из запроса, но эти слова есть на десятках ссылающихся на эту страницу страниц (внутренних и внешних) - то поисковик выдаст её на высших позициях (возможно замечали - иногда раскрученные сайти с огромным ТИЦ выдаются даются без содержания поисковых слов в странице).
Надо карту с плюсиками сделать... Вот дерево вроде уже есть, осталось только мочь его сворачивать...
Я имел ввиду просто движок, новостной-статейный например(Друпал, Джимла...).
Вы бы ещё статику имели ввиду. Там это конечно необходимо, но не в форуме.
Ну это снова из сферы предположений как робот поисковика будет вести себя.
Лично я полагаю что внутренние ссылки и их количество увеличивают вес тех или иных страниц форума-сайта, но также важны внешние ссылки с тайтлом в который включены поисковые фразы. Это две вещи могут сыграть такую роль что даже если на странице нет ни одного из слов из запроса, но эти слова есть на десятках ссылающихся на эту страницу страниц (внутренних и внешних) - то поисковик выдаст её на высших позициях (возможно замечали - иногда раскрученные сайти с огромным ТИЦ выдаются даются без содержания поисковых слов в странице).
Прям как ребёнок, у вас одни предположения. Как вы живёте то тогда, тоже на предположениях?
Вы полагать можете сколько угодно, но эти предположения держите при себе, а то весь интернет состоит из таких вот советчиков.
Это кому вы пишете, мне? Я и так знаю. Ага, ещё скажите, что ИЦ имеет какое - либо отношение к ранжированию в серпе.
Про что дальше будем придумывать? Noindex, nofollow?
Хе, ваши убеждения я менять не собираюсь.
Знаете, так знайте на здоровие
Но ваше мнение не единственно в мире, есть ещё куча дригих мнений и советов.
Чуток переделанный код от artoodetoo для соответсвия XML Sitemap Format:
The Sitemap Protocol allows you to inform search engines about URLs on your websites that are available for crawling. In its simplest form, a Sitemap that uses the Sitemap Protocol is an XML file that lists URLs for a site. The protocol was written to be highly scalable so it can accommodate sites of any size. It also enables webmasters to include additional information about each URL (when it was last updated; how often it changes; how important it is in relation to other URLs in the site) so that search engines can more intelligently crawl the site.
[right]Sitemap - Google Webmaster Tools[/right]
Возможно будет полезен еще для кого-то
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
$fid_list = array();
$categories = array();
$forums = array();
// get available forum list
$result = $db->query('SELECT f.id AS fid, f.forum_name FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY f.id') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
while ($cur_forum = $db->fetch_assoc($result))
{
$fid_list[] = $cur_forum['fid'];
$forums[$cur_forum['fid']] = $cur_forum['forum_name'];
}
$fid_list = implode(',', $fid_list);
// get category list for cache
$result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
while ($cur_category = $db->fetch_assoc($result))
{
$categories[$cur_category['id']] = $cur_category['cat_name'];
}
// loop through topics
$result = $db->query('SELECT f.cat_id, t.forum_id, t.id, t.subject, t.last_post_id, t.last_post, t.poster FROM
'.$db->prefix.'topics AS t INNER JOIN
'.$db->prefix.'forums AS f ON f.id = t.forum_id INNER JOIN
'.$db->prefix.'categories AS c ON f.cat_id = c.id
WHERE f.id in ('.$fid_list.')
ORDER BY c.disp_position, f.disp_position, f.cat_id, t.forum_id, t.last_post desc') or
error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$cur_category = 0;
$cur_forum = 0;
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
."<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">\n\n"
."\t<url>\n"
."\t\t<loc>".$pun_config['o_base_url']."</loc>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>1.0</priority>\n"
."\t</url>\n";
while ($cur_topic = $db->fetch_assoc($result))
{
if ($cur_topic['cat_id'] != $cur_category) // A new category since last iteration?
{
//if ($cur_category != 0)
$cur_category = $cur_topic['cat_id'];
$category_name = pun_htmlspecialchars($categories[$cur_topic['cat_id']]);
$xml .= "\t<!-- ".$category_name." -->\n";
}
if ($cur_topic['forum_id'] != $cur_forum) // A new forum since last iteration?
{
$forum_name = pun_htmlspecialchars($forums[$cur_topic['forum_id']]);
$forum_url = htmlspecialchars($pun_config['o_base_url'].'/viewforum.php?id='.$cur_topic['forum_id'], ENT_QUOTES);
$forum_lastmod = date('Y-m-t', $cur_topic['last_post']);
$xml .= "\t<!-- ".$forum_name." -->\n"
."\t<url>\n"
."\t\t<loc>$forum_url</loc>\n"
."\t\t<lastmod>$forum_lastmod</lastmod>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>0.7</priority>\n"
."\t</url>\n";
$cur_forum = $cur_topic['forum_id'];
}
$topic_lastmod = date('Y-m-t', $cur_topic['last_post']);
$topic_name = pun_htmlspecialchars($cur_topic['subject']);
$topic_url = htmlspecialchars($pun_config['o_base_url'].'/viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'], ENT_QUOTES);
$xml .= "\t<url>\n"
."\t\t<loc>$topic_url</loc>\n"
."\t\t<lastmod>$topic_lastmod</lastmod>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>0.5</priority>\n"
."\t</url>\n";
}
$xml .= "</urlset>";
gzencode($xml, 9);
header('Content-Type: text/xml');
echo $xml;
+ полезный линк Site Map Writer - http://www.sitemapwriter.com/notify.php?lang=ru - для сообщения поисковым системам об XML Sitemap в Google, Yahoo, Ask.com, MSN (Live.com) и Moreover.com.
Редактировался lokee (2008-04-20 14:37:51)
Перезалейте архив со скриптом map.php
Редактировался snapik (2008-05-06 19:44:02)
Перезалейте архив со скриптом map.php
lokee, это что-то не то. Я просил архивчик из http://punbb.ru/viewtopic.php?pid=7414#p7414 поста.
упс! пост отредактирован. есть новая ссылка
Спасибо )
Такая карты форума не особо эффективна, т.к. страницы в середине списка страницы имеют неизвестно какой уровень. Надо вместо 1 2 3 ... 500, сделать 1 2 3 4 5 6 7 и т.д., чтобы был весь список, тогда от такой карты уже будет полезность, т.к. ссылки на темы форума будут на страницах 3-го уровня и будут хорошо индексироваться.
Вообщем-то вопрос, как это сделать?
Чуток переделанный код от artoodetoo для соответсвия XML Sitemap Format:
The Sitemap Protocol allows you to inform search engines about URLs on your websites that are available for crawling. In its simplest form, a Sitemap that uses the Sitemap Protocol is an XML file that lists URLs for a site. The protocol was written to be highly scalable so it can accommodate sites of any size. It also enables webmasters to include additional information about each URL (when it was last updated; how often it changes; how important it is in relation to other URLs in the site) so that search engines can more intelligently crawl the site.
Sitemap - Google Webmaster Tools
Возможно будет полезен еще для кого-то
Подскажите пожалуйста. Как правильно вставить кусок этого кода в map который artoodetoo дал!?
Мой код получается такой:
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
$fid_list = array();
$categories = array();
$forums = array();
// get available forum list
$result = $db->query('SELECT f.id AS fid, f.forum_name FROM '.$db->prefix.'forums AS f LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY f.id') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
while ($cur_forum = $db->fetch_assoc($result))
{
$fid_list[] = $cur_forum['fid'];
$forums[$cur_forum['fid']] = $cur_forum['forum_name'];
}
$fid_list = implode(',', $fid_list);
// get category list for cache
$result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
while ($cur_category = $db->fetch_assoc($result))
{
$categories[$cur_category['id']] = $cur_category['cat_name'];
}
// loop through topics
$result = $db->query('SELECT f.cat_id, t.forum_id, t.id, t.subject, t.last_post_id, t.last_post, t.poster FROM
'.$db->prefix.'topics AS t INNER JOIN
'.$db->prefix.'forums AS f ON f.id = t.forum_id INNER JOIN
'.$db->prefix.'categories AS c ON f.cat_id = c.id
WHERE f.id in ('.$fid_list.')
ORDER BY c.disp_position, f.disp_position, f.cat_id, t.forum_id, t.last_post desc') or
error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
$cur_category = 0;
$cur_forum = 0;
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
."<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">\n\n"
."\t<url>\n"
."\t\t<loc>".$pun_config['o_base_url']."</loc>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>1.0</priority>\n"
."\t</url>\n";
while ($cur_topic = $db->fetch_assoc($result))
{
if ($cur_topic['cat_id'] != $cur_category) // A new category since last iteration?
{
//if ($cur_category != 0)
$cur_category = $cur_topic['cat_id'];
$category_name = pun_htmlspecialchars($categories[$cur_topic['cat_id']]);
$xml .= "\t<!-- ".$category_name." -->\n";
}
if ($cur_topic['forum_id'] != $cur_forum) // A new forum since last iteration?
{
$forum_name = pun_htmlspecialchars($forums[$cur_topic['forum_id']]);
$forum_url = htmlspecialchars($pun_config['o_base_url'].'/viewforum.php?id='.$cur_topic['forum_id'], ENT_QUOTES);
$forum_lastmod = date('Y-m-t', $cur_topic['last_post']);
$xml .= "\t<!-- ".$forum_name." -->\n"
."\t<url>\n"
."\t\t<loc>$forum_url</loc>\n"
."\t\t<lastmod>$forum_lastmod</lastmod>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>0.7</priority>\n"
."\t</url>\n";
$cur_forum = $cur_topic['forum_id'];
}
$topic_lastmod = date('Y-m-t', $cur_topic['last_post']);
$topic_name = pun_htmlspecialchars($cur_topic['subject']);
$topic_url = htmlspecialchars($pun_config['o_base_url'].'/viewtopic.php?pid='.$cur_topic['last_post_id'].'#p'.$cur_topic['last_post_id'], ENT_QUOTES);
$xml .= "\t<url>\n"
."\t\t<loc>$topic_url</loc>\n"
."\t\t<lastmod>$topic_lastmod</lastmod>\n"
."\t\t<changefreq>weekly</changefreq>\n"
."\t\t<priority>0.5</priority>\n"
."\t</url>\n";
}
$xml .= "</urlset>";
gzencode($xml, 9);
header('Content-Type: text/xml');
echo $xml;
?>
<div class="linkst">
<div class="inbox">
<p class="pagelink conl"><?php echo $paging_links ?></p>
<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a></li><li> » <?php echo $lang_common['Site map'] ?></li></ul>
<div class="clearer"></div>
</div>
</div>
<div class="box">
<style>
#map .cat {PADDING-LEFT: 30px; PADDING-TOP: 3px; PADDING-BOTTOM: 2px; BACKGROUND: url(img/map/folder.gif) no-repeat 10px 2px; FONT-WEIGHT: bold}
#map .frm {PADDING-LEFT: 46px; PADDING-TOP: 3px; PADDING-BOTTOM: 2px; BACKGROUND: url(img/map/folder.gif) no-repeat 26px 2px; FONT-WEIGHT: bold}
#map .tpc {PADDING-LEFT: 62px; BACKGROUND: url(img/map/doc.gif) no-repeat 42px 5px}
</style>
<div class="inbox" id="map">
<?php
$doc_ico = '<img src="img/map/doc.gif" width="16" height="16">';
$folder_ico = '<img src="img/map/folder.gif" width="16" height="16">';
while ($cur_topic = $db->fetch_assoc($result))
{
if ($cur_topic['cat_id'] != $cur_category) // A new category since last iteration?
{
echo "\t\t".'<div class="cat">'.pun_htmlspecialchars($categories[$cur_topic['cat_id']]).'</div>'."\n";
$cur_category = $cur_topic['cat_id'];
}
if ($cur_topic['forum_id'] != $cur_forum) // A new forum since last iteration?
{
echo "\t\t".'<div class="frm"><a href="viewforum.php?id='.$cur_topic['forum_id'].'">'.pun_htmlspecialchars($forums[$cur_topic['forum_id']]).'</a></div>'."\n";
$cur_forum = $cur_topic['forum_id'];
}
echo "\t\t".'<div class="tpc"><a href="viewtopic.php?id='.$cur_topic['id'].'">'.pun_htmlspecialchars($cur_topic['subject']).'</a><br />'.
pun_htmlspecialchars($cur_topic['poster'])."</div>\n";
}
?>
<br />
</div>
</div>
<br />
<div class="clearer"></div>
<div class="linkst">
<div class="inbox">
<p class="pagelink conl"><?php echo $paging_links ?></p>
<ul><li><a href="index.php"><?php echo $lang_common['Index'] ?></a></li><li> » <?php echo $lang_common['Site map'] ?></li></ul>
<div class="clearer"></div>
</div>
</div>
<?php
$footer_style = 'forum';
require PUN_ROOT.'include/footer.php';
Но когда пытаюсь зайти, выдаёт
Ошибка!
Ошибка анализа XMLОшибка анализа XML: синтаксическая ошибка (Строка: 2, Символ: 0)
Повторный анализ документа как HTML
Ошибка:unexpected start-tag (root element already specified)
Спецификация:http://www.w3.org/TR/REC-xml/
1: <br />
2: <b>Notice</b>: Undefined variable: tpl_main in <b>/home/shteam/public_html/techg.net.ru/include/footer.php</b> on line <b>59</b><br />
Подскажите пожалуйста. Как правильно вставить кусок этого кода в map который artoodetoo дал!?
не надо его никуда вставлять. XML Sitemap - оно само по себе (та же карта, но в XML - спецом для поисковиков)
Ура!! Теперь и Яндекс поддерживает sitemap, так что можно не мучаться с картой.
http://webmaster.ya.ru/replies.xml?item … ncrnd=3824
Редактировался snapik (2008-06-04 15:25:23)
Страницы 1
Тема закрыта