Сео-оптимизация phpbb3

Форум без пользователей, как машина без колес. Данный подфорум призван помочь ответить вам на вопросы - форум? Чем привлечь пользователей ? Как продвинуть свой ресурс в поисковиках ?
Обсуждаем все, что с этим связано, делимся секретами и решаем вместе проблемы раскрутки.

Модераторы: Vl@d1m1r, Lorem Ipsum, Atlas

Правила форума
----
Ответить
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Введение. В сети множество мануалов по этой теме, вот и я решил немного написать об этом. Под сео-оптимизацией я понимаю такие улучшения форума, которые помогают поисковым системам быстрее и качественней индексировать форум, и как следствие лучшие выдачи в поисковых запросах. Впринципе не будем заморачиваться именно на всех тонкостях, расскажу о оптимизации заголовков и метатегов.
Внимание !!!Если вы не боитесь ковырять код форума, то вам следует пропустить первый шаг(установку мода) и обратить внимание на модификации и и , так как с помощью них вы можете вручную задать нужные описания и ключевые слова, мод представленный ниже делает это автоматически, но в результате можете получить кашу из тегов и не ахти какие популярные ключевые слова !!! А так же в любом случае нужно установить мод карты сайта (сайтмап, sitemap) для ускорения индексации форума поисковиками -

Шаг 1. Метатеги. Автоматический вывод метатегов и заполнение их.
Что такое метатеги ??? А метатеги это необязательные теги языков HTML и XMTL, которые не преднаназчены для посетителей сайта, они направлены на поисковые машины. К оформлению метатегов нужно отнестись очень серьезно, т.к. их поисковики используют в сниппетах, то есть показывают его содержимое в результатах поиска в качестве описания страницы. От того, насколько это описание соответствует тому, что ищет пользователь, во многом зависит, перейдет ли он на ваш сайт или на соседний в результатах поиска.

В стандартной, чистой инсталке форума метатеги забиты жестко, регулируются прямыми правками в файлах и отображаются для всех страниц тем одинаковыми. Представьте себе сколько форумов-клонов с мире с одинаковыми метатегами ??? Коллосальное число, оптимизации ноль, шансы перед поисковиками равны. С модом, описанным ниже, ваши позиции возрастут по сравнению с неоптимизированными форумами.

Установка.
Скачать и установить по инструкции мод из архива
Advanced Meta Tags.rar
(29.42 КБ) 417 скачиваний

AОбратите внимание !!!
Сразу же в процессе установки мода нам надо решить проблему с тем, что мод не выводит русские ключевики.
Решение под спойлером
Решение - открыть includes/functions.php (перед правкой установить кодировку данного файла в UTF-8 без BOOM) и найти

Код: Выделить всё

 // Advanced Meta Tags MOD
   $page_keywords = $config['global_keywords'];
   $page_description = $config['site_desc'];
   
   if (!empty($post_text))
   {
      $post_text = strtolower(strip_tags($post_text));
      $post_text = str_word_count($post_text, 1);
      if ($config['use_dynamic_keywords'])
      {
         $count = 0;
         $page_keywords = array();
         foreach ($post_text as $word)
         {
            $word = str_replace("'", '', $word);
            
            if (strlen($word) > 2)
            {
               if (!empty($page_keywords) && in_array($word, $page_keywords))
               {
                  continue;
               }
               $page_keywords[] = $word;
               $count++;
            }
            
            if ($count == $config['keyword_word_count'])
            {
               break;
            }
         }
         $config_keywords = ($config['append_global_keywords']) ? $config['global_keywords'] : '';
         $page_keywords = ($config['append_keywords_first']) ? $config_keywords . ', ' . implode(', ', $page_keywords) : implode(', ', $page_keywords) . ', ' . $config_keywords;
      }
      
      if ($config['use_dynamic_description'])
      {
         $count = 0;
         $page_description = '';
         foreach ($post_text as $word)
         {
            $page_description .= $word . ' ';
            $count++;
            
            if ($count == $config['description_word_count'])
            {
               break;
            }
         }
      }
   }
Заменить найденное на

