1

Topic: Интеграция расширения quadric_seo_optimizer - оптимизация форума

Очень полезное расширение для улучшения оптимизации форума PunBB, его легко можно внедрить в сам форум.
Итак рассмотрим хуки.
vf_modify_forum_info - в файле viewforum.php - этот код выполняет переадресацию на каноничный URL при битых ссылках форумов
Ищем и перед ним вставляем

//<!-- Check if url match the current scheme. If not redirect to current scheme -->
$current_url = forum_htmlencode(get_current_url());
$seo_url = forum_sublink($forum_url['forum'], $forum_url['page'], (isset($_GET['p']) ? $_GET['p'] : 1), array($id, sef_friendly($cur_forum['forum_name'])));
if ($seo_url !== $current_url) 
{
  header("Location: $seo_url", true, 301);
  exit();
}

Хук vf_topic_loop_normal_topic_pre_item_title_merge там же перед ним будет

$forum_page['item_title']['link'] = '<a href="'.forum_link($forum_url['topic'], array($cur_topic['id'], sef_friendly($cur_topic['subject']))).'">'.forum_htmlencode($cur_topic['subject']).'</a>';

заменить на

//<!-- Add forum title parts into topic title in topic -->
$forum_page['item_title']['link'] = '<a href="'.forum_link($forum_url['topic'], array($cur_topic['id'], sef_friendly($cur_forum['forum_name'] . ' ' . $cur_topic['subject']))).'">'.forum_htmlencode($cur_topic['subject']).'</a>';

И еще один в этом файле vf_topic_loop_normal_topic_pre_item_nav_merge, перед ним код

      if ($forum_page['item_pages'] > 1)
        $forum_page['item_nav']['pages'] = '<span>'.$lang_forum['Pages'].'&#160;</span>'.paginate($forum_page['item_pages'], -1, $forum_url['topic'], $lang_common['Page separator'], array($cur_topic['id'], sef_friendly($cur_topic['subject'])));

      // Does this topic contain posts we haven't read? If so, tag it accordingly.
      if (!$forum_user['is_guest'] && $cur_topic['last_post'] > $forum_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_topic['id']]) || $tracked_topics['topics'][$cur_topic['id']] < $cur_topic['last_post']) && (!isset($tracked_topics['forums'][$id]) || $tracked_topics['forums'][$id] < $cur_topic['last_post']))
      {
        $forum_page['item_nav']['new'] = '<em class="item-newposts"><a href="'.forum_link($forum_url['topic_new_posts'], array($cur_topic['id'], sef_friendly($cur_topic['subject']))).'">'.$lang_forum['New posts'].'</a></em>';
        $forum_page['item_status']['new'] = 'new';
      }

Заменить на

//<!-- Add forum title parts into thread pages in forum -->
    if ($forum_page['item_pages'] > 1)
      $forum_page['item_nav']['pages'] = '<span>'.$lang_forum['Pages'].'&#160;</span>'.paginate($forum_page['item_pages'], -1, $forum_url['topic'], $lang_common['Page separator'], array($cur_topic['id'], sef_friendly($cur_forum['forum_name'] . ' ' . $cur_topic['subject'])));

    // Does this topic contain posts we haven't read? If so, tag it accordingly.
    if (!$forum_user['is_guest'] && $cur_topic['last_post'] > $forum_user['last_visit'] && (!isset($tracked_topics['topics'][$cur_topic['id']]) || $tracked_topics['topics'][$cur_topic['id']] < $cur_topic['last_post']) && (!isset($tracked_topics['forums'][$id]) || $tracked_topics['forums'][$id] < $cur_topic['last_post']))
    {
      $forum_page['item_nav']['new'] = '<em class="item-newposts"><a href="'.forum_link($forum_url['topic_new_posts'], array($cur_topic['id'], sef_friendly($cur_forum['forum_name'] . ' ' . $cur_topic['subject']))).'">'.$lang_forum['New posts'].'</a></em>';
      $forum_page['item_status']['new'] = 'new';
    }

В этом файле все.

2

Re: Интеграция расширения quadric_seo_optimizer - оптимизация форума

Далее файл viewtopic.php

При битых ссылках топика перенаправляет на правильную ссылку исходя из текущей схемы.

Хук vt_modify_topic_info сразу перед ним вставить

