Помощь Вывод новости из определенной категории.

Тема в разделе "DLE", создана пользователем -=ГрафТрахало=-, 11 мар 2011.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. -=ГрафТрахало=-

    -=ГрафТрахало=-

    Регистр.:
    10 апр 2008
    Сообщения:
    196
    Симпатии:
    51
    Сабж, понадобилось выводить на главную страницу блок с выводом новости из определенной категории, на просторах инета надыбал такой хак
    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($ttl0$title_length).'..';
    $s_story strip_tags($row['short_story']); $s_story substr($s_story0$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>';

    ?>
    Но он выводит сразу из всех категорий, а мне надо только одну, подскажите как доработать или может смотрю не туда???

    Или может есть подходящая замена? Надо выводить новость из категории (одну новость) рандомно.
     
  2. dronich

    dronich Создатель

    Регистр.:
    7 июл 2010
    Сообщения:
    16
    Симпатии:
    4
    Да в принципе запрос подправить
    $rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",22) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" AND CATEGORY="" ORDER by RAND() LIMIT 0,1');
     
    -=ГрафТрахало=- нравится это.
  3. -=ГрафТрахало=-

    -=ГрафТрахало=-

    Регистр.:
    10 апр 2008
    Сообщения:
    196
    Симпатии:
    51
    Кланиюсь :) :D (жму спасибо)

    Тему можно шлёпнуть!
     
  4. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.019
    Симпатии:
    679
    вообще вывод новостей на главной можно реализовать стандартными средствами: aviable+content, здесь уже не раз обсуждалась эта тема, так поступил на сайте cinemacom_tv - главное правильно настроить шаблоны кратких новостей для главной страницы и все будет сделано, и нафиг не нужны никакие ни хаки ни моды!!! ;)
     
  5. -=ГрафТрахало=-

    -=ГрафТрахало=-

    Регистр.:
    10 апр 2008
    Сообщения:
    196
    Симпатии:
    51
    Да, пришел к такому выводу уже после решения всех проблем...
    переделывать уже нет желания после стольких мучений... и этот отлично работает!
     
  6. Slavutich

    Slavutich Постоялец

    Регистр.:
    29 ноя 2010
    Сообщения:
    116
    Симпатии:
    28
    {custom category="1" template="shortstory" aviable="main" from="0" limit="1" cache="yes"}
     
  7. andre740

    andre740

    Регистр.:
    17 апр 2006
    Сообщения:
    524
    Симпатии:
    156
    То же понадобилось такое, как вывод новости из определенной категории в блок... Сделал как описано выше, только что бы новости не исчезали при уходе с главной:

    Из shortstory.tpl убрал все лишнее и файл назвал shortstory2.tpl

    В main.tpl в блок вставил:

    {custom category="14" template="shortstory2" aviable="global" from="0" limit="5" cache="yes"}


    где

    {custom category="тут-ID-категории" template="тут-сделай-шаблон-вывода" aviable="global" from="0" limit="тут-количество-выводимых-новостей" cache="yes"}

    Все работает прекрасно...
     
Статус темы:
Закрыта.