Код: Выделить всё

       // Meta Keywords MOD 2.0
       $stopwords = array("/^about$/","/^1$/","/^after$/","/^2$/","/^all$/","/^also$/","/^3$/","/^an$/","/^4$/","/^and$/","/^5$/","/^another$/","/^6$/","/^any$/","/^7$/","/^are$/","/^8$/","/^as$/","/^9$/","/^at$/","/^0$/","/^be$/","/^$$/","/^because$/","/^been$/","/^before$/","/^being$/","/^between$/","/^both$/","/^but$/","/^by$/","/^came$/","/^can$/","/^come$/","/^could$/","/^did$/","/^do$/","/^each$/","/^for$/","/^from$/","/^get$/","/^got$/","/^has$/","/^had$/","/^he$/","/^have$/","/^her$/","/^here$/","/^him$/","/^himself$/","/^his$/","/^how$/","/^if$/","/^in$/","/^into$/","/^is$/","/^it$/","/^like$/","/^make$/","/^many$/","/^me$/","/^might$/","/^more$/","/^most$/","/^much$/","/^must$/","/^my$/","/^never$/","/^now$/","/^of$/","/^on$/","/^only$/","/^or$/","/^other$/","/^our$/","/^out$/","/^over$/","/^said$/","/^same$/","/^see$/","/^should$/","/^since$/","/^some$/","/^still$/","/^such$/","/^take$/","/^than$/","/^that$/","/^the$/","/^their$/","/^them$/","/^then$/","/^there$/","/^these$/","/^they$/","/^this$/","/^those$/","/^through$/","/^to$/","/^too$/","/^under$/","/^up$/","/^very$/","/^was$/","/^way$/","/^we$/","/^well$/","/^were$/","/^what$/","/^where$/","/^which$/","/^while$/","/^who$/","/^with$/","/^would$/","/^you$/","/^your$/","/^а$/","/^безо$/","/^более$/","/^будем$/","/^будет$/","/^будто$/","/^буду$/","/^будут$/","/^бы$/","/^были$/","/^было$/","/^быть$/","/^в$/","/^в отношении$/","/^в течении$/","/^вас$/","/^ваш$/","/^вблизи$/","/^вбок$/","/^ввосьмером$/","/^в-восьмых$/","/^ввысь$/","/^вдали$/","/^вдаль$/","/^вдвое$/","/^вдвоем$/","/^вдвойне$/","/^вдевятером$/","/^в-девятых$/","/^вдесятеро$/","/^вдогон$/","/^вдогонку$/","/^вдоль$/","/^вдосталь$/","/^вдруг$/","/^верх$/","/^весь$/","/^взамен$/","/^вид$/","/^видно$/","/^вкратце$/","/^вкупе$/","/^вместо$/","/^вне$/","/^внешне$/","/^вниз$/","/^внизу$/","/^вновь$/","/^внутри$/","/^внутрь$/","/^во$/","/^во время$/","/^вовне$/","/^вовсе$/","/^вовсю$/","/^во-первых$/","/^воз$/","/^возле$/","/^воочию$/","/^вопреки$/","/^вот$/","/^впредь$/","/^в-пятых$/","/^вровень$/","/^врознь$/","/^врозь$/","/^вряд ли$/","/^в-седьмых$/","/^все$/","/^всего$/","/^все-таки$/","/^вслед$/","/^всплошную$/","/^вспять$/","/^всюду$/","/^в-третьих$/","/^в-шестых$/","/^вы$/","/^выше$/","/^где$/","/^где-либо$/","/^где-нибудь$/","/^где-то$/","/^да$/","/^дабы$/","/^далее$/","/^де$/","/^для$/","/^до$/","/^другие$/","/^других$/","/^его$/","/^едва$/","/^едва-едва$/","/^ее$/","/^еле$/","/^если$/","/^есть$/","/^еще$/","/^ж$/","/^же$/","/^за$/","/^заключается$/","/^зато$/","/^зачем$/","/^зачем-либо$/","/^зачем-нибудь$/","/^зачем-то$/","/^и$/","/^из$/","/^из-за$/","/^или$/","/^имеющее$/","/^имеющие$/","/^имеющий$/","/^имеющим$/","/^иначе$/","/^итого$/","/^их$/","/^к$/","/^как$/","/^как-либо$/","/^как-нибудь$/","/^какой$/","/^какой-то$/","/^как-то$/","/^кверху$/","/^ко$/","/^когда$/","/^когда-либо$/","/^когда-нибудь$/","/^когда-то$/","/^кое$/","/^кое-где$/","/^кое-как$/","/^кое-какой$/","/^кое-когда$/","/^кое-кто$/","/^кое-куда$/","/^кое-откуда$/","/^кое-чей$/","/^кое-что$/","/^который$/","/^который$/","/^который-либо$/","/^который-нибудь$/","/^кто-либо$/","/^кто-нибудь$/","/^кто-то$/","/^куда$/","/^куда-либо$/","/^куда-нибудь$/","/^куда-то$/","/^ли$/","/^либо$/","/^ль$/","/^мало$/","/^меж$/","/^мимо$/","/^может$/","/^можно$/","/^мы$/","/^на$/","/^над$/","/^надо$/","/^намного$/","/^наш$/","/^не$/","/^него$/","/^некий$/","/^некогда$/","/^некого$/","/^некто$/","/^нем$/","/^немало$/","/^немного$/","/^несколько$/","/^нет$/","/^нечего$/","/^ни$/","/^нигде$/","/^никакой$/","/^никогда$/","/^никто$/","/^никуда$/","/^ним$/","/^нисколько$/","/^ничей$/","/^ничто$/","/^но$/","/^о$/","/^об$/","/^обе$/","/^обо$/","/^однако$/","/^около$/","/^он$/","/^она$/","/^они$/","/^опять$/","/^особенно$/","/^от$/","/^от$/","/^откуда$/","/^откуда-либо$/","/^откуда-нибудь$/","/^откуда-то$/","/^относится$/","/^относятся$/","/^отнюдь$/","/^ото$/","/^отсюда$/","/^оттого$/","/^по$/","/^под$/","/^подле$/","/^подо$/","/^подчас$/","/^позднее$/","/^позже$/","/^пока$/","/^полно$/","/^помимо$/","/^поначалу$/","/^понемногу$/","/^по-прежнему$/","/^порой$/","/^по-своему$/","/^поскольку$/","/^после$/","/^посредине$/","/^постольку$/","/^потом$/","/^потому$/","/^почему$/","/^почему-либо$/","/^почему-нибудь$/","/^почему-то$/","/^почти$/","/^поэтому$/","/^пред$/","/^предо$/","/^представляет$/","/^прежде$/","/^при$/","/^про$/","/^просто$/","/^против$/","/^прямо$/","/^путем$/","/^путем$/","/^ради$/","/^разве$/","/^разом$/","/^ранее$/","/^с$/","/^себе$/","/^сквозь$/","/^сколь$/","/^сколько$/","/^сколько-нибудь$/","/^сколько-то$/","/^сложно$/","/^служащее$/","/^служащие$/","/^служащим$/","/^служит$/","/^сначала$/","/^снова$/","/^со$/","/^собой$/","/^совсем$/","/^содержащее$/","/^содержащий$/","/^содержит$/","/^сообразно$/","/^сперва$/","/^спереди$/","/^сразу$/","/^среди$/","/^средь$/","/^столь$/","/^столько$/","/^та$/","/^так$/","/^такой$/","/^так как$/","/^так что$/","/^также$/","/^там$/","/^то$/","/^тогда$/","/^того$/","/^тоже$/","/^только$/","/^том$/","/^тот$/","/^тут$/","/^у$/","/^уже$/","/^хоть$/","/^хотя$/","/^чего$/","/^чего-то$/","/^чей$/","/^чей-либо$/","/^чей-нибудь$/","/^чей-то$/","/^чем$/","/^через$/","/^что$/","/^что-либо$/","/^что-нибудь$/","/^что-то$/","/^чтоб$/","/^чтобы$/","/^чуть$/","/^чье-либо$/","/^чье-нибудь$/","/^чье-то$/","/^эти$/","/^этим$/","/^этих$/","/^это$/","/^этом$/","/^я$/","/^этот$/","/^оно$/");
       $page_keywords = $config['global_keywords'];
       $page_description = $config['site_desc'];
       
       if (!empty($post_text))
       {
          $post_text = utf8_strtolower(strip_tags($post_text));
          $post_text = explode(" ", $post_text);
          if ($config['use_dynamic_keywords'])
          {
             $count = 0;
             $page_keywords = array();
             foreach ($post_text as $word)
             {
                $word = str_replace("'", '', $word);
                $word = eregi_replace("\n{1,}|\r{1,}|\n\r{1,}","",$word);
                $word = preg_replace($stopwords,"",$word);
                if (strlen($word) > 3)
                {
                   if (!empty($page_keywords) && in_array($word, $page_keywords))
                   {
                      continue;
                   }
                   $page_keywords[] = $word;
                   $count++;
                }
                
                if ($count == $config['keyword_word_count'])
                {
                   break;
                }
             }
             $config_keywords = ($config['append_global_keywords']) ? $config['global_keywords'] : '';
             $page_keywords = ($config['append_keywords_first']) ? $config_keywords . ', ' . implode(', ', $page_keywords) : implode(', ', $page_keywords) . ', ' . $config_keywords;
          }
          
          if ($config['use_dynamic_description'])
          {
             $count = 0;
             $page_description = '';
             foreach ($post_text as $word)
             {
                $word = str_replace("'", '', $word);
                $word = eregi_replace("\n{1,}|\r{1,}|\n\r{1,}","",$word);

                $page_description .= $word . ' ';
                $count++;
                
                if ($count == $config['description_word_count'])
                {
                   break;
                }
             }
          }
       }
       
