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

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Привет всем!

В параметрах категории существует поле "Альтернативный макет". С точки зрения пользователя при отображении категории на фронте должен отображаться выбранный шаблон, но разработчики с этим не согласны  :o
По-мнению разработчиков данный шаблон (альтернативный) должен отображаться только в случаях:
  • это не активный пункт меню
  • в ссылке нет view=category
  • в ссылке нет id=id категории
иначе берется шаблон из параметров п. меню.
Разработчики предлагают создавать свой тип меню, скопировав blog.php, blog.xml (blog_item.php и др.) и переименовать в newblog.php, newblog.xml и т.д.. Но при этом теряется часть функционала того же вида Блог.

Следующий хак таков:
файл components/com_content/views/category/view.html.php строка 131 в ней
Код
		if ((!$active) || ((strpos($active->link, 'view=category') === false) || (strpos($active->link, '&id=' . (string) $this->category->id) === false)))
{
// Get the layout from the merged category params
if ($layout = $this->category->params->get('category_layout'))
{
$this->setLayout($layout);
}
}
// At this point, we are in a menu item, so we don't override the layout
elseif (isset($active->query['layout']))
{
            // We need to set the layout from the query in case this is an alternative menu item (with an alternative layout)
            $this->setLayout($active->query['layout']);
}

Я сделал следующие правки:
Код
		if ((!$active) || ((strpos($active->link, 'view=category') === false) || (strpos($active->link, '&id=' . (string) $this->category->id) === false)))
{
// Get the layout from the merged category params
if ($layout = $this->category->params->get('category_layout'))
{
$this->setLayout($layout);
}
}
// At this point, we are in a menu item, so we don't override the layout
elseif (isset($active->query['layout']))
{
    /* Fix BelKoD aka Фей */
            // Get the layout from the merged category params
            if ($layout = $this->category->params->get('category_layout'))
            {
                $this->setLayout($layout);
            }
            else
            {
                // We need to set the layout from the query in case this is an alternative menu item (with an alternative layout)
                $this->setLayout($active->query['layout']);
            }
}

Теперь, при выборе значения в поле "Альтернативный макет", используется выбранный шаблон. При этом остается весь функционал родительского шаблона (layout).
« Последнее редактирование: 07.03.2018, 13:10:55 от Фей »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
я один не вижу разницы? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
я один не вижу разницы? :)
Блин, не скопировалось ) Обновил.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Я сделал следующие правки:
Не проще ли так
Код
		// Get the layout from the merged category params
if ($layout = $this->category->params->get('category_layout'))
{
$this->setLayout($layout);
}
// At this point, we are in a menu item, so we don't override the layout
elseif (isset($active->query['layout']))
{
// We need to set the layout from the query in case this is an alternative menu item (with an alternative layout)
$this->setLayout($active->query['layout']);
}
P.S. Почитал, но так и не понял, почему
при этом теряется часть функционала
и что именно теряется? А так, логика разработчиков понятна: выбри любой макет категории, а не только тот, который прописан в ее параметрах. Это же намного гибче, чем жестко привязать категорию к 1 макету.
« Последнее редактирование: 07.03.2018, 14:52:29 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Если делаем шаблон через п. меню (new.php & new.xml), то при организации его как блога теряется функционал расчета сколько отображать материалов полностью, сколько интро и т.д., который  заложен в view.html.php
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
при организации его как блога теряется функционал расчета сколько отображать материалов полностью, сколько интро и т.д., который  заложен в view.html.php
Вот это
Спойлер
[свернуть]
, что ли? Так поставьте layout_type = blog.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

R31rus

  • Давно я тут
  • 643
  • 4 / 0
Лет N работаю выбирал всегда default_articles.php и default.xml далее переопределял например как news_articles.php и news.xml. Надо любые введния intro пожалуйста корректируем макет news_articles.php. Надо языковые значения пожалуйста обзываем это все "Макет новостей". Через админку все работоспособно по кол-во выводимой инфы. 5-10-15-20-25-30, сортировка все работает, все что в layouts просто переносим в news_articles.php. Системные файлы ядра при этом не трогаются. На счет макета блога незнаю. А нахер он нужен?
« Последнее редактирование: 24.05.2021, 21:34:18 от R31rus »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1545
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 1260
Последний ответ 18.07.2024, 08:02:46
от Vastriet
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1559
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1707
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 2238
Последний ответ 06.02.2024, 12:42:26
от AlexP750