Новости Joomla

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 2636 Просмотров
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Есть модуль который выводит статьи из определенной категории и формирует список
Но.. нужно чтоб подкатегории он тоже вытягивал.
В данный момент это категория с id=162... но в ней есть еще 4 подкатегории которые нужно тоже включить в этот список
помогите плз! Буду оч благодарен

Код
$query = $db->getQuery(true);
$query->select('id, title, created, introtext ');
$query->from('#__content');
$query->where('catid = 162');
$query->where('state = 1');
$query->order('ordering');
$db->setQuery($query);
$list = $db->loadObjectList();
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Попробуйте это
Код
$query1 = $db->getQuery(true);
$query1->select('a.id AS id, a.title AS title, a.created AS created, a.introtext AS introtext ');
$query1->from('#__content AS a');
$query1->innerJoin('#__categories AS b ON (b.id=a.catid)');
$query1->where('b.parent_id = 162');

$query = $db->getQuery(true);
$query->select('id, title, created, introtext ');
$query->from('#__content');
$query->where('catid = 162');
$query->unionDistinct($query1);
$query->where('state = 1');
$query->order('ordering');
$db->setQuery($query);
$list = $db->loadObjectList();
Не проверял.
« Последнее редактирование: 19.08.2013, 09:25:50 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Не проверял.
могу тоже не проверяя сказать что выведет только категории первого под категории первого уровня, остальные не вытянет...
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
могу тоже не проверяя сказать что выведет только категории первого под категории первого уровня, остальные не вытянет...
Да именно так и получилось. Пока не работает как надо

« Последнее редактирование: 19.08.2013, 12:07:46 от maxsl_89 »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Да именно так и получилось. Пока не работает как надо
тут увы только три запроса делать:

Код: php
$id = 162;
$cid = array();
$db = JFactory::getDbo();
$query = $db->getQuery( true );
$query->select( 'lft, rgt' )->from( '#__categories' )->where( 'id=' . $id );
$category = $db->setQuery( $query )->loadObject();

$query->clear();
$query->select( 'id' )->from( '#__categories' )->where( 'lft>=' . $category->lft )->where( 'rgt<=' . $category->rgt )->order( 'lft ASC' );
$categories = $db->setQuery( $query )->loadObjectList();

foreach ( $categories as $category ) {
$cid[] = $category->id;
}

$query->clear();
$query->select( 'id, title, created, introtext ' )
->from( '#__content' )
->where( 'catid IN(' . implode( ',', $cid ). ')' )
->where( 'state = 1' )
->order( 'ordering' );
$list = $db->setQuery( $query )->loadObjectList();
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
тут увы только три запроса делать:

Код: php
$id = 162;
$cid = array();
$db = JFactory::getDbo();
$query = $db->getQuery( true );
$query->select( 'lft, rgt' )->from( '#__categories' )->where( 'id=' . $id );
$category = $db->setQuery( $query )->loadObject();

$query->clear();
$query->select( 'id' )->from( '#__categories' )->where( 'lft>=' . $category->lft )->where( 'rgt<=' . $category->rgt )->order( 'lft ASC' );
$categories = $db->setQuery( $query )->loadObjectList();

foreach ( $categories as $category ) {
$cid[] = $category->id;
}

$query->clear();
$query->select( 'id, title, created, introtext ' )
->from( '#__content' )
->where( 'catid IN(' . implode( ',', $cid ). ')' )
->where( 'state = 1' )
->order( 'ordering' );
$list = $db->setQuery( $query )->loadObjectList();
ГЕНИАЛЬНО) БЛАГОДАРЮ!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спасибо, Istaan! До сегодняшнего дня не знал о "lft"и "rgt" полях.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Спасибо, Istaan! До сегодняшнего дня не знал о "lft"и "rgt" полях.
Почитайте на досуге Дерево каталогов NESTED SETS (вложенные множества) и управление им
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Спасибо за ссылку, как раз сейчас тоже читаю о Nested Set Model.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Istaan,
Все супер, работает отлично.
А есть ли возможность их упорядочить не по порядку вложенности, а чтоб все по дате сортировались не зависимо от категории?
Если это в корне меняет код, заморачиваться нет смысла. Спасибо!
В главной категории у меня не будет ни одной статьи, все распиханы по подкатегориям
« Последнее редактирование: 19.08.2013, 14:42:16 от maxsl_89 »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А есть ли возможность их упорядочить не по порядку вложенности, а чтоб все по дате сортировались не зависимо от категории?
в последнем запросе:
$query->select( 'id, title, created, introtext ' )
   ->from( '#__content' )
   ->where( 'catid IN(' . implode( ',', $cid ). ')' )
   ->where( 'state = 1' )
   ->order( 'created DESC' );
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
в последнем запросе:
$query->select( 'id, title, created, introtext ' )
   ->from( '#__content' )
   ->where( 'catid IN(' . implode( ',', $cid ). ')' )
   ->where( 'state = 1' )
   ->order( 'created DESC' );