И после этого мод корректно заработает

Руссификация
Открыть language/ru/acp/board.php и найти

Код: Выделить всё

    'WARNINGS_EXPIRE_EXPLAIN'
));
Добавить после

Код: Выделить всё

// Advanced Meta Tags MOD
$lang = array_merge($lang, array(
    'APPEND_GLOBAL_KEYWORDS'                => 'Глобальные ключевые слова ',
    'APPEND_GLOBAL_KEYWORDS_EXPLAIN'=> 'Добавить глобальные ключевые слова к сгенерированным',
    'APPEND_KEYWORDS_FIRST'                 => 'Место глобальных ключевых слов',
    'APPEND_KEYWORDS_FIRST_EXPLAIN' => 'Да - Глобальные перед сгенерированными,<br />Нет - Глобальные после сгенерированных',
    'DESCRIPTION_WORD_COUNT'                => 'Лимит сгенерированных слов',
    'DYNAMIC_DESCRIPTION'                   => 'Включить в страницу сгенерированное описание',
    'DYNAMIC_KEYWORDS'                              => 'Включить сгенерированные слова',
    'GLOBAL_KEYWORDS'                               => 'Глобальные ключевые слова',
    'KEYWORD_WORD_COUNT'                    => 'Лимит слов в описании',
));
Для стиля на любой верстке
Открыть /styles/ваш стиль/overall_header.html и найти

