Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

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

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
Просмотров: 4030
Последний ответ 24.04.2023, 11:16:59
от Hrillow
Вывод информации в личный кабинет пользователя

Автор zndm

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

Автор makarovse

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

Автор Damarkuzz

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

Автор busik

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