E
edemka
Прохожие
- Автор темы
- #1
Не так давно мне прислали письмо с просьбой сделать один маленький хак для DLE…
Решил поделиться им со всеми желающими. Сам бы наверно на это и не обратил внимания, так как больше люблю программировать, а не раскручивать сайты. Но люди, которые являются сведущие в этом вопросе, стараются сделать свой сайт максимум удобным и доступным для индексирования поисковиками. Для этого требуется наличие проработанных ключевых слов и описания для каждой из страниц сайта. И этот момент достаточно спорно реализован в движке. К примеру, откроем любую из категорий на сайте и далее нажмём подробнее у любой из статей данной категории. Нажмём просмотреть исходный код страницы и увидим, что в соответствие от содержания статьи сформированы ключевые слова и описание. Это в принципе здорово, за исключением того, как сформированы ключевые слова. Ключевые слова формируются из содержания статьи, а именно из содержания как краткой, так и подробной новости. Формирования ключевых слов происходит путём случайного среза массива, который создаётся из слов краткой и подробной новости, и зачастую данные слова не отражают сути статьи. Более того, я поэкспериментировал и получилось так, что если новость содержит прикреплённый файл, то в ключевых словах вполне может оказаться следующее:
[attachment=3]
Предлагаю следующую структуру ключевых слов для каждой отдельной страницы движка. Ключевые слова статьи будут формироваться из ключевых слов раздела статьи и слов составляющих заголовок новости. Данный метод наиболее полно будет отражать суть ключевых слов, и ваши статьи будут иметь большую тенденцию к индексации и более высоким позициям в поисковиках.
Теперь по коду. Открываем файл engine.php в папке engine и находим в самом конце следующие строки:
if($nam_e) $metatags['title'] .=' » '.$nam_e;
if($titl_e) $metatags['title'] = $titl_e.' » '.$config['home_title'];
после них вставляем следующее:
############################################## Vbif update
if(!empty($titl_e) && !empty($cat_keywords)) {
$mass_key_adm = explode(",", $cat_keywords);
$mass_key_adm_count = count($mass_key_adm);
$key_words_adm = implode(",", $mass_key_adm);
$mass_key_adm_ost = 20 - $mass_key_adm_count;
$mass_key_title = explode(" ",$titl_e);
shuffle($mass_key_title);
if (count($mass_key_title) <= $mass_key_adm_ost) $lim = count($mass_key_title);
else $lim = $mass_key_adm_ost;
$mass_shu_title = array();
for ($m = 0; $m < $lim; $m++) {
$mass_shu_title[] = $mass_key_title[$m];
}
$key_words_tit = implode(",", $mass_shu_title);
$metatags['keywords'] = $key_words_adm.','.$key_words_tit;
}
############################################## Vbif update
Далее открываем файл show.full.php в папке engine/modules и находим в нём следующие строки:
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($row['short_story'].$row['full_story']);
эту строку удаляем и вместо неё вставляем:
################################### Vbif update
$meta_cat_for_id = $row['category'];
$cat_keywords = $cat_info[$row['category']]['keywords'];
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($metatags['title'].$cat_keywords);
################################### Vbif update
На этом всё теперь структура ключевых слов более грамотна.
Решил поделиться им со всеми желающими. Сам бы наверно на это и не обратил внимания, так как больше люблю программировать, а не раскручивать сайты. Но люди, которые являются сведущие в этом вопросе, стараются сделать свой сайт максимум удобным и доступным для индексирования поисковиками. Для этого требуется наличие проработанных ключевых слов и описания для каждой из страниц сайта. И этот момент достаточно спорно реализован в движке. К примеру, откроем любую из категорий на сайте и далее нажмём подробнее у любой из статей данной категории. Нажмём просмотреть исходный код страницы и увидим, что в соответствие от содержания статьи сформированы ключевые слова и описание. Это в принципе здорово, за исключением того, как сформированы ключевые слова. Ключевые слова формируются из содержания статьи, а именно из содержания как краткой, так и подробной новости. Формирования ключевых слов происходит путём случайного среза массива, который создаётся из слов краткой и подробной новости, и зачастую данные слова не отражают сути статьи. Более того, я поэкспериментировал и получилось так, что если новость содержит прикреплённый файл, то в ключевых словах вполне может оказаться следующее:
[attachment=3]
Предлагаю следующую структуру ключевых слов для каждой отдельной страницы движка. Ключевые слова статьи будут формироваться из ключевых слов раздела статьи и слов составляющих заголовок новости. Данный метод наиболее полно будет отражать суть ключевых слов, и ваши статьи будут иметь большую тенденцию к индексации и более высоким позициям в поисковиках.
Теперь по коду. Открываем файл engine.php в папке engine и находим в самом конце следующие строки:
if($nam_e) $metatags['title'] .=' » '.$nam_e;
if($titl_e) $metatags['title'] = $titl_e.' » '.$config['home_title'];
после них вставляем следующее:
############################################## Vbif update
if(!empty($titl_e) && !empty($cat_keywords)) {
$mass_key_adm = explode(",", $cat_keywords);
$mass_key_adm_count = count($mass_key_adm);
$key_words_adm = implode(",", $mass_key_adm);
$mass_key_adm_ost = 20 - $mass_key_adm_count;
$mass_key_title = explode(" ",$titl_e);
shuffle($mass_key_title);
if (count($mass_key_title) <= $mass_key_adm_ost) $lim = count($mass_key_title);
else $lim = $mass_key_adm_ost;
$mass_shu_title = array();
for ($m = 0; $m < $lim; $m++) {
$mass_shu_title[] = $mass_key_title[$m];
}
$key_words_tit = implode(",", $mass_shu_title);
$metatags['keywords'] = $key_words_adm.','.$key_words_tit;
}
############################################## Vbif update
Далее открываем файл show.full.php в папке engine/modules и находим в нём следующие строки:
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($row['short_story'].$row['full_story']);
эту строку удаляем и вместо неё вставляем:
################################### Vbif update
$meta_cat_for_id = $row['category'];
$cat_keywords = $cat_info[$row['category']]['keywords'];
if ($row['keywords'] == '' AND $row['descr'] == '') create_keywords ($metatags['title'].$cat_keywords);
################################### Vbif update
На этом всё теперь структура ключевых слов более грамотна.