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

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Доброго времени суток. Не давно я написал свой первый компонент (есесн по урокам из сети) для Joomla 3.0. Суть компонента проста - есть таблица в БД куда пишутся заказы пользователей на грузоперевозки.

В админке админ  может тот или иной заказ отредактировать или удалить или же создать новый. Компонент в принципе примитивен - работает с одной таблицей бд. Но не давно потребовалось сделать так - что бы при редактирования или создании новой записи в админке в поле ИМЯ было не просто текстовое поле -  а выпадающий список всех пользователей, которые зарегистрированы на сайте.

Вот теперь парюсь и не знаю как это реализовать - умом понимаю что для этого нужно прописать новое обращение к таблице users в модуле, нужно в контроллере написать код который будет обрабатывать данные для вьюхи и в XML rt с формой вывести список - но трабла в том, что из-за не совершенства знаний самого фреймворка Joomla не могу точно понять что и куда писать.

Подскажите плз как научить компонент тянуть данные из другой таблицы БД )
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код: php
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id', 'username')));
$query->from($db->quoteName('#__users'));
$db->setQuery($query);
$users = $db->loadAssocList();
var_dump($users);
Имя таблицы и поля выборки написал отбалды.
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Код: php
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id', 'username')));
$query->from($db->quoteName('#__users'));
$db->setQuery($query);
$users = $db->loadAssocList();
var_dump($users);
Имя таблицы и поля выборки написал отбалды.
Код: php
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('id', 'username')));
$query->from($db->quoteName('#__users'));
$db->setQuery($query);
$users = $db->loadAssocList();
var_dump($users);
Имя таблицы и поля выборки написал отбалды.

это у нас получается просто выведет список ид пользователей если я не ошибаюсь ?
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Неужели никто не знает ? Как мне привязать к xmk с формами результат выборки пользователей из бд в форме ?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Создаете кастомный типа поля в котором на основе выборки имен пользователей и их ид как выше показали формируете HTML select. Прописывате в вашей xml-ке путь к папке с этим полем.
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Создаете кастомный типа поля в котором на основе выборки имен пользователей и их ид как выше показали формируете HTML select. Прописывате в вашей xml-ке путь к этому полю. Все просто.

 простите а можно чуть подробнее. У меня в XML ка с формами путь нигде не указан - список полей в форме edit.php выведен в цикле


Код
  <?php foreach($this->form->getFieldset() as $field): ?>
  <?php if (!$field->hidden): ?>
  <?php echo '<b>'.$field->label.'</b>'; ?>
  <?php endif; ?>
  <?php echo $field->input; ?>
  <?php endforeach; ?>

