1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Хак mod_newsflash

Тема в разделе "Joomla", создана пользователем plyyyy, 31 июл 2010.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. plyyyy

    plyyyy Постоялец

    Регистр.:
    10 фев 2010
    Сообщения:
    52
    Симпатии:
    2
    Подправил mod_newsflash.
    Когда на странице несколько таких модулей, выводящих новости из одной категории, то в стандартном модуле возможны дубли - так как используется простой рандом.

    файл helper.php
    исправления отмечены восклицательными знаками
    PHP:
    function getList(&$params, &$access)
        {
            global 
    $mainframe;
            
    $db     =& JFactory::getDBO();
            
    $user     =& JFactory::getUser();
            
    $aid    $user->get('aid'0);
            
    $catid     = (int) $params->get('catid'0);
            
    $items     = (int) $params->get('items'0);
            
    $contentConfig    = &JComponentHelper::getParams'com_content' );
            
    $noauth            = !$contentConfig->get('show_noauth');
            
    $date =& JFactory::getDate();
            
    $now $date->toMySQL();
            
    $nullDate $db->getNullDate();
            
    /////////!!!!!!!!!!!!
            
    global $aids_posted;
            if ((!isset(
    $aids_posted)) or (!count($aids_posted)) ) {$aids_posted=array(0);}
            
    ////////!!!!!!!!!!!!
            // query to determine article count
            
    $query 'SELECT a.*,' .
                
    ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
                
    ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug'.
                
    ' FROM #__content AS a' .
                
    ' INNER JOIN #__categories AS cc ON cc.id = a.catid' .
                
    ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
                
    ' WHERE a.state = 1 ' .
                (
    $noauth ' AND a.access <= ' .(int) $aid' AND cc.access <= ' .(int) $aid' AND s.access <= ' .(int) $aid '').
                
    ' AND (a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' ) ' .
                
    ' AND (a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )' .
                
    ' AND cc.id = '. (int) $catid .
                
    ' AND cc.section = s.id' .
                
    ' AND cc.published = 1' .
                
    ' AND s.published = 1' .
                 
    ' AND a.id not in ('.implode(',',$aids_posted).') ORDER BY RAND()';   /////////!!!!!!!!!!!!!
            
    $db->setQuery($query0$items);
            
    $rows $db->loadObjectList();
            
    $aids_posted[] = $rows[0]->id;//!!!!!!!!!!!!!!!
            
    return $rows;
        }
     
Статус темы:
Закрыта.