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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #60 : 30.08.2017, 15:34:13 »
PRammer, зачем вы поменяли
Код
$query->where('a.tagids IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
на
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
? Таким образом вы ввели dmitry_stas в заблуждение.
Выложите сюда весь ваш модуль в самом свежем состоянии. Так, наверное, не очень правильно, но зато быстрее будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #61 : 30.08.2017, 15:35:52 »
не надо ничего портить. ответ прежний. вы показываете запрос один, а ошибку совсем другую. не по этому запросу. вы разве не видите, что у вас запрос формируется как
Цитировать
select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
а в ошибке при этом
Цитировать
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

да и выбираете вы из #__spsimpleportfolio_items, а ошибку показываете по #__spsimpleportfolio_tags

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

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #62 : 30.08.2017, 15:40:39 »
Файл который в архиве распакуй в JPATH_ROOT/libraries/joomla/form/fields

Код ниже добавь в XML файл модуля
Код: xml
<field name="spsimpleportfolio_tags" type="spsimpleportfoliotags" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY"><option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option></field>

Файл который в архиве распакуй в JPATH_ROOT/libraries/joomla/form/fields

Вот в этом файле формируется запрос к таблицу #_spsimpleportfolio_tags
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #63 : 30.08.2017, 15:43:59 »
Вот в этом файле формируется запрос к таблицу #_spsimpleportfolio_tags
Нет, не тот.
Выложите сюда весь ваш модуль в самом свежем состоянии. Так, наверное, не очень правильно, но зато быстрее будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #64 : 30.08.2017, 15:45:38 »
Выкладывать по факту нечего, т.к. основные модификации я расписал выше
Затрагивались только файлы:
1. mod_spsimpleportfolio.xml
менял
Код
<field name="category_id" type="category" extension="com_spsimpleportfolio" default="" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY">
<option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option>
</field>
на
Код
<field name="spsimpleportfolio_tags" type="spsimpleportfoliotags" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" multiple="multiple" class="input-xxlarge" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY">
<option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option>
</field>
2. helper.php
Код
$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('category_id')!= '') {
$query->where($db->qn('a.catid')." = ".$db->quote( $params->get('category_id') ));
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));
на
Код
$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')!= '') {
$query->where('a.tagids IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));
3. файл spsimpleportfoliotags.zip по адресу libraries/joomla/form/fields положил, вот и все...
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #65 : 30.08.2017, 15:46:03 »
Нет, не тот.
Ок. Сейчас буду комплектовать...
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #66 : 30.08.2017, 15:48:18 »
<field name="spsimpleportfolio_tags" type="spsimpleportfoliotags" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" multiple="multiple" class="input-xxlarge" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY">
<option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option>
</field>
Вот
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #67 : 30.08.2017, 15:49:47 »
Что
Вот
? Где все файлы модуля? Они у вас что, золотые?
ОК, увидел.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #68 : 30.08.2017, 15:51:20 »
Что? Где все файлы модуля? Они у вас что, золотые?
Выше прикрепил. Разве нету?
Все файлы модуля или чего-то не хватает?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #69 : 30.08.2017, 15:54:04 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #70 : 30.08.2017, 16:01:15 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Вот модель SpsimpleportfolioModelItems
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #71 : 30.08.2017, 16:02:26 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Вот helper.php
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #72 : 30.08.2017, 16:11:24 »
Попробуйте с этим helper.php модуля.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #73 : 30.08.2017, 16:14:06 »
Попробуйте с этим helper.php модуля.
Fatal error: Cannot declare class ModSpsimpleportfolioHelper, because the name is already in use in /var/www/h4262/data/www/site.com/components/com_spsimpleportfolio/helpers/helper.php on line 12
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #74 : 30.08.2017, 16:16:44 »
Куда вы положили его?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #75 : 30.08.2017, 16:21:55 »
Куда вы положили его?
Перепутал, положил в папку modules/mod_spsimpleportfolio и заметил, что я забыл заменить
Код
if ($params->get('category_id')!= '') {
на
Код
if ($params->get('spsimpleportfolio_tags')!= '') {
чтобы он начал считывать условие

Ошибку выдает
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #76 : 30.08.2017, 16:31:48 »
В каком виде tagids хранится в БД?
ОК, нашел.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #77 : 30.08.2017, 16:34:35 »
В каком виде tagids хранится в БД?
В старте топика прилагал скрин, это в таблице #_spsimpleportfolio_items
В самой таблице #_spsimpleportfolio_tags в обычном виде, без [""]
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #78 : 30.08.2017, 16:38:23 »
В старте топика прилагал скрин, это в таблице #_spsimpleportfolio_items
В самой таблице #_spsimpleportfolio_tags в обычном виде, без [""]
Заменил
Код
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

Так это я задокументировал выборку в helper.php или нужно было с вашим заменить?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #79 : 30.08.2017, 16:41:03 »
С моим.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #80 : 30.08.2017, 16:47:05 »
С моим.
Нет элементов на выводе. Ошибок тоже нет...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #81 : 30.08.2017, 16:52:25 »
Нет элементов на выводе. Ошибок тоже нет...
Значит, ни одно значение tagids не подходит заданным spsimpleportfolio_tags.
Все, дальше разберитесь сами - обычно я не даю готового кода, сегодня сдуру отписался в вашей теме и она мне порядком надоела.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Правильность синтаксиса запроса
« Ответ #82 : 30.08.2017, 17:02:24 »
Попробуйте следующее.

1. Удалите пока это
Цитировать
файл spsimpleportfoliotags.zip по адресу libraries/joomla/form/fields
.
2. Верните свой исходный XML.
3. Оставьте этот свой код без изменений.
Код: php
$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')!= '')
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));

Он отработал, когда вы подпортили один столбец - выше. #1054 Unknown column 'a.publish456ed' in 'where clause' SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`publish456ed` = 1 AND id IN(10,6,7) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6

4. выведите результат этого запроса.
« Последнее редактирование: 30.08.2017, 17:09:04 от capricorn »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #83 : 30.08.2017, 17:18:25 »
Вот, попробуйте новый helper модуля. Больше нет времени на ваш модуль.
Нет, не пойдет, ошибка будет. Ладно, будет время, еще загляну.
« Последнее редактирование: 30.08.2017, 17:23:30 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #84 : 30.08.2017, 17:27:58 »
Попробуйте следующее.

1. Удалите пока это .
2. Верните свой исходный XML.
3. Оставьте этот свой код без изменений.
Код: php
$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')!= '')
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));

