вопрос
Как вывести похожие новости картинками?
Я знаю что везде много хаков и модулей, но хотелось бы на вашем сайте ответ узнать, может вообще посоветуете не ставить? это очень удобный вывод, давно хочу так сделать. версия движка 9.3
Я знаю что везде много хаков и модулей, но хотелось бы на вашем сайте ответ узнать, может вообще посоветуете не ставить? это очень удобный вывод, давно хочу так сделать. версия движка 9.3
Открываем engine/modules/show.full.php
Находим:
заменяем на
Далее ищем:
Заменяем на:
Настраиваем вывод в CSS по своему усмотрению, где relatedblock - класс блока с новостями, news - класс блока, в котором находится ссылка-картинка.
Не забываем:
1 - Кинуть в папку с шаблоном картинку-заглушку (на случай отсутствия картинки в новости) с именем nothumb.gif
2 - Создать в папке uploads папку relatednews и выставить на неё CHMOD 777
Всё.
Находим:
$db->query( "SELECT id, title, date, category, alt_name, flag FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1'" . $where_date . " LIMIT " . $config['related_number'] );
заменяем на
$db->query( "SELECT id, title, short_story, date, category, alt_name, flag FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1'" . $where_date . " LIMIT " . $config['related_number'] );
Далее ищем:
$buffer .= "<li><a href=\"" . $full_link . "\">" . stripslashes( $related['title'] ) . "</a></li>";
Заменяем на:
//Настраиваем размер картинки похожих новостей
$rel_img_w = 100; //Ширина
$rel_img_h = 120; //Высота
preg_match("#<img.+?src=['\"](.+?)['\"]#is", $related['short_story'], $match);
if($match[1]){
$rel_dir = ROOT_DIR . '/uploads/relatednews/';
$rel_file_name = strtolower ( basename ( $match[1] ));
$rel_file_name = $rel_img_w."x".$rel_img_h."_".$rel_file_name;
if (!file_exists($rel_dir.$rel_file_name)) {
require_once ENGINE_DIR . '/classes/thumb.class.php';
$thumb = new thumbnail( $match[1] );
$thumb->crop( $rel_img_w, $rel_img_h );
$thumb->save( $rel_dir . $rel_file_name );
}
$image_related = '<img src="'.$config['http_home_url']."uploads/relatednews/".$rel_file_name.'" alt="'.$related['title'].'" />';
} else $image_related = '<img src="{THEME}/images/nothumb.gif" alt="'.$related['title'].'" width="'.$rel_img_w.'" height="'.$rel_img_h.'" />'; //Если в новости нет картинки - будет выводиться "заглушка"
$related['short_story'] = preg_replace("/\[attachment=[[:digit:]]*\]/si","",stripslashes($related['short_story']));
$related['short_story'] = preg_replace("/<!--*-->/si","",$related['short_story']);
$related['short_story'] = strip_tags(str_replace(array('<br>','<br />')," ",$related['short_story'])); //-- замена переносов на пробелы
if( strlen( $related['short_story'] ) > 100 ) $related['short_story'] = substr( $related['short_story'], 0, 100 ) . " ..."; //--обрезка содержания до 100 символов
$related_adv .= '<div class="news_rel"><a href="'.$full_link.'" title="'.$related['title'].'-'.$related['short_story'].'">'.$image_related.'</a></div>';
$adv_related = '<div class="relatedblock">'.$related_adv.'</div>';
$buffer = $adv_related;
/**/
Настраиваем вывод в CSS по своему усмотрению, где relatedblock - класс блока с новостями, news - класс блока, в котором находится ссылка-картинка.
Не забываем:
1 - Кинуть в папку с шаблоном картинку-заглушку (на случай отсутствия картинки в новости) с именем nothumb.gif
2 - Создать в папке uploads папку relatednews и выставить на неё CHMOD 777
Всё.