Код: Выделить всё

<meta name="keywords" content="" />
<meta name="description" content="" />
Заменить на

Код: Выделить всё

<meta name="keywords" content="{PAGE_KEYWORDS}" />
<meta name="description" content="{PAGE_DESCRIPTION}" />
Настраиваем мод на свой вкус - Админка - Настройки Форума и больше не паримся насчет метатегов
Шаг 2. Заголовки - Просмотр темы, Просмотр форума, Главная страница.
Стандартные заголовки или тайтлы (от названия тега <title>) форума ничего общего с сео-оптимизацией не имеют. Лишние слова, такие как «Просмотр форума», «Просмотр темы», «Главная», и притом одинаковые для всех тем и разделов, мы постараемся убрать в этом шаге.

Избавляемся от «Главная страница»
Открываем index.php и находим

Код: Выделить всё

page_header($user->lang['INDEX']);
Заменяем на

Код: Выделить всё

page_header();
Избавляемся от «Просмотр форума»
Открываем viewforum.php и находим

Код: Выделить всё

page_header($user->lang['VIEW_FORUM'] . ' - ' . $forum_data['forum_name'], true, $forum_id);
Заменяем на

Код: Выделить всё

page_header($forum_data['forum_name'], true, $forum_id);
Избавляемся от «Просмотр темы»
Открываем viewtopic.php и находим

