- Совместимость
- требуется адаптация
- Изменения в БД
- требуются
- Автор
- Gemini_13
- Общественное достояние
- нет
Описание: генерирует мета-теги ключевых слов (keywords) и описания (description). Настройка производится в разделе: Админка -> Модификации -> Конфигурация.
- Инструкция по установке
-
PHP:
# ---- [ SQL ] ------------------- INSERT INTO bb_config VALUES ('use_dynamic_description', 1); INSERT INTO bb_config VALUES ('use_dynamic_keywords', 1); INSERT INTO bb_config VALUES ('global_description', 'ваше глобальное мета-описание'); INSERT INTO bb_config VALUES ('global_keywords', 'подставьте, сюда, свои, ключевые, слова'); INSERT INTO bb_config VALUES ('append_global_description', 1); INSERT INTO bb_config VALUES ('append_global_keywords', 1); INSERT INTO bb_config VALUES ('append_keywords_first', 0); INSERT INTO bb_config VALUES ('description_word_count', 150); INSERT INTO bb_config VALUES ('keyword_word_count', 50); # ---- [ Открыть ] ------------------- viewtopic.php # ---- [ Найти ] ------------------- for($i = 0; $i < $total_posts; $i++) # ---- [ Вставить до ] ------------------- $first_post_text = ''; # ---- [ Найти ] ------------------- $message = get_parsed_post($postrow[$i]); # ---- [ Вставить после ] ------------------- if ($i == 0) { $first_post_text = $message; $post_text = $first_post_text; if (!empty($post_text)) { $post_text = mb_strtolower(strip_tags($post_text),"UTF-8"); $post_text = preg_split("/[\s,.-:]+/", $post_text); if ($bb_cfg['use_dynamic_keywords']) { $count = 0; $rnd_keywords = array(); foreach ($post_text as $word) { $word = str_replace("'", '', $word); if (strlen($word) > 2) { if (!empty($rnd_keywords) && in_array($word, $rnd_keywords)) continue; $rnd_keywords[] = $word; $count++; } if ($count == $bb_cfg['keyword_word_count']) break; } $rnd_keywords = implode(', ', $rnd_keywords); if ($bb_cfg['append_keywords_first']) $rnd_keywords = ', ' . $rnd_keywords; else $rnd_keywords = $rnd_keywords . ', '; } if ($bb_cfg['use_dynamic_description']) { $count = 0; $rnd_description = ''; foreach ($post_text as $word) { $rnd_description .= $word . ' '; $count++; if ($count == $bb_cfg['description_word_count']) break; } } } $template->assign_vars(array( 'RND_DESCRIPTION' => (preg_match('/viewtopic\.php/', $_SERVER['SCRIPT_NAME']) && $bb_cfg['use_dynamic_description']) ? $rnd_description : '', 'RND_KEYWORDS' => (preg_match('/viewtopic\.php/', $_SERVER['SCRIPT_NAME']) && $bb_cfg['use_dynamic_keywords']) ? $rnd_keywords : '', )); } # ---- [ Открыть ] ------------------- admin/admin_board.php # ---- [ Найти ] ------------------- 'SEED_BONUS_USER_REGDATE' => $new['seed_bonus_user_regdate'], # ---- [ Вставить после ] ------------------- 'USE_DYNAMIC_DESCRIPTION' => $new['use_dynamic_description'], 'USE_DYNAMIC_KEYWORDS' => $new['use_dynamic_keywords'], 'GLOBAL_DESCRIPTION' => $new['global_description'], 'GLOBAL_KEYWORDS' => $new['global_keywords'], 'APPEND_GLOBAL_DESCRIPTION' => $new['append_global_description'], 'APPEND_GLOBAL_KEYWORDS' => $new['append_global_keywords'], 'APPEND_KEYWORDS_FIRST' => $new['append_keywords_first'], 'DESCRIPTION_WORD_COUNT' => $new['description_word_count'], 'KEYWORD_WORD_COUNT' => $new['keyword_word_count'], # ---- [ Открыть ] ------------------- includes/page_header.php # ---- [ Найти ] ------------------- // FOR SEO $template->assign_vars(array( # ---- [ Вставить до ] ------------------- $viewtopic_page = (preg_match('/viewtopic\.php/', $_SERVER['SCRIPT_NAME'])) ? true : false; if ($bb_cfg['append_global_description'] || $bb_cfg['use_dynamic_description']) { $global_description = ($bb_cfg['append_global_description']) ? $bb_cfg['global_description'] : ''; $template->assign_vars(array( 'PAGE_DESCRIPTION' => $global_description, 'PAGE_DESCRIPTION_ON' => ($global_description == '' && !$viewtopic_page) ? false : true, )); } if ($bb_cfg['append_global_keywords'] || $bb_cfg['use_dynamic_keywords']) { $global_keywords = ($bb_cfg['append_global_keywords']) ? $bb_cfg['global_keywords'] : ''; $template->assign_vars(array( 'PAGE_KEYWORDS' => $global_keywords, 'PAGE_KEYWORDS_ON' => ($global_keywords == '' && !$viewtopic_page) ? false : true, )); } # ---- [ Найти ] ------------------- 'U_MY_DRAFTS' => "profile.php?mode=viewdraft&u={$userdata['user_id']}", # ---- [ Вставить после ] ------------------- 'VIEWTOPIC_PAGE' => (!$viewtopic_page ) ? true : false, # ---- [ Открыть ] ------------------- language/lang_russian/lang_admin.php # ---- [ Вставить в конец ] ------------------- // Meta Tags $lang['META_TAGS_MOD'] = 'Генератор мета-тегов'; $lang['USE_DYNAMIC_DESCRIPTION'] = 'Включить генерацию мета-описания'; $lang['USE_DYNAMIC_KEYWORDS'] = 'Включить генерацию ключевых слов'; $lang['GLOBAL_DESCRIPTION'] = 'Глобальное мета-описание'; $lang['GLOBAL_KEYWORDS'] = 'Глобальные ключевые слова'; $lang['APPEND_GLOBAL_DESCRIPTION'] = 'Добавлять глобальное мета-описание'; $lang['APPEND_GLOBAL_DESCRIPTION_EXPLAIN'] = 'Добалять глобальное мета-описание к сгенерироанному описанию.'; $lang['APPEND_GLOBAL_KEYWORDS'] = 'Добавлять глобальные ключевые слова'; $lang['APPEND_GLOBAL_KEYWORDS_EXPLAIN'] = 'Добалять глобальные ключевые слова к сгенерироанным ключевым словам.'; $lang['APPEND_KEYWORDS_FIRST'] = 'Позиция размещения глобальных ключевых слов'; $lang['APPEND_KEYWORDS_FIRST_EXPLAIN'] = '"Да" для размещения перед сгенерированными ключевыми словами,<br />"Нет" для размещения после сгенерированных ключевых слов.'; $lang['DESCRIPTION_WORD_COUNT'] = 'Количество ключевых слов в мета-описании'; $lang['KEYWORD_WORD_COUNT'] = 'Количество ключевых слов'; # ---- [ Открыть ] ------------------- templates/admin/admin_board.tpl # ---- [ Найти ] ------------------- <!-- ENDIF / CONFIG_MODS --> # ---- [ Вставить до ] ------------------- <tr class="row3 med"> <td class="bold tCenter" colspan="2">{L_META_TAGS_MOD}</td> </tr> <tr> <td><h4>{L_USE_DYNAMIC_DESCRIPTION}</h4></td> <td> <label><input type="radio" name="use_dynamic_description" value="1" <!-- IF USE_DYNAMIC_DESCRIPTION -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label> <label><input type="radio" name="use_dynamic_description" value="0" <!-- IF not USE_DYNAMIC_DESCRIPTION -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label> </td> </tr> <tr> <td><h4>{L_USE_DYNAMIC_KEYWORDS}</h4></td> <td> <label><input type="radio" name="use_dynamic_keywords" value="1" <!-- IF USE_DYNAMIC_KEYWORDS -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label> <label><input type="radio" name="use_dynamic_keywords" value="0" <!-- IF not USE_DYNAMIC_KEYWORDS -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label> </td> </tr> <tr> <td><h4>{L_GLOBAL_DESCRIPTION}</h4></td> <td><input class="post" type="text" size="40" maxlength="255" name="global_description" value="{GLOBAL_DESCRIPTION}" /></td> </tr> <tr> <td><h4>{L_GLOBAL_KEYWORDS}</h4></td> <td><input class="post" type="text" size="40" maxlength="255" name="global_keywords" value="{GLOBAL_KEYWORDS}" /></td> </tr> <tr> <td><h4>{L_APPEND_GLOBAL_DESCRIPTION}</h4><h6>{L_APPEND_GLOBAL_DESCRIPTION_EXPLAIN}</h6></td> <td> <label><input type="radio" name="append_global_description" value="1" <!-- IF APPEND_GLOBAL_DESCRIPTION -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label> <label><input type="radio" name="append_global_description" value="0" <!-- IF not APPEND_GLOBAL_DESCRIPTION -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label> </td> </tr> <tr> <td><h4>{L_APPEND_GLOBAL_KEYWORDS}</h4><h6>{L_APPEND_GLOBAL_KEYWORDS_EXPLAIN}</h6></td> <td> <label><input type="radio" name="append_global_keywords" value="1" <!-- IF APPEND_GLOBAL_KEYWORDS -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label> <label><input type="radio" name="append_global_keywords" value="0" <!-- IF not APPEND_GLOBAL_KEYWORDS -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label> </td> </tr> <tr> <td><h4>{L_APPEND_KEYWORDS_FIRST}</h4><h6>{L_APPEND_KEYWORDS_FIRST_EXPLAIN}</h6></td> <td> <label><input type="radio" name="append_keywords_first" value="1" <!-- IF APPEND_KEYWORDS_FIRST -->checked="checked"<!-- ENDIF --> />{L_ENABLED}</label> <label><input type="radio" name="append_keywords_first" value="0" <!-- IF not APPEND_KEYWORDS_FIRST -->checked="checked"<!-- ENDIF --> />{L_DISABLED}</label> </td> </tr> <tr> <td><h4>{L_DESCRIPTION_WORD_COUNT}</h4></td> <td><input class="post" type="text" size="3" maxlength="4" name="description_word_count" value="{DESCRIPTION_WORD_COUNT}" /></td> </tr> <tr> <td><h4>{L_KEYWORD_WORD_COUNT}</h4></td> <td><input class="post" type="text" size="3" maxlength="4" name="keyword_word_count" value="{KEYWORD_WORD_COUNT}" /></td> </tr> # ---- [ Открыть ] ------------------- templates/default/page_header.tpl # ---- [ Найти ] ------------------- <head> # ---- [ Вставить после ] ------------------- <!-- IF PAGE_KEYWORDS_ON --> <meta name="keywords" content="<!-- IF $bb_cfg['append_keywords_first'] -->{PAGE_KEYWORDS}{RND_KEYWORDS}<!-- ELSE -->{RND_KEYWORDS}{PAGE_KEYWORDS}<!-- ENDIF -->" /> <!-- ENDIF --> <!-- IF PAGE_DESCRIPTION_ON --> <meta name="description" content="<!-- IF not $bb_cfg['use_dynamic_description'] || VIEWTOPIC_PAGE -->{PAGE_TITLE}<!-- ELSE -->{RND_DESCRIPTION}<!-- ENDIF --> {PAGE_DESCRIPTION}" /> <!-- ENDIF --> # ---- [ Конец ] -------------------