Он отработал, когда вы подпортили один столбец - выше. #1054 Unknown column 'a.publish456ed' in 'where clause' SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`publish456ed` = 1 AND id IN(10,6,7) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6

4. выведите результат этого запроса.


)) как-то не сработает.... отработает без учета меток...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #85 : 30.08.2017, 17:31:44 »
Вот, попробуйте.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #86 : 30.08.2017, 17:38:32 »
Вот, попробуйте.
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #87 : 30.08.2017, 17:41:12 »
А  mod_spsimpleportfolio.php - мой?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #88 : 30.08.2017, 17:42:01 »
mod_spsimpleportfolio.php
да, с
Код
$tagged_items = array();

foreach ($items as $item) {
$item->tagids = json_decode($item->tagids);

if (!empty($item->tagids)) {
$tagged_items[] = $item;
}
}

if (!empty($tagged_items)) {
$tagList = $model->getTagList($tagged_items);
}

$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Правильность синтаксиса запроса
« Ответ #89 : 30.08.2017, 17:47:21 »
Цитировать
)) как-то не сработает.... отработает без учета меток...

замените тогда id на a.tagids, или что вам нужно из таблицы выборки. выше спрашивали вас, зачем поменяли.

вам надо избавиться от ошибки 1064, i.e. вас уже раз 10 спросили, где запрос
Код: sql
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN ()
,ее генерирующий. вы указали в каком файле. удалите его, если это он. потом займетесь формами Joomla.
Цитировать

А  mod_spsimpleportfolio.php - мой?
уже нет, он теперь общий. ;)
« Последнее редактирование: 30.08.2017, 17:52:01 от capricorn »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться