Новости 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 Гость просматривают эту тему.
  • 5 Ответов
  • 2531 Просмотров
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
В поиске не нашел. Есть смысл выкладывать свое решение или и кто-нибудь может поделиться ссылкой?
Задача: вывести модуль между определенными материалами в макете блога, например, после 1-го материала.



Мое решение позволяет вывести рекламный модуль после любого материала, например, после первых трех, а в случае пагинации, на каждой странице или любой отдельно взятой, например, только на первой.

Недостатки:
- использование альтернативного макета категории, если нужно разделить категории где нужно выводить, а где нет. Альтернативный макет у меня заработал только с привязкой к меню.
- номера материалов после которых выводить, а также, если нужно, номера страниц задаются непосредственно в макете. А хотелось бы в настройках модуля.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Заработал только после привязка к пункту меню потому, что это разные понятия в Joomla «альтернативный макет материала/категории» и «альтернативный макет пункта меню». Причём пункт меню всегда приоритетней. Чтобы эти настройки не вбивать напрямую в шаблоне, можно их забивать в любое понравившееся поле категории, а в макете категории отлавливать и вставлять где надо.
В общем, пишите своё решение, доработаем. ;-)
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Shustry, буду благодарен за помощь  ^-^

Я сделал следующим образом. По совету дяди Феди буду указывать позицию для модуля. Можно и конкретно модуль, но решил позицию, чтобы выводить или mod_custom, или mod_banners.

1. В файл templateDetails.xml шаблона добавляю позицию.
Код
<position>inblog</position>

2. В админке создаю модуль "HTML код" на позицию inblog. С проверочным текстом "Здесь будет реклама".

3. Вношу следующие изменения в blog.php из templates\шаблон\html\com_content\category
В моем случае за вывод постов отвечает код
Код: php
<?php if (!empty($this->lead_items)) : ?>
<ul class="post">
<?php foreach ($this->lead_items as &$item) : ?>
<li><?php $this->item = &$item; echo $this->loadTemplate('item');?></li>
<?php endforeach; ?>
</ul><!-- .post -->
<?php endif; ?>

Допиливаю. В оригинальном blog.php переменная $leadingcount была, возвращаю ее в свой макет.
В предпросмотре пояснения к коду вот в таком ввиде &#1082;&#1086;&#1083; поэтому вынесу сюда.
   $limit - кол-во материалов на страницу
   $pagecurrent - номер текущей страницы
   $numintro - Массив с номерами материалов, после которых выводить рекламный блог. Отсчет с нуля.
   $numpage - Массив с номерами страниц на которых выводить рекламу. Для всех страниц оставить пустым. Отсчет с единицы.
Код: php
<?php 
$leadingcount = 0;
$limit = $this->pagination->limit;
$pagecurrent = $this->pagination->get('pages.current');
$numintro = array(0, 1);
$numpage = array();
 ?>
<?php if (!empty($this->lead_items)) : ?>
<ul class="post">
<?php foreach ($this->lead_items as &$item) : ?>
<li><?php $this->item = &$item; echo $this->loadTemplate('item');?></li>
<?php if (!empty($numpage)) {
if (in_array($pagecurrent, $numpage)) {
if (in_array($leadingcount, $numintro)) { ?>
<li class="adbox"><?php $modules =& JModuleHelper::getModules('inblog');
foreach ($modules as $module){
echo JModuleHelper::renderModule($module);
}?></li>
<?php }
}
} else {
if (in_array($leadingcount, $numintro)) { ?>
<li class="adbox"><?php $modules =& JModuleHelper::getModules('inblog');
foreach ($modules as $module){
echo JModuleHelper::renderModule($module);
}?></li>
<?php }
}
$leadingcount++;
?>
<?php endforeach; ?>
</ul><!-- .post -->
<?php endif; ?>

Вот и все. Облагородить бы, чтобы номера материалов и страниц вносить в настройках категории. Например добавить поля text и через запятую указывать номера, а потом, наверное, превращать в массив с помощью explode.

По поводу альтернативного макета. Есть у меня категория "Новости" с пунктом меню. Если создать newsblog.php и newsblog_item.php из blog.php и blog_item.php в templates\шаблон\html\com_content\category, и выбрать новый макет в настройках категории, то ничего не меняется, используется blog.php. А если добавить newsblog.xml, создав его из оригинального blog.xml с правкой заголовка и описания и в п.меню "Новости" выбрать новый макет, все работает. Делал по этой инструкции.

Получается из-за п.меню не хотел работать "альтернативный макет категории", пришлось создать "альтернативный пункт меню", правильно я понимаю, не перепутал понятия :)?
« Последнее редактирование: 05.04.2013, 16:15:26 от rixter »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
В настройках категории в основных параметрах поле «примечание» практически не используется. Можете его зарезервировать для передачи своих данных. Например, я забил 100,500,inblog (номер материала, номер страницы и имя позиции уж тогда опционально). Далее в blog.php вызываем:
Код: php
$myparams = explode (',', $this->category->note);
Далее, думаю всё понятно.
*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Спасибо, буду пробовать.
Я вчера уже пришел к этому, точнее нашел Управление заголовками (title) материалов и категорий J2.5!
Но не могу, четко сформулировать тз с привязкой к возможностям.
Ладно, кое какие мысли уже есть и вы подсказали, как что-то получится отпишусь.

*

rixter

  • Захожу иногда
  • 95
  • 9 / 0
  • Кто юзал мой писи?
Ну что же, результат есть. Думаю это финиш, ну разве, что придет гуру php и предложит как улучшить/упростить код, т.к. я не программер вообще.
Приобретенные возможности:
- Вывод рекламного блока (далее РБ) указывается независимо для каждой категории.
- Вывод РБ на любой странице блога категории.
- Вывод РБ после любого материала, указывается для всех страниц блога категории.
- По желанию вывод/не вывод РБ после последнего материала на странице.

По совету от Shustry используем поле "Примечание" в настройках категории. Примеры заполнения:
1,2 - вывод РБ после 1-го и 2-го материалов на всех страницах блога категории.
1,2|1,2 - вывод РБ после 1-го и 2-го материалов на 1-й и 2-й страницах блога категории.

Первые два пункта из предыдущего сообщения остаются без изменений.

3. Повторюсь на всякий случай.  Вношу следующие изменения в blog.php из templates\шаблон\html\com_content\category
В моем случае за вывод постов отвечает код
Спойлер
[свернуть]

Вариант 1. Без ограничений.
Спойлер
[свернуть]

Вариант 2. РБ не выводится после последнего материала. Например, если указан вывод после 1,2,3 материалов, а на странице всего 2 материала, РБ будет выведен только после 1-го и 2-го.
Спойлер
[свернуть]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как выводить категории на главной странице.

Автор makarovse

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

Автор Damarkuzz

Ответов: 0
Просмотров: 1262
Последний ответ 06.07.2020, 18:58:23
от Damarkuzz
Перенаправляет на родителя при несуществующей категории, а надо на 404

Автор mishapod

Ответов: 0
Просмотров: 1351
Последний ответ 08.01.2019, 12:06:16
от mishapod
Размещение материала сеткой

Автор Ярослав163

Ответов: 5
Просмотров: 1251
Последний ответ 26.03.2018, 14:45:34
от Ярослав163
В мобильной версии товары в категории сужаются слишком сильно

Автор salikh

Ответов: 1
Просмотров: 1497
Последний ответ 06.11.2016, 01:39:07
от salikh