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

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Раз уж все основные косяки устранены, опишу что, как и куда. Огромное спасибо era и SmokerMan за оказанное содействие.  *DRINK*
И так:
1) Ставим плагин Modalizer от NoNumber и настраиваем его.
2) У многих шаблонов есть подшаблон (обычно он располагается в корневой папке шаблона и называется component.php) представляющий из себя легкую версию вашего основного шаблона.
Можете использовать его, либо создать отдельный файл и указать его в настройках Modalizer.
3) Для ссылки "Создать материал" все просто. Создаем пункт меню и для ссылки задаем класс modal
4) Теперь самое интересное. Иконка редактирования. Заходим в папку /components/com_content/helpers и копируем файл icon.php в папку /имя_вашего_шаблона/html/com_content
5) Открываем icon.php и редактируем в нем три строчки:
a) ~20 строчка.
Код
class JHtmlIcon
меняем на
Код
class JHtmlMyIcon

б) ~105 строчка, чтобы ссылка подхватывала подшаблон после index.php? добавляем ml=1& чтобы было
Код
$url	= 'index.php?ml=1&option=com_content&task=article.edit&a_id='.$article->id.'&return='.base64_encode($uri);

в) ~126 строчка, делаем ссылку и задаем ей класс
Код
$output = '<span class="hasTip" title="'.JText::_('COM_CONTENT_EDIT_ITEM').' :: '.$overlib.'"><a href="'.$url.'" class="modal">'.$text.'</a></span>';

6) Наконец подключаем это все (на примере /html/com_content/featured/default_item.php)
a) В начале подключаем наш icon.php после
Код
defined('_JEXEC') or die;
добавляем
Код
require_once (JPATH_THEMES . DS . $app->getTemplate(). DS . 'html/com_content/icon.php');

б) Наконец находим
Код
<?php echo JHtml::_('icon.edit', $this->item, $params); ?>
именяем 'icon.edit' на 'myicon.edit'

Примечание. в пункте 6а можно использовать и require_once (dirname(__FILE__).DS.'icon.php'); но тогда icon.php придется пихать во все папки где его нужно подключить.
TODO. Нужно сделать чтобы после нажатия Сохранить или Отмена в форме редактирования материала модальное окно закрывалось. Так как сейчас после нажатия в модальном окне просто загружается сайт. Читать решение тут
« Последнее редактирование: 13.01.2013, 20:14:42 от HiopsNerevar »
Это бидаль пича.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
1. а в шаблон добавить свою генерацию ссылки?
вместо
Код
<?php echo JHtml::_('icon.edit', $this->item, $params); ?>

2. или например перенести в шаблон копию файлика "/components/com_content/helpers/icon.php"
изменив при объявлении название класса c "JHtmlIcon" например на "JHtmlMyIcon".
Файлик этот в нужных местах подключать и вызывать как
Код
<?php echo JHtml::_('myicon.edit', $this->item, $params); ?>
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Цитировать
Здесь было добавлено ?ml=1 для подхвата подшаблона.
Цитировать
index.php?ml=1?option=
Это что такое и как оно должно работать? :)
В урле все параметры передаются после "?", а если их 2 или больше, то это уже ахинея)

По поводу иконки редактирования.
По сути иконка это та же ссылка.
Вы можете посмотреть логику как указали выше в файле "/components/com_content/helpers/icon.php".
Собственно от туда нужно только условие на проверку прав, т.е. для кого ее показывать для кого нет. Ну и сама ссылка.
Это условие и ссылку можно вставить напрямую в шаблон(ы) вместо
Код
<?php echo JHtml::_('myicon.edit', $this->item, $params); ?>
и можно ничего не подключать и не переопределять, тем более для 1 иконки.
 
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
era
Спасибо. Сделал по 2му варианту и все зашибись. Хотя 1й тоже попробовал, но у своей ссылки оказалось много косяков. Хотя она и работала но не изменяла значок в зависимости от состояния публикации.

SmokerMan
Не заметил просто ибо заработало и так.  ::) Сделал так
Код
index.php?ml=1&option=com_content
просто этот параметр работает так как надо только в начале ссылки.
Это бидаль пича.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Ну если заработало, вдруг.
Поделись, пожалуйста, с народом. Что где и как заработало. И главное - что для этого надо сделать! :)
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Ну если заработало, вдруг.
Поделись, пожалуйста, с народом. Что где и как заработало. И главное - что для этого надо сделать! :)
Ок. Оформил в первом посте.  ;D
Это бидаль пича.
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
А вот и пункт TODO. (вариант для модального окна SqueezeBox, стандартного для Joomla)
Для него нам понадобится переопределенный для нашего шаблона файл edit.php в папке /html/com_content/form/
ищем там код
Код
			<div class="formelm-buttons">
<button type="button" onclick="Joomla.submitbutton('article.save')">
<?php echo JText::_('JSAVE')?>
</button>
<button type="button" onclick="Joomla.submitbutton('article.cancel')">
<?php echo JText::_('JCANCEL')?>
</button>
</div>

и меняем на

Код
			<div class="formelm-buttons">
<button type="button" onclick="Joomla.submitbutton('article.save');window.parent.location.reload();">
<?php echo JText::_('JSAVE')?>
</button>
<button type="button" onclick="window.parent.SqueezeBox.close();">
<?php echo JText::_('JCANCEL')?>
</button>
</div>
Это бидаль пича.
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Так не работает, окно закрывается раньше, чем сохраняется материал.
Код
<button type="button" onclick="Joomla.submitbutton('article.save');window.parent.location.reload();">
Поставил задержку, как лучше сделать не знаю.
Код
<button type="button" onclick="Joomla.submitbutton('article.save');window.setTimeout('window.parent.location.reload();',300);">
« Последнее редактирование: 15.05.2014, 19:20:28 от ChaosHead »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Блокировка материала! Что оно такое?

Автор Chebyrek

Ответов: 17
Просмотров: 17155
Последний ответ 30.06.2020, 16:33:09
от 1AZ1
Как вывести путь материала на страницу?

Автор Gromz

Ответов: 6
Просмотров: 2105
Последний ответ 14.12.2019, 20:19:21
от Gromz
Редактирование Модуля - в меню не удаляется пункт

Автор bovinkm

Ответов: 4
Просмотров: 1830
Последний ответ 16.08.2019, 15:00:22
от bovinkm
Что за баг с датой обновления материала - Обновлено 30.11.-0001 08:47?

Автор Maxum

Ответов: 7
Просмотров: 3952
Последний ответ 22.01.2019, 23:46:01
от artbavial
Как сбросить счётчик колличества просмотров материала?

Автор Neptun

Ответов: 7
Просмотров: 4441
Последний ответ 18.06.2018, 16:13:17
от tuztref