1 (edited by PunBB 2017.04.03 13:39)

Topic: Sitemap Generator - карта форума для роботов sitemap.xml

Расширение Sitemap Generator 
Позволяет создать карту для поисковиков. В конце файла robots.txt добавьте строку со ссылкой на Sitemap:
Sitemap:

http://panbb/sitemap.xml

• Версия 1.4
• Разработчик: Garciat
тестировалась также на SQLite3 нормально.

Расширение более не поддерживается. Используйте Pan SEO - оптимизация форума PunBB

Если вам долго не отвечают, пишите автору темы в личку или на Email.

2

Re: Sitemap Generator - карта форума для роботов sitemap.xml

А где сам модуль?

3 (edited by Xakker 2015.05.04 10:37)

Re: Sitemap Generator - карта форума для роботов sitemap.xml

имя архива sitemap
В директории 2 файла с содержимым

manifest.xml

Spoiler
<?xml version="1.0" encoding="UTF-8"?>
<extension engine="1.0">
<id>sitemap</id>
<title>Sitemap Generator</title>
<version>1.3</version>
<description>Allows the forum to generate a standard-complying sitemap.</description>
<author>Garciat</author>
<minversion>1.3</minversion>
<maxtestedon>1.4</maxtestedon>

<install>
<![CDATA[ if (!$handle = @fopen(FORUM_ROOT.'sitemap.xml', 'w')) die("Could not create <b>sitemap.xml</b> on forum root."); fclose($handle); include $ext_info['path'].'/functions.php'; createSitemap(); ]]>
</install>

<uninstall>
<![CDATA[ if(!@unlink(FORUM_ROOT.'sitemap.xml')) die("Could not delete <b>sitemap.xml</b> on forum root."); ]]>
</uninstall>
<hooks>
<hook id="po_pre_redirect, ed_pre_redirect, dl_topic_deleted_pre_redirect, acg_del_cat_pre_redirect, afo_add_forum_pre_redirect, afo_del_forum_pre_redirect, afo_update_positions_pre_redirect, afo_save_forum_pre_redirect, afo_revert_perms_pre_redirect">
<![CDATA[ include $ext_info['path'].'/functions.php'; createSitemap(); ]]>
</hook>
</hooks>
</extension>

functions.php

Spoiler
<?php
function createSitemap()
{
  global $forum_url, $forum_db;
  
  if(!is_writable(FORUM_ROOT.'sitemap.xml'))
    die("<b>sitemap.xml</b> on forum root is not writable.");
  
  if(!$handle = @fopen(FORUM_ROOT.'sitemap.xml', 'w'))
    die("Could not open <b>sitemap.xml</b> on forum root.");
  
  $atts['xmlns'] = 'http://www.sitemaps.org/schemas/sitemap/0.9';
  $atts['xmlns:xsi'] = 'http://www.w3.org/2001/XMLSchema-instance';
  $atts['xsi:schemaLocation'] = 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd';
  
  $array = array();
  
  $array[] = forum_link($forum_url['index']);
  $array[] = forum_link($forum_url['users']);

  $query = array(
    'SELECT'  => 't.id, t.subject, f.id AS fid, f.forum_name',
    'FROM'    => 'topics AS t',
    'JOINS'    => array(
      array(
        'INNER JOIN'  => 'forums AS f',
        'ON'      => 'f.id=t.forum_id'
      ),
      array(
        'LEFT JOIN'    => 'forum_perms AS fp',
        'ON'      => '(fp.forum_id=f.id AND fp.group_id=2)'
      )
    ),
    'WHERE'    => 'fp.read_forum IS NULL OR fp.read_forum=1',
    'ORDER BY'  => 'f.disp_position ASC, t.id DESC'
  );
  $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
  
  $cur_forum = array();
  
  while ($cur_topic = $forum_db->fetch_assoc($result))
  {
    if($cur_topic['fid'] != $cur_forum)
    {
      $array[] = forum_link($forum_url['forum'], array($cur_topic['fid'], sef_friendly($cur_topic['forum_name'])));
      $cur_forum = $cur_topic['fid'];
    }
    $array[] = forum_link($forum_url['topic'], array($cur_topic['id'], sef_friendly($cur_topic['subject'])));
  }

  $query = array(
    'SELECT'  => 'f.id, f.forum_name',
    'FROM'    => 'forums AS f',
    'JOINS'    => array(
      array(
        'INNER JOIN'  => 'categories AS c',
        'ON'      => 'c.id=f.cat_id'
      ),
      array(
        'LEFT JOIN'    => 'forum_perms AS fp',
        'ON'      => '(fp.forum_id=f.id AND fp.group_id=2)'
      )
    ),
    'WHERE'    => 'f.num_topics=0 AND (fp.read_forum IS NULL OR fp.read_forum=1)',
    'ORDER BY'  => 'c.disp_position ASC, f.disp_position ASC'
  );
  $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
  
  while ($cur_forum = $forum_db->fetch_assoc($result))
    $array[] = forum_link($forum_url['forum'], array($cur_forum['id'], sef_friendly($cur_forum['forum_name'])));
  
  $xml = '<?xml version="1.0" encoding="utf-8"?>'."\n".'<!-- Created by Sitemap extension 1.3 for PunBB -->'."\n".'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";
  
  foreach($array as $url)
  {
    $xml .= "\t<url>\n";
    $xml .= "\t\t<loc>$url</loc>\n";
    $xml .= "\t</url>\n";
  }
  
  $xml .= "</urlset>";
  
  if(@fwrite($handle, $xml) === false)
    die("Could not write to <b>sitemap.xml</b> on forum root.");
  
  fclose($handle);
}
?>