Спасибо!:)
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Кто может помочь с разбиением выведенного списка на страницы. Чтоб было по 15 пунктов на каждой?

Код
$id = 162;
$cid = array();
$db = JFactory::getDbo();
$query = $db->getQuery( true );
$query->select( 'lft, rgt' )->from( '#__categories' )->where( 'id=' . $id );
$category = $db->setQuery( $query )->loadObject();
 
$query->clear();
$query->select( 'id' )->from( '#__categories' )->where( 'lft>=' . $category->lft )->where( 'rgt<=' . $category->rgt )->order( 'lft ASC' );
$categories = $db->setQuery( $query )->loadObjectList();
 
foreach ( $categories as $category ) {
$cid[] = $category->id;
}
 
$query->clear();
$query->select( 'id, title, created, introtext ' )
->from( '#__content' )
->where( 'catid IN(' . implode( ',', $cid ). ')' )
->where( 'state = 1' )
->order( 'ordering' );
$list = $db->setQuery( $query )->loadObjectList();
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
последняя строка, добавить:
$list = $db->setQuery( $query, 0, 15 )->loadObjectList();
это значит что выведет 15 записей начиная с нулевой, если написать
$list = $db->setQuery( $query, 15, 15 )->loadObjectList(); значит что выведет 15 записей начиная с 15-той..
а вы что переделали модуль в компонент что решили в нем пагинацию прикрутить?)
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
последняя строка, добавить:
$list = $db->setQuery( $query, 0, 15 )->loadObjectList();
это значит что выведет 15 записей начиная с нулевой, если написать
$list = $db->setQuery( $query, 15, 15 )->loadObjectList(); значит что выведет 15 записей начиная с 15-той..
а вы что переделали модуль в компонент что решили в нем пагинацию прикрутить?)

Благодарю)
Просто статей уже много накопилось и приходится на страницы разбивать список.

А, к примеру, возможность достать последние новости за последние 2 месяца есть?
Нужен будет такой же модуль, ток чтоб доставал последние 2 месяца
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Нужен будет такой же модуль, ток чтоб доставал последние 2 месяца
добавить
$query->where('DATE(`created`) >= ADDDATE(  DATE( NOW() ), INTERVAL -2 MONTH)');
*

maxsl_89

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Подскажите пожалуйста как в данном случае вытянуть данные с 3-х категорий, а не с одной.

Код
 public static function getList(&$params)
    {

    $klub_resorts = JText::sprintf('MOD_TABLERESORTS_PARAMETR_LABEL', $params->get('klub_resorts'));

    $db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select('id, title, params');
$query->from('#__resort');
$query->where('catid = 145');
$db->setQuery($query);
$list = $db->loadObjectList();

return $list;
   
    }

пытался делать что-то подобное
Код
 public static function getList(&$params)
    {

    $klub_resorts = JText::sprintf('MOD_TABLERESORTS_PARAMETR_LABEL', $params->get('klub_resorts'));

    $db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select('id, title, params');
$query->from('#__resort');
$query->where('catid = 145');
$query->where('catid = 147');
$query->where('catid = 146');
$db->setQuery($query);
$list = $db->loadObjectList();

return $list;
   
    }
но не сработало
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код: php-brief
$query->where('catid = 145 OR catid = 146 OR catid = 147');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код: php
$query->where('catid IN(145, 146, 147)');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод новостей

Автор lindim

Ответов: 5
Просмотров: 3895
Последний ответ 24.04.2023, 11:16:59
от Hrillow
Вывод информации в личный кабинет пользователя

Автор zndm

Ответов: 17
Просмотров: 6145
Последний ответ 22.09.2022, 18:51:44
от beliyadm
как выводить категории на главной странице.

Автор makarovse

Ответов: 7
Просмотров: 2848
Последний ответ 03.04.2022, 19:50:42
от THE KILLERS
Как вывести все категории VirtueMart 3 второго уровня списком?

Автор Damarkuzz

Ответов: 0
Просмотров: 1234
Последний ответ 06.07.2020, 18:58:23
от Damarkuzz
Как подправить вывод таблички recaptcha на русском?

Автор busik

Ответов: 4
Просмотров: 1928
Последний ответ 17.02.2019, 18:58:15
от busik