Данный хак позволяет выводит теги под каждой новостью.
Теги - по сути своей - это краткое описание новости словами или словосочетаниями. В тегах не должно быть конкретики, но в то же время, они должны наиболее близко описывать предмет новости.
Идеальными словами-тегами для новости есть синонимы названия или само название. Следует исключать в тегах слова, которые можно отнести к любой новости (местоимения, предлоги и т.д.).
Так же не желательно в теги включать номер версии софта, размер файла инсталляции и другие конкретизирующие моменты.
Хотя, опять же, тут все зависит от вебмастера, от цели создания тегов и метода раскрутки новости.
Возможности хака:
Из заголовка новости берутся слова (исключены цифры и спецсимволы), длина которых больше 3 символов и формируется строка тэгов.
Установка:
Открываем файл modules/news/index.php
Находим функцию function news() {
Далее находим строку
if ($sbest && $confn['newrate']) {
перед ней вставляем
$tags = $_GET['tags'];
Далее находим
elseif ($scat) {
$caton = 1;
$field = "cat=$scat&";
list($cat_title, $cat_description) = $db->sql_fetchrow($db->sql_query("SELECT title, description FROM ".$prefix."_categories WHERE id='$scat'"));
$order = "WHERE catid='$scat' AND time <= now() AND status!='0' ".$lang." ORDER BY time DESC";
$ordernum = "catid='$scat' AND time <= now() AND status!='0'";
$pagetitle = "".$conf['defis']." "._NEWS." ".$conf['defis']." $cat_title";
}
$caton = 1;
$field = "cat=$scat&";
list($cat_title, $cat_description) = $db->sql_fetchrow($db->sql_query("SELECT title, description FROM ".$prefix."_categories WHERE id='$scat'"));
$order = "WHERE catid='$scat' AND time <= now() AND status!='0' ".$lang." ORDER BY time DESC";
$ordernum = "catid='$scat' AND time <= now() AND status!='0'";
$pagetitle = "".$conf['defis']." "._NEWS." ".$conf['defis']." $cat_title";
}
После вставляем
elseif ($tags) {
$caton = 1;
$field = "tags=$tags&";
$order = "WHERE s.status!='0' AND (s.title LIKE '%".$tags."%' or s.hometext LIKE '%".$tags."%' ) ORDER BY s.time DESC";
$ordernum = "status!='0' AND ( title LIKE '%".$tags."%' or hometext LIKE '%".$tags."%' ) ";
$pagetitle = $conf['defis']." "._NEWS." ".$conf['defis']." $tags ";
$news_logo = "Найдено по тегу ".$tags."";
}
$caton = 1;
$field = "tags=$tags&";
$order = "WHERE s.status!='0' AND (s.title LIKE '%".$tags."%' or s.hometext LIKE '%".$tags."%' ) ORDER BY s.time DESC";
$ordernum = "status!='0' AND ( title LIKE '%".$tags."%' or hometext LIKE '%".$tags."%' ) ";
$pagetitle = $conf['defis']." "._NEWS." ".$conf['defis']." $tags ";
$news_logo = "Найдено по тегу ".$tags."";
}
После
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);
$str_tag = '';
foreach ( $arr_tags as $tvalue ) {
$tvalue = trim($tvalue);
preg_match('/[a-zA-Zа-яА-Я]{4,}/', $tvalue, $t_v);
if ($t_v[0]) {
$str_tag .= "<a href=\"index.php?name=News&tags=".$t_v[0]."\" title=\"".$t_v[0]."\">".$t_v[0]."</a>,";
}
}
$tag= substr($str_tag, 0, strlen($str_tag)-1);
$str_tag = '';
foreach ( $arr_tags as $tvalue ) {
$tvalue = trim($tvalue);
preg_match('/[a-zA-Zа-яА-Я]{4,}/', $tvalue, $t_v);
if ($t_v[0]) {
$str_tag .= "<a href=\"index.php?name=News&tags=".$t_v[0]."\" title=\"".$t_v[0]."\">".$t_v[0]."</a>,";
}
}
$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);