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

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Многие данные в Joomla хранятся в базе данных  JSON-формате
в частности многочисленные параметры
подскажите, пожалуйста, как можно использовать их с sql запросе
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
никак, только заранее разбирать в PHP и передавать в запрос обычным образом
сравнить строку в json никак не выйдет в мускуле
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
никак, только заранее разбирать в PHP и передавать в запрос обычным образом
сравнить строку в json никак не выйдет в мускуле
Оказалось очень даже решаемо.

Код
SELECT substr(substring_index(substr(params,locate('"timezone":"',params)),'"',4),13) as txt FROM `lby52_users` WHERE 1

нашел здесь: http://hashcode.ru/questions/28377/%D0%BA%D0%B0%D0%BA-%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D0%BA-mysql-%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D1%8E%D1%89%D0%B8%D0%B9-json-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Aeliot понятно, что решаемо, к примеру можно и like использовать зная поле. Вот вопрос быстродействия. Насколько такой запрос выполняется быстро. И beliyadm вам правильно ответил. Вы должны понимать из какого количества данных вы собираетесь выбрать. Порою проще выбрать все строки а потом в php их обрабатывать. Да ив приведенной вам ссылке прямо написано, что это извращение
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Fedor Vlasenko,
вы хотите сказать, что циклом foreach в php (а порой несколькими циклами для достижения того же результата) обойти то же количество записей будет быстрее?

На сколько я сравнивал у меня в базе обработка проходила всегда быстрее, чем в php. И чем больше выборка, тем разница всегда больше.

По поводу "изврата" абсолютно согласен,
но это, видимо, лучше чем лезть в ядро и менять структуру хранения данных базовых компонентов Joomla.
« Последнее редактирование: 10.06.2013, 21:37:37 от Aeliot »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Давайте говорить конкретно. Записей то сколько?
И не забываем что MySQL не  единственный способ хранения данных. Середнячок так сказать? Потому имеет наибольшую популярность, удобен и покрывает на 98% потребностей. Вы бы лучше описали вашу задачу, чего хотите получить и, что имеете в данных
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Да регулярно приходится доставать из базы то одни, то другие данные.

На данный момент разбираюсь с временными зонами.
Временная зона пользователя, как это очень часто бывает в Joomla, хранится в json формате в одном поле с другими параметрами.
Задал вопрос по работе с временными зонами здесь: Как в Joomla реализована работа с TimeZone и как это использовать в своем расширении?
Но пока жду ответа пытаюсь решить вопрос в прямую.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
В таком случае вам нужно:
1. Написать запрос и обработать данные в php записав в свою таблицу
2. Написать свой плагин  на событие http://docs.joomla.org/Plugin/Events/User#onUserAfterSave где вы будете писать данные временной зоны в свою таблицу, и с ней уже работать
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Немного не в тему, но может дадите ссылку на то, как создавать подобные плагины?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Вообще зависит от задачи - вам что, надо массово обрабатывать временные зоны юзеров?
Если надо для отдельного пользователя - почему не вытаскивать его средствами JFactory

А что касается оценки быстродействия - сгенерировать таблицу на 10000 юзеров, написать в двух вариантах и сравнить по времени.

Только не забывать про кеширование sql-запросов, если локально тренируетесь - для чистоты эксперимента перезапустить сервер.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
А не проще обьект $user = JUser::getInstance( $id ); использовать? Для текущего юзера вообще запрос не понадобится делать.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А не проще объект $user = JUser::getInstance( $id ); использовать? Для текущего юзера вообще запрос не понадобится делать.
Ну вот самый простой пример, захотел я вывести всех пользователей одной временной зоны? Для одного пользователя уже спрашивали
Цитировать
Записей то сколько?
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Записей то сколько?
Нужно обработать порядка 100-200 записей, в которых около десятка долей с датой. т.е. нужно одним махом преобразовать порядка 1000-5000 дат.
И это практически в начале жизни базы. Через полгода - год цифры будут гораздо больше.
Если делать всё это в php, то получится такая куча вызовов, что сервер может не дождаться окончания обработки скрипта и свалится с ошибкой таймаута.

И не забываем что MySQL не  единственный способ хранения данных. Середнячок так сказать? Потому имеет наибольшую популярность, удобен и покрывает на 98% потребностей.
Да и мои потребности ещё как минимум год будет полностью покрывать

Вы бы лучше описали вашу задачу, чего хотите получить и, что имеете в данных
Даже не знаю как описать, чтобы коротко и понятно.
Если по простому, то в таблице ведется учет работы с заказами. Даты должны вводиться "в естественной форме", т.е. если происходит какое-то событие, скажем в 9:35, то пользователь вносит его именно в таком виде. Скрипт при сохранении преобразует его в локальное время сервера. При отображении этого поля происходит обратное преобразование, чтобы пользователь видел именно то, что вносил.
Думал преобразовывать время в GMT, но, как понимаю, тогда получу некорректный результат, если сравнивать эту дату-время с полем, в которое данные были внесены с помощью функции NOW(). Впрочем, если NOW() обернуть в DATE_ADD() или что-то подобное, то можно хранить дату и в GMT.

Но это мелочи. Пару полей можно и в php конвертнуть.
Что делать, когда в "удобочитаемый вид" нужно преобразовать несколько тысяч полей. Т.е. чтобы пользователь мог посмотреть сводную табличку "состояние дел" и чтобы все даты были преобразованы в его локаль.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Создать отдельную таблицу(таблицы), под свои задачи. Не стоит все в таблицу пользователей складывать. Не для этого она предназначена
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Чем дальше копаюсь, тем больше понимаю что сам могу реализовать, но, по-хорошему, нужен бы программист.

Fedor Vlasenko, SDKiller
Может кому-то из вас было бы интересно взяться за сопровождение сайта
Вот проект на фрилансере: http://freelance.ru/projects/247941/
Если будет интересно, подробности сброшу в личку.
« Последнее редактирование: 11.06.2013, 11:52:29 от Aeliot »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Нет, я не лесоруб )



Да и аккаунты на всех существующих фрилансах не держу.
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
упс. исправил. Вечно забываю одну галку снять при создании проекта.

SDKiller, за ответ спасибо. Появится интерес -- пишите.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Aeliot - если вам заранее известна строка - то можно и так, можно и like
Но первое что приходит в голову - работать с массивом json напрямую в MySQL (наиболее оптимальный вариант как кажется) - вот он невозможен
Увы, даже на хабре я понял, что это низзя http://habrahabr.ru/qa/37897/#answer_145755
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как удалить ненужные поля при регистрации?

Автор petya242

Ответов: 2
Просмотров: 4074
Последний ответ 09.11.2017, 12:58:09
от abonnent
Подключения типа logo= $this->params->get

Автор intmaster

Ответов: 3
Просмотров: 6106
Последний ответ 18.02.2017, 18:08:54
от tiraz
Динамические дополнительные поля в материале

Автор goga_pgasovav

Ответов: 2
Просмотров: 1291
Последний ответ 19.05.2016, 22:52:43
от goga_pgasovav
Как к Категории вывести дополнительные поля?

Автор biosila9991

Ответов: 0
Просмотров: 1063
Последний ответ 01.04.2016, 16:59:26
от biosila9991
Вывод данных из дополнительного поля в модуле «html-код»

Автор goga_pgasovav

Ответов: 4
Просмотров: 1475
Последний ответ 17.03.2016, 15:08:49
от goga_pgasovav