Код: Выделить всё

page_header($user->lang['VIEW_TOPIC'] . ' - ' . $topic_data['topic_title'], true, $forum_id);
Заменяем на

Код: Выделить всё

page_header($topic_data['topic_title'], true, $forum_id);
Если установлен мод, описанный выше,то данная строка должна иметь вид(после правок)

Код: Выделить всё

page_header($topic_data['topic_title'], true, $first_post_text, $forum_id);
Шаг 3. Оптимизация alt-ов вложенных изображений и картинок
Те, кто знаком с тем, чем хорош валидный код, знают наверняка, что любому изображению в коде должен быть присвоен тег (атрибут) alt, аналог title для ссылок. В phpBB3 присутствует такая наработка, но в alt вложенных изображений выводится само имя картинки. А так как в большинстве своем народ, прилепляющий изображения оригинальностью не блещет, то в alt попадают такие имена картинок как 1.png или безымянный.png. Вообщем логику вы поняли, с помощью таких alt-ов повысить позиции в выдаче ( допустим по поиску картинок) не получится. Надо дорабатывать, а я вам предложу способ как это сделать. На мой взгляд лучше в альт выводить имя темы, в которой расположена картинка.
Для примера вот неоптимизированный alt
неоптимизированный alt в phpBB3
неоптимизированный alt в phpBB3
А вот alt после приведенных ниже правок, различия очевидны
оптимизированный alt в phpBB3
оптимизированный alt в phpBB3
Итак открываем includes/functions_content.php и находим

Код: Выделить всё

  if (!sizeof($attachments))
    {
        return;
    }

    global $template, $cache, $user;
    global $extensions, $config, $phpbb_root_path, $phpEx; 
Вставляем после найденного

Код: Выделить всё

  global $topic_data; 
Находим

Код: Выделить всё

  'COMMENT'            => $comment, 
И вставляем после

Код: Выделить всё

 'TOPIC_TITLE'        => censor_text($topic_data['topic_title']), 
Открываем styles/ваш стиль/template/attachment.html и 2 раза находим код

Код: Выделить всё

alt="{_file.DOWNLOAD_NAME}"
Заменяем его на

Код: Выделить всё

alt="{_file.TOPIC_TITLE}"
Вот и все правки и оптимизация alt-ов вложенных изображений
Шаг 4. Семантическая разметка
1.
2.
Шаг 5. Добавляем номер страницы в тайтл
Выше я описывал способ как убрать из тайтла страницы текст Просмотр форума и Просмотр Темы, если так подумать, то теперь у вас получается, к примеру, в подфоруме есть 3 страницы с темами, но они имеют одинаковый тайтл, а так же если в теме более 1 страницы сообщений, то эти страницы так же имеют одинковый тайтл. Надо это исправить, добавим после имени подфорума (или названия темы) текст - Страница N, где N - число, порядковый номер страницы.
Для страницы просмотра подфорумов, открыть viewforum.php и найти строку начинающуюся с page_header и заменить всю строку на

Код: Выделить всё

$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( $start / $config['topics_per_page'] ) + 1 ) : '';
page_header($forum_data['forum_name'] . $extra_title, true, $forum_id); 
Для страницы просмотра темы, открыть viewtopic.php и найти строку начинающуюся с page_header и заменить всю строку на

Код: Выделить всё

$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor ($start / $config['posts_per_page'] ) + 1 ) : '';
page_header($topic_data['topic_title'] . $extra_title, true, $forum_id); 
Если у вас установлен мод , то нужно еще найти строку

Код: Выделить всё

