-=ГрафТрахало=-
Гуру форума
- Регистрация
- 10 Апр 2008
- Сообщения
- 195
- Реакции
- 53
- Автор темы
- #1
Сабж, понадобилось выводить на главную страницу блок с выводом новости из определенной категории, на просторах инета надыбал такой хак
Но он выводит сразу из всех категорий, а мне надо только одну, подскажите как доработать или может смотрю не туда???
Или может есть подходящая замена? Надо выводить новость из категории (одну новость) рандомно.
PHP:
<?php
if(!is_numeric($title_length)) $title_length = 30;
if(!is_numeric($short_story_length)) $short_story_length = 50;
if(!is_numeric($img_maxsize)) $img_maxsize = 80;
$o_block = '<table cellSpacing=0 cellPadding=0 width="100%" border="0"><tr>';
$rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",22) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" ORDER by RAND() LIMIT 0,1');
while ($row = $db->get_row($rr))
{
$ttl = stripslashes($row['title']);
$title_short = substr($ttl, 0, $title_length).'..';
$s_story = strip_tags($row['short_story']); $s_story = substr($s_story, 0, $short_story_length).'..';
preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $row['short_story'], $ps);
if($ps[2])
{
$img_parts = pathinfo($ps[2]);
$img_link = $img_parts['dirname'].'/'.$img_parts['basename'];
$img_info = @getimagesize($img_link);
$img_width = $img_info[0];
$img_height = $img_info[1];
if ($img_width > $img_height)
{
$img_code = '<IMG src="'.$img_link.'" alt="'.$ttl.'" width="'.$img_maxsize.'"/></a>';
} else $img_code = '<a href="'.$full_link.'"><IMG src="'.$img_link.'" alt="'.$ttl.'" height="'.$img_maxsize.'"/></a>';
}
else { $img_code ='<div align="center" class="random_news_news">нет картинки</div>';};
$full_link = $config['http_home_url'].get_url($row['category'])."/".$row['id']."-".$row['alt_name'].".html";
$o_block .= '
<div class="index_block block_zindex">
<ul>
<li class="img">
'.$img_code.'
</li>
<li class="descr">
<div class="inner">
<h2><a href="'.$full_link.'">'.$title_short.'</a></h2>
<p>'.$s_story.'</p>
</div>
</li>
</ul>
</div>';
};
$o_block .= '
</tr>
</table>';
echo '<DIV>'.$o_block.'</DIV>';
?>
Или может есть подходящая замена? Надо выводить новость из категории (одну новость) рандомно.