—————————————————
Название: Advanced Meta Tags v3.0
Автор: Gemini_13 <gemini_13@torba.su>
Описание: Мод генерирует мета-теги ключевых слов (keywords) и описания (description).
Сложность установки: Легкая
Время установки: ~ 5 минут
Адаптирован под версию TPII: R550
Настройка: Админка -> Модификации -> Конфигурация
Файлы к редактированию:
— viewtopic.php
— admin/admin_board.php
— includes/page_header.php
— language/lang_russian/lang_admin.php
— templates/admin/admin_board.tpl
— templates/default/page_header.tpl
—————————————————
Копирование и выкладывание модификаций на сторонних ресурсах без указания ссылки запрещено.
# ---- [ 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' => ($bb_cfg['use_dynamic_description'] && preg_match('/viewtopic\.php/', $_SERVER['SCRIPT_NAME'])) ? $rnd_description : '',
'RND_KEYWORDS' => ($bb_cfg['use_dynamic_keywords'] && preg_match('/viewtopic\.php/', $_SERVER['SCRIPT_NAME'])) ? $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 -->
# ---- [ Конец ] -------------------
12 января, 2014