'TOPIC_SEO_TITLE'	=> (isset($topic_data['topic_seo_title'])) ? $topic_data['topic_seo_title'] : '',
Вставить после найденного

Код: Выделить всё

'PAGENUM'	=> ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor ($start / $config['posts_per_page'] ) + 1 ) : '',
Открыть styles/Ваш стиль/template/overall_header.html и найти

Код: Выделить всё

{TOPIC_SEO_TITLE}
Вставить после найденного

Код: Выделить всё

{PAGENUM}
Так же нужно открыть language/ru/common.php и найти

Код: Выделить всё

'CHANGING_PROFILE'			=> 'Изменение настроек профиля',
Вставить после найденного

Код: Выделить всё

'Page' => 'Страница ',
Шаг 6. Убираем имя форума со страницы просмотра подфорумов (viewforum.php)
На досуге посетила одна мысль - а зачем нам вообще отображение имени форума в тайтле страницы просмотра подфорумов (viewforum.php) ??? Там обычно идет (на неоптимизированном форуме) так - Просмотр форума - Имя подфорума(раздела) - Имя форума, после оптимизации, описанной выше у вас должно получиться так - Имя подфорума(раздела) - Имя форума, а после правок, описанных ниже, у вас должно получиться так - - Имя подфорума(раздела). На мой взгляд так более красиво выглядит, вообщем если заинтересовало, то открываем шаблон overall_header.html вашего стиля и находим Вставляем после найденного

Код: Выделить всё

<!-- IF SCRIPT_NAME == "viewforum" -->{PAGE_TITLE}<!-- ELSE -->
Находим

Код: Выделить всё

</title>
Вставляем перед найденным

Код: Выделить всё

<!-- ENDIF -->
Чистим кеш и вуаля :-0=)
Шаг 7. Открываем для индексации картинки-вложения
Внимание !!! Данный метод конфликтует с !!!
Наверняка, многие из вас думали что разрешив ботам скачивать вложения, эти самые боты будут индексировать картинки-вложения. Не тут то было, фигушки. Давайте решим это недоразумение, пусть в индекс и картинки с форума попадают. Для начала открываем корневой .htaccess и добавляем в него

Код: Выделить всё

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^fpit/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&t=1 [NC]
RewriteRule ^fpin/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&mode=view [NC]
RewriteRule ^fpid/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
</IfModule>
Потом открываем download\file.php и находим

Код: Выделить всё

if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && ((strpos(strtolower($user->browser), 'msie') !== false) && (strpos(strtolower($user->browser), 'msie 8.0') === false)))
{
	wrap_img_in_html(append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $attachment['attach_id']), $attachment['real_filename']);
	file_gc();
}
Заменяем найденное на

Код: Выделить всё

if ($display_cat == ATTACHMENT_CATEGORY_IMAGE && $mode === 'view' && (strpos($attachment['mimetype'], 'image') === 0) && ((strpos(strtolower($user->browser), 'msie') !== false) && (strpos(strtolower($user->browser), 'msie 8.0') === false)))
{
	send_file_to_browser($attachment, $config['upload_path'], $display_cat);
	file_gc();
}
Находим

Код: Выделить всё

if (empty($user->browser) || (!$is_ie8 && (strpos(strtolower($user->browser), 'msie') !== false)))
		{
			header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
			if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
			{
				header('expires: -1');
			}
		}
		else
		{
			header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
			if ($is_ie8 && (strpos($attachment['mimetype'], 'image') !== 0))
			{
				header('X-Download-Options: noopen');
			}
		}
И заменяем найденное на

Код: Выделить всё

		if (empty($user->browser) || (!$is_ie8 && (strpos(strtolower($user->browser), 'msie') !== false)))
		{
			if (false === strpos($attachment['mimetype'], 'image'))
			header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
			if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false))
			{
				header('expires: -1');
			}
		}
		else
		{
			if (false === strpos($attachment['mimetype'], 'image'))
			header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename'])));
			if ($is_ie8 && (strpos($attachment['mimetype'], 'image') !== 0))
			{
				header('X-Download-Options: noopen');
			}
		}

Открываем файл includes/functions_content.php и находим

