• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Популярные новости с картинкой(выводит только одну)

Статус
В этой теме нельзя размещать новые ответы.

yavasilek

Мой дом здесь!
Регистрация
5 Окт 2008
Сообщения
1.199
Реакции
454
Здравствуйте.
Решил допилить для себя мод для вывода топовых новостей с картинкой.
Проблема с кешированием, а именно убирая его - выводит как надо 5ть. Если добавляю кеширование, то кеширует только одну новость.
Код:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
	die( "Hacking attempt!" );
}
$topnews_mod = dle_cache( "topnews_mod", $config['skin'] );
if( !$topnews_mod) {
	$this_month = date( 'Y-m-d H:i:s', $_TIME );
	$db->query( "SELECT id, title, date, alt_name, category, short_story, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,5" );
	while ( $row = $db->get_row()) {
		$row['date'] = strtotime( $row['date'] );
		$row['category'] = intval( $row['category'] );
		if( $config['allow_alt_url'] == "yes") {
			if( $row['flag'] and $config['seo_type']) {
				if( $row['category'] and $config['seo_type'] == 2 ) {
					$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
				else {
					$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
			}
			else {
				$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
			}
		}
		else {
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
		}
		$title = substr( $row['title'], 0, 40 ) . "...";$short_story = substr( strip_tags($row['short_story']), 0, 0 )."...";
		$shortnews = $row['short_story'];
		preg_match_all( '#<img[^>]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total);
		foreach( $total[2] as $image )
		$topnews_mod=('<a href="'.$full_link.'"><table border="0" cellpadding="0" cellspacing="0">
		<tbody><tr>
		<td width="18" background="{THEME}/images/ram/tl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/tm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/tr.png" height="18">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/ml.png">
		</td>
		<td><img align="center" src="'.$image.'" width="235" height="360"></td>
		<td width="18" background="{THEME}/images/ram/mr.png">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/bl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/bm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/br.png" height="18">
		</td>
		</tr>
		</tbody></table>'.$title.'</a>');
		echo $topnews_mod;
		$db->free();
		create_cache( "topnews_mod", $topnews_mod, $config['skin']);
	}
}
else {
	echo $topnews_mod;
}
?>
:nezn:
 
версия дле какая? Как то проверял подобное на 9,0 - работало нормально... на версиях выше не пробовал.
 
версия дле какая? Как то проверял подобное на 9,0 - работало нормально... на версиях выше не пробовал.
9.2 пишет в кеш походу только последнюю популярную, а остальные затирает ...
 
попробуй сделать по аналогии со стандартными топами, изменив только вывод самих новостей:
PHP:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
	die( "Hacking attempt!" );
}
$topnews_mod = dle_cache( "topnews_mod", $config['skin'] );
if( !$topnews_mod === false ) {
	$this_month = date( 'Y-m-d H:i:s', $_TIME );
	$db->query( "SELECT id, title, date, alt_name, category, short_story, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,5" );
	while ( $row = $db->get_row()) {
		$row['date'] = strtotime( $row['date'] );
		$row['category'] = intval( $row['category'] );
		if( $config['allow_alt_url'] == "yes") {
			if( $row['flag'] and $config['seo_type']) {
				if( $row['category'] and $config['seo_type'] == 2 ) {
					$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
				else {
					$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
			}
			else {
				$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
			}
		}
		else {
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
		}
		$title = substr( $row['title'], 0, 40 ) . "...";$short_story = substr( strip_tags($row['short_story']), 0, 0 )."...";
		$shortnews = $row['short_story'];
		preg_match_all( '#<img[^>]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total);
		foreach( $total[2] as $image )
		$topnews_mod=('<a href="'.$full_link.'"><table border="0" cellpadding="0" cellspacing="0">
		<tbody><tr>
		<td width="18" background="{THEME}/images/ram/tl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/tm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/tr.png" height="18">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/ml.png">
		</td>
		<td><img align="center" src="'.$image.'" width="235" height="360"></td>
		<td width="18" background="{THEME}/images/ram/mr.png">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/bl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/bm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/br.png" height="18">
		</td>
		</tr>
		</tbody></table>'.$title.'</a>');
		echo $topnews_mod;
		$db->free();
		create_cache( "topnews_mod", $topnews_mod, $config['skin']);
	}
}
?>
Ещё можешь попробовать удалить в конце этого варианта кода строку
PHP:
echo $topnews_mod;
сам не пробовал, если сработает - напиши :)
 
неее. так вообще нифига нет ))
а если у меня потирать echo $topnews_mod; то тогда как выводить инфу? у меня ведь без шаблона.
 
тогда попробуй использовать *** скрытое содержание ***
этот вариант не подходит, т.к. необходимо модифицировать файлы движки, а я от этого отказался.
Вопрос все еще открыт. Гуру!! Хелп ми:nezn:
 
готовое решение

вот доделал до конца. Сохраняем в файл и инклудим в шаблон
Код:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
	die( "Hacking attempt!" );
}
$topnews_mod_new = dle_cache( "topnews_mod_new", $config['skin'] );
if( $topnews_mod_new === FALSE ) {
	$this_month = date( 'Y-m-d H:i:s', $_TIME );
	$db->query( "SELECT id, title, date, alt_name, category, short_story, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,5" );
	while ( $row = $db->get_row()) {
		$row['date'] = strtotime( $row['date'] );
		$row['category'] = intval( $row['category'] );
		if( $config['allow_alt_url'] == "yes") {
			if( $row['flag'] and $config['seo_type']) {
				if( $row['category'] and $config['seo_type'] == 2 ) {
					$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
				else {
					$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";
				}
			}
			else {
				$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";
			}
		}
		else {
			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];
		}
		$title = substr( $row['title'], 0, 40 ) . "...";$short_story = substr( strip_tags($row['short_story']), 0, 0 )."...";
		$shortnews = $row['short_story'];
		preg_match_all( '#<img[^>]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total);
		foreach( $total[2] as $image )
		$topnews_mod=('<a href="'.$full_link.'"><table border="0" cellpadding="0" cellspacing="0">
		<tbody><tr>
		<td width="18" background="{THEME}/images/ram/tl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/tm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/tr.png" height="18">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/ml.png">
		</td>
		<td><img align="center" src="'.$image.'" width="235" height="360"></td>
		<td width="18" background="{THEME}/images/ram/mr.png">
		</td>
		</tr>
		<tr>
		<td width="18" background="{THEME}/images/ram/bl.png" height="18">
		</td>
		<td background="{THEME}/images/ram/bm.png" height="18">
		</td>
		<td width="18" background="{THEME}/images/ram/br.png" height="18">
		</td>
		</tr>
		</tbody></table>'.$title.'</a>');
		$topnews_mod_new .= $topnews_mod;
	}
	$db->free();
	create_cache( "topnews_mod_new", $topnews_mod_new, $config['skin']);
	echo $topnews_mod_new;
}
else {
	echo $topnews_mod_new;
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху