[img=center alt=title]http://pro-script.ru/uploads/posts/2009-12/thumbs/1261055360_2009-12-17-16-07-14.png[/img]
Данный хак позволяет выводит теги под каждой новостью.
Теги - по сути своей - это краткое описание новости словами или словосочетаниями. В тегах не должно быть конкретики, но в то же время, они должны наиболее близко описывать предмет новости.
Идеальными словами-тегами для новости есть синонимы названия или само название. Следует исключать в тегах слова, которые можно отнести к любой новости (местоимения, предлоги и т.д.).
Так же не желательно в теги включать номер версии софта, размер файла инсталляции и другие конкретизирующие моменты.
Хотя, опять же, тут все зависит от вебмастера, от цели создания тегов и метода раскрутки новости.
Возможности хака:
Из заголовка новости берутся слова (исключены цифры и спецсимволы), длина которых больше 3 символов и формируется строка тэгов.
Установка:
Открываем файл modules/news/index.php
Находим функцию function news() {
Далее находим строку
if ($sbest && $confn['newrate']) {
перед ней вставляем
$tags = $_GET['tags'];
Далее находим
elseif ($scat) {<br />
$caton = 1;<br />
$field = "cat=$scat&";<br />
list($cat_title, $cat_description) = $db->sql_fetchrow($db->sql_query("SELECT title, description FROM ".$prefix."_categories WHERE id='$scat'"));<br />
$order = "WHERE catid='$scat' AND time <= now() AND status!='0' ".$lang." ORDER BY time DESC";<br />
$ordernum = "catid='$scat' AND time <= now() AND status!='0'";<br />
$pagetitle = "".$conf['defis']." "._NEWS." ".$conf['defis']." $cat_title";<br />
}
После вставляем
elseif ($tags) {<br />
$caton = 1;<br />
$field = "tags=$tags&";<br />
$order = "WHERE s.status!='0' AND (s.title LIKE '%".$tags."%' or s.hometext LIKE '%".$tags."%' ) ORDER BY s.time DESC";<br />
$ordernum = "status!='0' AND ( title LIKE '%".$tags."%' or hometext LIKE '%".$tags."%' ) ";<br />
$pagetitle = $conf['defis']." "._NEWS." ".$conf['defis']." $tags ";<br />
$news_logo = "Найдено по тегу ".$tags."";<br />
}
После
while (list($sid, $catid, $aid, $stitle, $formatted, $hometext, $comments, $counter, $acomm, $score, $ratings, $cid, $ctitle, $cdescription, $cimg) = $db->sql_fetchrow($result)) {
Вставляем
$arr_tags = explode(' ', $stitle);<br />
$str_tag = ''; <br />
foreach ( $arr_tags as $tvalue ) {<br />
$tvalue = trim($tvalue);<br />
preg_match('/[a-zA-Zа-яА-Я]{4,}/', $tvalue, $t_v);<br />
if ($t_v[0]) {<br />
$str_tag .= "<a href=\"index.php?name=News&tags=".$t_v[0]."\" title=\"".$t_v[0]."\">".$t_v[0]."</a>,";<br />
}<br />
}<br />
$tag= substr($str_tag, 0, strlen($str_tag)-1);
Далее находим
basic($cid, $cimg, $ctitle, $sid, $title,bb_decode($hometext, $conf['name']), $link, $read, $post, $ndate, $reads, $comm, $arating, $print, $admin);
Заменяем на это
basic($cid, $cimg, $ctitle, $sid, $title, "".bb_decode($hometext, $conf['name']) ."<hr>Теги : ".$tag."", $link, $read, $post, $ndate, $reads, $comm, $arating, $print, $admin);