Код: Выделить всё

function parse_attachments($forum_id, &$message, &$attachments, &$update_count, $preview = false)
{
	if (!sizeof($attachments))
	{
		return;
	}

	global $template, $cache, $user;
Заменяем найденное на

Код: Выделить всё

function parse_attachments($forum_id, &$message, &$attachments, &$update_count, $preview = false)
{
	if (!sizeof($attachments))
	{
		return;
	}

	global $template, $cache, $user, $topic_data;
Находим

Код: Выделить всё

switch ($display_cat)
			{
				// Images
				case ATTACHMENT_CATEGORY_IMAGE:
					$l_downloaded_viewed = 'VIEWED_COUNT';
					$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
					$download_link .= '&mode=view';

					$block_array += array(
						'S_IMAGE'		=> true,
						'U_INLINE_LINK'		=> $inline_link,
					);

					$update_count[] = $attachment['attach_id'];
				break;

				// Images, but display Thumbnail
				case ATTACHMENT_CATEGORY_THUMB:
					$l_downloaded_viewed = 'VIEWED_COUNT';
					$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&t=1');
					$download_link .= '&mode=view';

					$block_array += array(
						'S_THUMBNAIL'		=> true,
						'THUMB_IMAGE'		=> $thumbnail_link,
					);

					$update_count[] = $attachment['attach_id'];
				break;
И заменяем найденное на

Код: Выделить всё

	switch ($display_cat)
			{
				// Images
				case ATTACHMENT_CATEGORY_IMAGE:
					$l_downloaded_viewed = 'VIEWED_COUNT';
					$inline_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);
					$download_link .= '&mode=view';

					if (isset($topic_data) && isset($topic_data['topic_title']))
					{
						$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						$inline_link 	= "/fpid/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}

					$block_array += array(
						'S_IMAGE'		=> true,
						'U_INLINE_LINK'		=> $inline_link,
					);

					$update_count[] = $attachment['attach_id'];
				break;

				// Images, but display Thumbnail
				case ATTACHMENT_CATEGORY_THUMB:
					$l_downloaded_viewed = 'VIEWED_COUNT';
					$thumbnail_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id'] . '&t=1');
					$download_link .= '&mode=view';

					if (isset($topic_data) && isset($topic_data['topic_title']))
					{
						$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						
						$thumbnail_link = "/fpit/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}


					$block_array += array(
						'S_THUMBNAIL'		=> true,
						'THUMB_IMAGE'		=> $thumbnail_link,
					);

					$update_count[] = $attachment['attach_id'];
				break;
Все, теперь картинки будут видеть боты, кстати, после этого проверьте нормально ли отображаются картинки-вложения
Вот впринципе и все, форум более менее оптимизирован. Успехов в администрировании :(
Последний раз редактировалось DeaDRoMeO 30 ноя 2011, 20:28, всего редактировалось 12 раз.
Причина: Добавлена информация о решении проблем с модом Advanced Meta Tags ( проблема с не выводом русских ключевиков)
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#1
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Зарезервировано :hi_hi_hi:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#2
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Зарезервировано
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#3
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

Перед установкой сохранять , что то надо....
Просто когда я версию обновлял 3.0.8 на 3.0.9 , то все файлы на свой комп сохранял и дапм с помощью программы вашей делал, а после обновления надо эту процедуру делать...если надо, то старые записи удалить наверное надо.
#4
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Мод впринципе проверенный мной, но перед установкой любого мода следует сделать дамп БД и копию редактируемых файлов. Делать полную копию всех файлов форума можно и не делать, это лишнее.
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#5
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

DeaDRoMeO[/url] » [url=http://hello-vitebsk.ru/viewtopic.php?p=4236#p4236]Сегодня, 11:21 писал(а):следует сделать дамп БД и копию редактируемых файлов. Делать полную копию всех файлов форума можно и не делать, это лишнее.
А копию редактируемых файлов, это тех файлов, которые связаны и указаны в инструкции установки мода. :smile:
#6
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Да, правильно думаете :smile:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#7
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

А вот этот запрос до или после установки делать - SQL(запрос), я так понял у вас в прочитанном, что Дополнительные инструкции после установки кодов, надо делать.., а то я сделал до правки кодов по инструкции и у меня ошибку показало, и теперь я понимаю, что этот запрос надо для проверки установки мода делать.. правильно я понял или что?
#8
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Запрос к БД создает необходимые поля и таблицы для мода, чтобы его конфиги и значения могли сохраняться, а вы могли его через админку регулировать.
Запрос можно проводить как до, так и после установки мода.
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#9
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

Я сделал запрос SQL(запрос) до установки, и у меня показал какую то ошибку...
Может я не тот скопировал код и запросил:
в инструкции есть SQL и ниже его Код:Выделить все......
этот код копирую и запрашиваю...правильно или нет?
#10
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Правильно, скопируйте сюда текст ошибки :smile:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#11
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

не знаю что делается, теперь на сайт заходишь, он вот,что пишет:
General Error
SQL ERROR [ mysqli ]

Access denied for user 'remontm_forum'@'212.193.235.235' (using password: YES) [1045]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
#12
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

Ошибка указывает на не совпадение данных в файле config.php , проверьте правильны ли в нем указаны пароль, логин, имя базы данных и хост :smile:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#13
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

Понял я пароль поменял и он не совпадает с файлом config.php, сейчас поменяю через ftp пароль в config.php и все заработает.
#14
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

mixail[/url] » [url=http://hello-vitebsk.ru/viewtopic.php?p=4266#p4266]1 минуту назад писал(а):Понял я пароль поменял и он не совпадает с файлом config.php, сейчас поменяю через ftp пароль в config.php и все заработает.
Запомните на будущее, что пароль лучше сразу сложный делать, и в процессе работы форума его не менять :smile:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#15
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

Век живи и век учись, почему у меня так получилось....
Я не мог войти в PHPMyAdmin, брал пароль из файла config.php, а оно что то не открывалось и все, я зашел в хостинг в базу данных и изменил пароль, потом он у меня соответственно пришел новый пароль куда надо, я его при входе в PHPMyAdmin установил то есть новый пароль, а потом я сделал запрос SQL с кодом, у меня показало ошибку потому, что в файле config.php остался старый пароль, вот и вся история...теперь все заработало...я уже закипаю
#16
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

С кем не бывает, со временем наловчитесь моды без ошибок ставить, это дело опыта :smile:
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#17
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

И все равно, что то не то, беру новый пароль который мне прислали, который я сейчас установил в config.php и сайт после этого заработал, все нормально, ставлю пароль сейчас его в PHPMyAdmin и он мне пишет вот, что:
phpMyAdmin - Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Я вот, что думаю у меня в корне сайта закачана папка sxd новой программы с вашего форума для дампа, из за этого не может быть не согласованность, конфликтует с PHPMyAdmin.
#18
Аватара пользователя
mixail
Свой на все 100
Свой на все 100
Сообщения: 693
Стаж: 9 лет 4 месяца
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение mixail »

Сделал запрос и вот, что пишет:
Ошибка
SQL-запрос:

INSERT INTO phpbb_config( config_name, config_value )
VALUES (

'description_word_count', 150
);

Ответ MySQL:

#1046 - No database selected
#19
Аватара пользователя
DeaDRoMeO
Старожил Форума
Старожил Форума
Сообщения: 16747
Стаж: 10 лет 1 месяц
Откуда: Витебск
Контактная информация:

Сео-оптимизация phpbb3

  • Цитата

Сообщение DeaDRoMeO »

mixail[/url] » [url=http://hello-vitebsk.ru/viewtopic.php?p=4271#p4271]Вчера, 23:38 писал(а):Сделал запрос и вот, что пишет:
Ошибка
SQL-запрос:

INSERT INTO phpbb_config( config_name, config_value )
VALUES (

'description_word_count', 150
);

Ответ MySQL:

#1046 - No database selected
Я вам писал чтобы вы, как зайдете в phpMyAdmin нажмите на имя своей базы данных слева, вам пишет что не выбрана база данных для запроса
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
#20
Ответить