//<!-- Check if url match the current scheme. If not redirect to current scheme -->
$current_url = forum_htmlencode(get_current_url());
if ($pid) 
{
  $seo_url = forum_link($forum_url['post'], $pid);
  if ($seo_url !== $current_url . '#p' . $pid) {
    header("Location: $seo_url", true, 301);
    exit();
  }
} else if ($id) {
  $seo_url = forum_sublink($forum_url['topic'], $forum_url['page'], (isset($_GET['p']) ? $_GET['p'] : 1), array($id, sef_friendly($cur_topic['forum_name'] . ' ' . $cur_topic['subject'])));
    if ($seo_url !== $current_url) {
    header("Location: $seo_url", true, 301);
    exit();
  }
}

И еще один vt_pre_header_load перед ним

// Generate paging and posting links
$forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">'.$lang_common['Pages'].'</span> '.paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['topic'], $lang_common['Paging separator'], array($id, sef_friendly($cur_topic['subject']))).'</p>';

поменять на

// Generate paging and posting links
$forum_page['page_post']['paging'] = '<p class="paging"><span class="pages">'.$lang_common['Pages'].'</span> '.paginate($forum_page['num_pages'], $forum_page['page'], $forum_url['topic'], $lang_common['Paging separator'], array($id, sef_friendly($cur_topic['forum_name'] . ' ' . $cur_topic['subject']))).'</p>';

а также код

// Setup breadcrumbs
$forum_page['crumbs'] = array(
    array($forum_config['o_board_title'], forum_link($forum_url['index'])),
    array($cur_topic['forum_name'], forum_link($forum_url['forum'], array($cur_topic['forum_id'], sef_friendly($cur_topic['forum_name'])))),
    array($cur_topic['subject'], forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['forum_name'] . ' ' . $cur_topic['subject']))))
);

Заменить на

// Setup breadcrumbs
$forum_page['crumbs'] = array(
  array($forum_config['o_board_title'], forum_link($forum_url['index'])),
  array($cur_topic['forum_name'], forum_link($forum_url['forum'], array($cur_topic['forum_id'], sef_friendly($cur_topic['forum_name'])))),
  array($cur_topic['subject'], forum_link($forum_url['topic'], array($id, sef_friendly($cur_topic['forum_name'] . ' ' . $cur_topic['subject']))))
);

3

Re: Интеграция расширения quadric_seo_optimizer - оптимизация форума

И еще один - генератор заголовка форума
Хук - fn_generate_crumbs_end в файле функций найти

  if ($reverse)
  {
    for ($i = ($num_crumbs - 1); $i >= 0; --$i)
      $crumbs .= (is_array($forum_page['crumbs'][$i]) ? forum_htmlencode($forum_page['crumbs'][$i][0]) : forum_htmlencode($forum_page['crumbs'][$i])).((isset($forum_page['page']) && $i == ($num_crumbs - 1)) ? ' ('.$lang_common['Page'].' '.forum_number_format($forum_page['page']).')' : '').($i > 0 ? $lang_common['Title separator'] : '');
  }

заменить на

        if ($reverse)
    {
      $crumbs = '';
      for ($i = ($num_crumbs - 1); $i >= 0; --$i)
        $crumbs .= (is_array($forum_page['crumbs'][$i]) ? forum_htmlencode($forum_page['crumbs'][$i][0]) : forum_htmlencode($forum_page['crumbs'][$i])).((isset($forum_page['page']) && $i == ($num_crumbs - 1) && $forum_page['page'] > 1) ? ' ('.$lang_common['Page'].' '.forum_number_format($forum_page['page']).')' : '').($i > 0 ? $lang_common['Title separator'] : '');
    }

Все готово.

4

Re: Интеграция расширения quadric_seo_optimizer - оптимизация форума

PunBB wrote:

Очень полезное расширение для улучшения оптимизации форума PunBB

PunBB, а чем полезно это расширение? что оно оптимизирует?

5

Re: Интеграция расширения quadric_seo_optimizer - оптимизация форума

mr.webber wrote:
PunBB wrote:

Очень полезное расширение для улучшения оптимизации форума PunBB

PunBB, а чем полезно это расширение? что оно оптимизирует?

после некоторых исследований выявилось, что больше может быть вреда, чем пользы.
К примеру, хлебные крошки в расширении создают циклическую ссылку на тот же пост.
Хотя, то что слово Страница 1 убирает с первой страницы темы, это существенно экономит место для содержательного заголовка темы.

Применяйте на свой страх и риск. К оптимизации каждого отдельного форума нужно подходить индивидуально. Кто под что его продвигает...