Новости 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

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Меня интересует как интегрировать энное количество вспомогательных компонентов с основным.
Нужно вывести список записей из основного компонента и под каждой записью вывести список установленных компонентов со своими настройками. (см. прикрепленную картинку). И под всем этим делом кнопку "сохранить". Это будет что-то типа "профиля", в котором нужно будет сохранить сделанные настройки.
« Последнее редактирование: 16.02.2014, 12:17:03 от Aeliot »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Создание компонента к компоненту
« Ответ #1 : 15.02.2014, 11:52:22 »
Сделать в основном компоненте выборку Ваших компонентов из таблицы extensions.
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Создание компонента к компоненту
« Ответ #2 : 15.02.2014, 13:00:22 »
Сделать в основном компоненте выборку Ваших компонентов из таблицы extensions.
Это возможно только в том случае, когда основной компонент заранее знает обо всех дополнительных компонентах и при появлении нового придется как-то ему объяснять что этот компонент "свой". Меня же интересует вариант, когда мы устанавливает новый (ранее не существовавший) компонент, и основной компонент сам распознает наличие нового "родственного" компонента.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Создание компонента к компоненту
« Ответ #3 : 15.02.2014, 13:03:44 »
Ну тогда нужно как-то обозначить их родство, например в имя компонента ввести общий корень. А иначе как? Скрипт же не телепат...
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Создание компонента к компоненту
« Ответ #4 : 15.02.2014, 13:25:44 »
Вот и я про то. За советом и пришел.
Кроме того как научить их передавать свой набор настроек (у каждого уникальный) родительскому компоненту, чтобы пользователь мог используя их сконфигурировать свой "профиль" и затем эти настройки нужно сохранить с определенной записью родительского компонента (связанной с пользователем).
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Создание компонента к компоненту
« Ответ #6 : 16.02.2014, 12:45:16 »
Нашел интересное решение. Может кому-то пригодится.
Было два основных вопроса:
1) как "подружить" вспомогательные компоненты с основным.
2) как вывести чекбоксы выбора компонентов и их уникальные настройки.

По первому вопросу
Завел специальную табличку в основном компоненте, где и регистрируем "дружественные" компоненты. Хоть через script.php дочерних компонентов, хоть вручную (сделал специальные вьюшки в админке для управления компонентами).

По второму вопросу
(спасибо Jonathan M. Cameron)
В дочерних компонентах делаем специальную вьюху для вывода настроек (можно добавить контроллер и модель, но это пожеланию)
Во вьюхе делаем функцию display такого вида:
Код: php
	public function display( $tpl = null )
{
$result = $this->loadTemplate($tpl);
if ($result instanceof Exception)
{
return $result;
}

return true;
}
Обратите внимание, что мы в ней загружаем шаблон, а не вызываем одноименную родительскую функцию.
И еще в этом виде добавляем функцию getOutput
Код: php
	public function getOutput()
{
return $this->_output;
}

После этого в функции получения списка записей (getItems) делаем такую обработку
Код: php
		if(!empty($items))
{
foreach ($items as $item)
{
$item->notifiers = array();
$eventParams = new JRegistry($item->params);
foreach ($eventParams->get('notifiers') as $component )
{
// get current view
$view = $this->getNotifierView($component);
// set requered data to view
$view->set('myvar', $item->id);

// Get the view to generate the display output from the template
if ( $view->display() === true ) {
// Display or return the results
$output = $view->getOutput();
}
else{
$output = '';
}

$item->notifiers[] = $output;
}
}
}
Так мы получаем все нужные настройки соответствующих компонентов, которые мы сможем сохранить в наш профиль.
Здесь используется функция getNotifierView(), отвечающая за подключение соответствующего вида:
Код: php
	protected function &getNotifierView($component)
{
if(!array_key_exists($component, $this->notifierViews))
{
$prefix = substr($component, 4);
$className = $prefix .'ViewUserParams';

// include required class
require_once(JPATH_SITE .'/components/'.$component.'/views/userparams/view.html.php');
//JLoader::register($className, JPATH_SITE .'/components/'.$component.'/views/userparams/view.html.php');

if(!class_exists($className, false)){
throw new Exception('There is no required class of notifier view.', 500); // TODO: translate the message
}

$this->notifierViews[$component] = new $className(array('base_path'=> JPATH_SITE .'/components/'.$component));
}

return $this->notifierViews[$component];
}

Как-то так.
Все остальное как обычно. Но если что-то не понятно -- спрашивайте.

Осталось доделать сохранение данных, но это уже мелочи.
« Последнее редактирование: 16.02.2014, 12:48:33 от Aeliot »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Написание плагина оплаты

Автор rkron

Ответов: 0
Просмотров: 1219
Последний ответ 02.03.2017, 10:25:28
от rkron
Как вывести на страницу параметры модуля?

Автор Absalem

Ответов: 20
Просмотров: 2724
Последний ответ 07.09.2016, 20:47:47
от robert
Как принимать значения кастомных полей в

Автор eugenex

Ответов: 14
Просмотров: 1645
Последний ответ 03.04.2016, 22:55:31
от eugenex
обновление модуля

Автор jmaf

Ответов: 1
Просмотров: 1524
Последний ответ 02.11.2015, 10:19:44
от b2z
переопределение языковой переменной на в

Автор Aeliot

Ответов: 3
Просмотров: 1769
Последний ответ 24.04.2014, 13:51:54
от Aeliot