если я создам в XML rt форму, то мне получается нужно как то в форму передать данные - и вот как раз в этом моменте я, простите за выражение, туплю по жесткому (
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
простите но все равно не все пронял. Вот смотрите - исходя из доков  мне нужно сделать по сути мульти запрос к бд - что бы данные выбирались из таблицы заказами + таблицы с пользователями

делаю
было

Код
   $query->select($db->quoteName('b.username'));
$query->leftJoin(
    $db->quoteName('#__users', 'b')
    . ' ON '
    . $db->quoteName('b.id')
    . ' = ' . $db->quoteName('a.created_by')
);

стало
Код
$query->select('a.*');
$query->from($db->quoteName('zdj5e_zakaz', 'a'));
// Присоединяем #__users
$query->select($db->quoteName('b.username'));
$query->leftJoin(
    $db->quoteName('zdj5e_users', 'b')
    . ' ON '
    . $db->quoteName('b.id')
   
);

запрос сам по себе рабочий. Его я провожу в файле administration/components/com_mycomponent/models/fields/mycomponent.php

На сколько я понимаю именно этот файл выводит данные для формы редактирования или создания материала - но теперь вопрос как мне в XML отдать данные ? Где находится этот переходный момент ?  :( >:(
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
В xml-ке добавляете поле с  вашем типом, в котором выборка значений и генерация селектов. Добавляете также addfieldPath в xml-ке который будет указывать на папку с этим типом. По ссылке все подробно расписано, что где добавить в xml-ке и как создавать файлик с вашем типом поля, что вам непонятно то? Ну если вам так сложно напишите нужный вам селект прямо в вашем коде и не морочтесь с XML
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
английский не понятен :)
На сколько я понимаю вы советуете  путь создания нового класса для поля - но я то делаю через тот класс который уже есть, что бы минимизировать работу (и багов не создавать :) ).
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Это вообще нормальная практика, что вы имеете ввиду под багами я незнаю. Не знаете английского, погуглите тоже самое на русском, думаю что материалов на эту тему немало, расписывать все это на форуме не вижу смысла.
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
вы поймите что я новичек в создании компонентов для Joomla - я до сих пор к примеру не могу понять смысла от 2ух файлов в контроллере или в моделе по типу mycomponentS и mycomponenT - по этому сейчас для меня это весьма трудоемко

Неужели нельзя сделать все в одном запросе ? Ну то есть к примеру есть запрос к бд который выводит все о заказе - к ниму Joinom  крепим данные из пользователей и все отправляем сразу в форму  ?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Выборка данных из нескольких таблиц вполне возможна, если использовать джоины и подзапросы в sql, только вот каким боком это относится к сабжу? Если вам надо просто вывести форму с данными, cделайте выборку и сформируйте HTML на основе этих данных. Это никак не относится ни к XML ни к Joomla
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
с одной стороны да - я так и думал сделать - сделать запрос - выбрать данные и вставить во вьюху с редактированием - н что делать если мы не создаем а редактируем запись ? То есть при создании нового заказа проблем нет - вывелись пустые формы и список пользователей, а при редактировании записи получится что выведится форма с заполненными полями + список пользователей, при чем выбран будет не тот пользователь который в заказе, а будет результат простой выборки - по этому я и хочу реализовать через XML - на сколько я понимаю именно благодаря такой реализации в Joomla без лишних усилий можно реализовать  добавление новых полей
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Совершенно необязательно использовать xml-ку для создания/редактирования форм во фронтенде. Напротив, это вобщем-то лишний функционал. Разница между формами для создания новой записи и редактирования записей только в значениях по умолчанию, которые можно задать по условию.
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
Хм, тогда простите но встречный вопрос - вот к примеру попробовал сделать таким образом - вывести и сгенерировать выпадающий список с пользователями в форме

Код
<form action="<?php echo JRoute::_('index.php?option=com_mycomponents&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="mycomponent-form" class="form-validate">
<div class=" fltlft">   
<fieldset class="adminform">
 
<!--Вывод данных из бд в форму + вкладки навигации в данном случае она одна-->
<ul class="nav nav-tabs">
<li class="active"><a href="#details" data-toggle="tab"><?php echo empty($this->item->id)? JText::_('COM_MYCOMPONENT_DETALIS') : JText::sprintf('COM_MYCOMPONENT_DETALIS', $this->item->id); ?></a></li>     
</ul>


 <?
$strSQL2 = "SELECT * FROM `zdj5e_users` Order by `id` ASC ";
$rs3 = mysql_query($strSQL2);
?>
<select name="name" >
<?
while($row = mysql_fetch_array($rs3)) { ?>
<option value="<? echo $row['name'] ?>"><? echo $row['name'] ?></option>
<?}?>
</select>




  <?php foreach($this->form->getFieldset() as $field): ?>
  <?php if (!$field->hidden): ?>
  <?php echo '<b>'.$field->label.'</b>'; ?>
  <?php endif; ?>
  <?php echo $field->input; ?>
  <?php endforeach; ?>
</fieldset>
</div>
 
 
 
<div>
  <input type="hidden" name="task" value="" />
  <?php echo JHtml::_('form.token'); ?>
</div>
</form>

при сохранении записи имя пользователя в бд не пишется
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
А потому что имя вашего селекта не совпадает с именем которая модель обрабатывает скорее всего посмотрите как называются другие поля в форме. Скорее всего что-то вроде name="jform[fieldname]"

Делайте форму на основе чего то одного, или даные из базы, или данные из XML. И не выполняйте запросы в виде, это дурной тон,  выполняйте их в модели или хелпере на крайняк.
« Последнее редактирование: 28.03.2015, 19:48:00 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
пробовал и так

Код
 <?
$strSQL2 = "SELECT * FROM `zdj5e_users` Order by `id` ASC ";
$rs3 = mysql_query($strSQL2);
?>
<select  name="jform[name]" id="jform_name"    >
<?
while($row = mysql_fetch_array($rs3)) { ?>
<option value="<? echo $row['name'] ?>"><? echo $row['name'] ?></option>
<?}?>
</select>

все равно не пишет - хотя имя такое же как и если бы я через XML  вывел бы поле name  >:( >:( >:(
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
А в таблице у вас есть поле с именем name? Проанализируйте какие данные принимает контроллер, какие данные он передает в модель при сохранении.
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
В таблице ячейка есть - с этим все норм. Но как мне промониторить работ модели ? (уж простите - совсем запутлся)
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Если у вас есть IDE, делайте точки останова и анализируйте переменные, раз уж вы разработкой занимаетесь, без этого вы особо не продвинетсь. Если вы упрямо пишите в блокнотике то делайте echo, print_r, var_dumb и отслеживайте цепочки вызовов методов. Когда в конец за...сь ставьте себе IDE :-)
интернет-блог: http://websiteprog.ru
*

voron121

  • Захожу иногда
  • 220
  • 1 / 0
  • Метод тыка и мата помогает в кодинге
А ведь все как всегда просто оказалось - и не стоит прописывать лишние запросы или ковырять поля - все элементарно.
В XML файле с формами можно прописать, как оказалось, запрос в бд с нужными данными. При этом запрос выведет нужный список с возможностью сохранения и редактирования. Вот пример того как сделал я


Код: xml
<field name="name"
  type="sql"
  default="10"
  label="Name"
  query="SELECT name FROM zdj5e_users"
  key_field="name"
  />

результат - в поле Имя есть выпадающий список с нужными параметрами  ^-^ ^-^ ^-^ ^-^ ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

SP Page Builder + JShortcodes, красивый список

Автор kunsaid

Ответов: 0
Просмотров: 1323
Последний ответ 07.04.2025, 11:21:06
от kunsaid
Как вывести на страницу в виде картинок как фотогалерею из widgetkit?

Автор chechelnitskiy

Ответов: 0
Просмотров: 2006
Последний ответ 08.05.2024, 13:31:09
от chechelnitskiy
Zoo. Как в тизере под заголовком вывести обрезанную статью?

Автор lournrose

Ответов: 0
Просмотров: 1192
Последний ответ 04.12.2021, 19:00:43
от lournrose
Обновить значения в таблице

Автор semen1707

Ответов: 0
Просмотров: 658
Последний ответ 12.04.2021, 18:46:13
от semen1707
Проблема с временем pm/am в компоненте sp soccer (шаблон shaper soccer)

Автор Mira

Ответов: 7
Просмотров: 1723
Последний ответ 21.04.2019, 13:52:42
от Mira