4

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Здраствуйте.

Вопрос.  Может не совсем по теме. Есть ли смысл устанавливать, если форум у меня в папке сайта Drupal, который индексируется посредством своего sitemap.xml, и в котором в robots.txt прописано разрешение на папку forum. Есть ли смысл в том, чтобы в папке форум лежал файл sitemap.xml?

5

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Bogdan{id=140} wrote:

Есть ли смысл устанавливать, если форум у меня в папке сайта Drupal, который индексируется посредством своего sitemap.xml, и в котором в robots.txt прописано разрешение на папку forum. Есть ли смысл в том, чтобы в папке форум лежал файл sitemap.xml?

Видимо да, потому что файл sitemap.xml форума каждый раз обновляется при создании или изменении поста, темы. А как Drupal узнает, что добавилась новая тема и ее нужно добавить в индекс? Только по времени или по своим каким то правилам.
Суть такова:
В корне лежит файл robots.txt и в конце прописаны строки (пути) к файлам sitemap.xml.
Каждый раз при входе, поисковик читает robots.txt, а затем прописанные sitemap.
Таким образом сайт индексируется намного быстрее.
Файлов sitemap.xml может быть несколько, а robots.txt только один.

Если вам долго не отвечают, пишите автору темы в личку или на Email.

6

Re: Sitemap Generator - карта форума для роботов sitemap.xml

PunBB wrote:
Bogdan{id=140} wrote:

Есть ли смысл устанавливать, если форум у меня в папке сайта Drupal, который индексируется посредством своего sitemap.xml, и в котором в robots.txt прописано разрешение на папку forum. Есть ли смысл в том, чтобы в папке форум лежал файл sitemap.xml?

Видимо да, потому что файл sitemap.xml форума каждый раз обновляется при создании или изменении поста, темы. А как Drupal узнает, что добавилась новая тема и ее нужно добавить в индекс? Только по времени или по своим каким то правилам.
Суть такова:
В корне лежит файл robots.txt и в конце прописаны строки (пути) к файлам sitemap.xml.
Каждый раз при входе, поисковик читает robots.txt, а затем прописанные sitemap.
Таким образом сайт индексируется намного быстрее.
Файлов sitemap.xml может быть несколько, а robots.txt только один.

Ага, спасибо. Важныя для меня ответ.

И еще вопрос, совсем не по теме. Только вот увидел такую реализацию у вас. Что нужнно сделать, чтобы в цитировании отобразилась ссылка на сообщение?

Sitemap Generator - карта форума для роботов sitemap.xml

7

Re: Sitemap Generator - карта форума для роботов sitemap.xml

чтобы в цитировании отобразилась ссылка на сообщение?

В общем то тоже как то должно улучшать оптимизацию за счет перелиновки, типа как тут, быстрое цитирование, но по этому поводу много споров.

Если вам долго не отвечают, пишите автору темы в личку или на Email.

8 (edited by 2015.05.06 04:27)

Re: Sitemap Generator - карта форума для роботов sitemap.xml

PunBB wrote:

чтобы в цитировании отобразилась ссылка на сообщение?

В общем то тоже как то должно улучшать оптимизацию за счет перелиновки, типа как тут, быстрое цитирование, но по этому поводу много споров.

Меня интересует, как это реализовать у себя на форуме, чтобы ссылка была в цитате?

Ага, это и есть то расширение. СПАСИБО. Но почему-то не отобразилась стрелка, после подключения?


Извините. Не увидел папку js. Разобрался.

9

Re: Sitemap Generator - карта форума для роботов sitemap.xml

не могу удалить карту сайта, тоесть плагин Sitemap Generator, пишет

Could not open sitemap.xml on forum root

изза чего это?

10

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Slavka wrote:

не могу удалить карту сайта, тоесть плагин Sitemap Generator, пишет

Could not open sitemap.xml on forum root

изза чего это?

а посмотрите сам файл sitemap.xml в корне форума имеется?

11

Re: Sitemap Generator - карта форума для роботов sitemap.xml

нет, файла нет, я его удалил...
и что теперь делать? мне нада заново создать  sitemap PunBB_INFO_ICQ/sad

12

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Slavka, при удалении функция расширения проверяет файл sitemap на существование, поэтому дальнейшее действие прерывается из за его отсутствия.
Есть 2 варианта.
1й - создать пусьой файл в корне форума с именем sitemap.xml, а затем переустановить.
2й - удалит строку с установленным расширением, а так же хуки относящиеся к нему из БД.

13

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Давно хотелось такую возможность, но раньше не встречал такого расширения. Установил, всё работает прекрасно. Спасибо!

14

Re: Sitemap Generator - карта форума для роботов sitemap.xml

Расширение более не поддерживается. Используйте Pan SEO - оптимизация форума PunBB

Если вам долго не отвечают, пишите автору темы в личку или на Email.