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

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Актуальная версия плагина
RadicalForm 3.1.0


Что умеет плагин?

  • Это бесплатный плагин, который таким и останется.
  • Форма написана на чистом javascript и не требует подключения jQuery
  • Работает в любом месте сайта, нет никаких ограничений. (актуально для различных конструкторов сайтов, интернет магазинов и т.д.)
  • Это AJAX плагин.
  • Прекрасно работает во всплывающих окнах. Есть возможность их закрывать после отправки формы.
  • Можно удобно вставлять цели Яндекс метрики в интерфейсе плагина.
  • Количество форм обратной связи на странице не ограничено! (удобно для лендингов)
  • Можно отправлять фото и другие файлы (контроль вложений есть).
  • Полей для отправки вложений может быть несколько.
  • Корректно работает с кешированием Joomla и даже со включенным полностраничным кешированием!
  • Проверяется CSRF токен.
  • Есть интеграция с мессенджером телеграм.
  • Используется встроенная возможность джумлы делать многоязычные формы (для каждого языка свою)
  • Есть функция логирования отправленных форм
  • Есть возможности выбора адресата для каждой формы
  • Есть возможность создания кнопок "Купить в один клик" для любого интернет магазина
  • Реализована вставка любого поля формы или комбинации полей в тему письма
  • Предусмотрена валидация HTML5 полей формы
  • Есть возможность изменения поля Reply To
  • Корректно работает с полями со множественными значениями (checkbox, select multiple)
  • Есть возможность переопределения шаблона отправляемых писем
  • Есть интеграция с сервисом Jivosite
  • Есть интеграция с сервисом Verbox
  • Есть возможность выполнения своего кастомного php кода во время отправки формы
  • Есть возможность экспорта отправленных форм в CSV
  • Есть возможность расширения функционала за счет системы плагинов Joomla
  • Есть возможность хранить загруженные файлы на сервере и передавать их по ссылке



В чем кардинальное отличие от других форм обратной связи?

Сама форма формируется пользователем в соответствии со своим шаблоном Joomla (все равно в каждом шаблоне уже есть красиво оформленные формы обратной связи).
Это дает возможность вставить форму куда угодно и оформить так как вам больше нравится. Легко реализуются варианты вставки формы в модальные окна (кнопки "заказать звонок" или подобные).
Отправкой занимается плагин.


Документацию на плагин и прочитать поподробнее о его работе можно здесь https://hika.su/rasshireniya/radical-form

Мнения и предложения поддерживаются и рассматриваются.
Сообщать баги и свои предложения можно тут https://github.com/Delo-Design/radicalform/issues

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

Скачать можно тут https://github.com/progreccor/radicalform/releases/latest

Если вдруг гитхаб окажется заблокированным - скачать можно и тут http://hika.su/update/free/plg_radicalform.zip
« Последнее редактирование: 24.01.2023, 23:52:20 от Progreccor »
*

rozmislo

  • Новичок
  • 4
  • 0 / 0
ответ и пример находится в документации - https://hika.su/rasshireniya/radical-form#vybor-adresata-formy
я как раз и использую данный пример. Но у меня все равно отправляет определенному адресату.

<form>
<input type="hidden" name="Обращение" value="текст">
<input name="rfTarget" value="3" type="select"> <--- как правильно использовать данную строку?

   <select name="reciever" required>
 <option value="" selected disabled hidden>Выберите получателя</option>
<option value="xxx1@gmail.com">Адрес</option>
<option value="xxx2@gmail.com">Твой адрес</option>
<option value="xxx3@gmail.com">Мой Адрес</option>
 </select>
<input class="uk-input required" name="phone" placeholder="Введите свой номер телефона..." type="text">
<button class="uk-button rf-button-send">Отправить</button>
</form>
*

rozmislo

  • Новичок
  • 4
  • 0 / 0
hidden
ответ и пример находится в документации - https://hika.su/rasshireniya/radical-form#vybor-adresata-formy
Спасибо, уже разобрался) Все очень просто оказалось
<select name="rfTarget" type="hidden">
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Спасибо, уже разобрался) Все очень просто оказалось
<select name="rfTarget" type="hidden">


hidden здесь не нужен
*

KomC

  • Новичок
  • 7
  • 0 / 0
Приветствую.
Подскажите, как в плагине для Yootheme указать нескольких получателей? В настройках не получается больше одного задать. Нигде в документации не нашел про это. Получается только в два адреса можно?
Как вывести сообщение о некорректно заполненном поле тоже не нашел где прописать.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Приветствую.
Подскажите, как в плагине для Yootheme указать нескольких получателей? В настройках не получается больше одного задать. Нигде в документации не нашел про это. Получается только в два адреса можно?
Как вывести сообщение о некорректно заполненном поле тоже не нашел где прописать.
Уточните - речь идет о radicalform elements или просто про radicalform?
Если речь про адресатов - можно указать троих в настройках плагина или неограниченное количество, если использовать систему адресатов (target ID)
*

KomC

  • Новичок
  • 7
  • 0 / 0
Уточните - речь идет о radicalform elements или просто про radicalform?
Если речь про адресатов - можно указать троих в настройках плагина или неограниченное количество, если использовать систему адресатов (target ID)
Да, elements. Показалось странным, что в полях нельзя прописать несколько адресов. А target ID боюсь не осилю.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
никакой сложности с этим нет
вот ссылка на документацию
https://hika.su/rasshireniya/radical-form#vybor-adresata-formy


в настройках плагина radicalform укажите почту и любой target id

затем создайте скрытое поле с указанием этого target id
Код
<input name="rfTarget" value="2" type="hidden">

Можно указать в настройках сколько угодно email с одним target id
« Последнее редактирование: 24.09.2021, 22:57:40 от Progreccor »
*

KomC

  • Новичок
  • 7
  • 0 / 0
затем создайте скрытое поле с указанием этого target id
Спасибо, теперь разобрался. Там поля под эти параметры есть. Обнаружился один нюанс, причину которого нашел не сразу. При добавлении скрытого поля с этими параметрами, на почтовые адреса указанные в полях настроек плагина "Куда слать письма" и "Кому слать копию письма" почта перестает отправляться.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Спасибо, теперь разобрался. Там поля под эти параметры есть. Обнаружился один нюанс, причину которого нашел не сразу. При добавлении скрытого поля с этими параметрами, на почтовые адреса указанные в полях настроек плагина "Куда слать письма" и "Кому слать копию письма" почта перестает отправляться.

Так все правильно - так и задумано поведение. Если вы используете альтернативные пункты назначения – основные адресаты отключаются.
Собственно для этого они и созданы.
Ситуация когда нужно отправить одну форму менеджеру, другую – начальнику, третью еще кому-то..
*

KomC

  • Новичок
  • 7
  • 0 / 0
Я тут вот с каким вопросом. В шаблоне DevStack от Yootheme Pro на тег form завязаны большие радиуса (500), и соответственно они накладываются и на Форму RadicalForm Elements. Смотрится не красиво. Как в Форме убрать эти радиуса?
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Я тут вот с каким вопросом. В шаблоне DevStack от Yootheme Pro на тег form завязаны большие радиуса (500), и соответственно они накладываются и на Форму RadicalForm Elements. Смотрится не красиво. Как в Форме убрать эти радиуса?
для RadicalForm Elements не используется тег формы.
*

KomC

  • Новичок
  • 7
  • 0 / 0
для RadicalForm Elements не используется тег формы.
Если для формы не указать rf-form то появляется сообщение:

ERROR!
There is form without
 the CSS class .rf-form!
 Please add CSS class .rf-form to your form.

Но и без этого я вижу тег uk-form в коде.
Возможно я что то не так понимаю. К сожалению, с CSS я не дружу и оперирую по большей части методом научного тыка.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Если для формы не указать rf-form то появляется сообщение:

ERROR!
There is form without
 the CSS class .rf-form!
 Please add CSS class .rf-form to your form.

Но и без этого я вижу тег uk-form в коде.
Возможно я что то не так понимаю. К сожалению, с CSS я не дружу и оперирую по большей части методом научного тыка.
Rf-from - это не тег формы - это CSS класс. Это совершенно две разные вещи. 
Класс Rf-form никак не влияет на оформление.   
*

KomC

  • Новичок
  • 7
  • 0 / 0
Rf-from - это не тег формы - это CSS класс. Это совершенно две разные вещи. 
Класс Rf-form никак не влияет на оформление.
Пусть так. Но поля формы остаются круглыми и как это исправить я понятия не имею и подсказать некому.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Ну зайти в раздел стиль и поправить под себя. В более оперативном режиме можно получить ответы в чате телеграмм https://t.me/yoothemepro_joomla
*

KomC

  • Новичок
  • 7
  • 0 / 0
Ваши ответы генерируют ещё больше вопросов  ^-^
Я так понимаю, я задаю неправильные вопросы, раз уж Вы меня посылаете туда, где я наверняка ещё больше запутаюсь и только потеряю время. Этот чат мне знаком.
Просто я надеялся, что например в атрибутах самих полей можно прописать некий класс чтобы всё встало на свои места.
Ладно, забейте, найду другое решение.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Я честно говоря не понимаю что должно «встать на места» если там просто стоит стандартный тег со стандартным классом, вид которого настраивается вами в вашей теме.

Если у вас возникают какие то трудно понимаемые вопросы - задайте их в чате, где можно оперативно их решить в режиме онлайн.
Я тоже в этом чате есть и могу помочь.
*

Ленивец

  • Новичок
  • 1
  • 0 / 0
Сначало хотелось бы поблагодарить автора за его работу.
Специально зарегистрировался на форуме для того, что бы поучаствовать в именно этой дискуссии.
Прошу строго не судить, я с php и Joomla! начал знакомство пару месяцев назад.
Уважаемый автор разработки, не могли бы вы все таки немного разделить
обработчик onAjaxRadicalform() хотя бы на фронт и административную часть.
Разбираться новичкам как там все работает трудновато.
Вникать в код начал поскольку самому надо написать плагин для Joomla,
по чтению и записи данных в дополнительные таблицы сайта.
Неплохо было бы для административной части функционала плагина хотя бы проверять
авторизацию. Я не разобрался до конца с привелегиями, но хотябы так
в onAjaxRadicalform().
Код
$user = JFactory::getUser();
If (!$user->id && $this->app->isClient('administrator'))
   return 'access denited';
А то к примеру вот такой командой можно очистить логи
удалено модератором
без всякой авторизации.

Для получения последнего номера в логе как мне кажется может не стоит читать весь лог,
fgetcsv($handle, 200000, $delimiter), и обходить потом его в цикле.
Могу предложить решение звезд с неба не хватающее,
Код
 public function getLastLogNumber($delimiter = ';') {
        $MAX_LEN = 20000;
        $latestNumber = 1;
        $log_path = str_replace('\\', '/', Factory::getConfig()->get('log_path')). '/plg_system_radicalform.php';
        if (!file_exists($log_path) || !is_readable($log_path))
            return $latestNumber;
       
        if(($fsize = filesize($log_path))<$MAX_LEN){
            $MAX_LEN = $fsize;   
        }
        if ($handle = fopen($log_path, "r")) {                         
            $seek = fseek($handle, -$MAX_LEN, SEEK_END);              // установим указатель чтения на максимальную длину строки от конца файла
            $log = fread($handle, $MAX_LEN);                         // прочитаем данные от указателя до конца файла
            fclose($handle);
            //$lastpos = strripos($log, PHP_EOL ) + 1;
            //PHP_EOL - одни проблемы в винде!           
            $lastpos = strripos($log, "\n") + 1;
            $last_string = substr($log, $lastpos);   // найдем позицию последнего вхождения символа "конца_строки" и выберем подстроку начиная со следующего символа
           
            $item = str_getcsv($last_string,"\t");
            $json = json_decode($item[2], true);
            if (isset($json["rfLatestNumber"])) {
                $latestNumber = $json["rfLatestNumber"];               
            }
            return $latestNumber;                                   
        }
    }

Надеюсь пост окажется полезен.
« Последнее редактирование: 10.11.2021, 10:20:40 от Taatshi »
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Отвечаю по заданным вопросам:
1. Если хотите высказать свои идеи - лучше их высказывать в телеграм чате https://t.me/projoomla
Форум практически мертв.

2.

обработчик onAjaxRadicalform() хотя бы на фронт и административную часть.
Разбираться новичкам как там все работает трудновато.

Архитектура AJAX плагинов для Joomla такова, что точка входа для них одна. Поэтому это не моя прихоть - одна точка входа.
Правда, я не вижу в этом никакой проблемы - Get параметры собственно для того и существуют, чтобы все разделять.
3.

Цитировать
А то к примеру вот такой командой можно очистить логи
Это конечно вы большой "молодец", что выкладываете в  открытом доступе на форуме сообщения об уязвимостях, вместо того, чтобы передать их автору....
Я в курсе об этих двух строчках и они будут исправлены в ближайшем релизе. Сейчас код анализируется на другие возможные проблемы и по итогу выйдет новая версия.
Критических уязвимостей на данный момент пока не выявлено.

3.
Цитировать
Для получения последнего номера в логе как мне кажется может не стоит читать весь лог,
fgetcsv($handle, 200000, $delimiter), и обходить потом его в цикле.
А какие проблемы в том, чтобы прочитать весь лог и обойти его в цикле? Память кончится?
Минимальный объем памяти, который сейчас выделяется скриптам - 128мб
сколько там самый большой лог занимает?100килобайт?
Средний размер записи в логах - 1500 байт , ок давайте возьмем в 10 раз больше - 10к
пускай таких записей за месяц придет 10 000!
10 000*10 000 = 100 000 000, то есть меньше чем 128 мб.
ну и если уж логи начнут приближаться к таким цифрам - всегда можно настроить ротирование.

Если возникнет такая проблема у кого либо - тогда и будут вноситься изменения в код.

Ну и если хотите обсуждать код еще раз - это делается в чате https://t.me/projoomla
« Последнее редактирование: 10.11.2021, 11:03:19 от Progreccor »
*

rezon777

  • Захожу иногда
  • 55
  • 0 / 0
  • Пилю интернет магазин и сайт на JOOMLA
А можете помочь поставить, а лучше бы видео записать как делать эти формы в материалах Joomla в определённых местах с разными адресатами E-MAL?
Или видео на ютюб запилить, если у вас есть канал, думаю это была бы интересная тема для людей!
« Последнее редактирование: 24.12.2021, 06:46:06 от rezon777 »
*

rezon777

  • Захожу иногда
  • 55
  • 0 / 0
  • Пилю интернет магазин и сайт на JOOMLA
Или сделать гайд с скринами для полных чайников как делать в админки и что сюда вносить!

*

Stek

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
  • Вольный стрелок
Замечательный плагин!
Большое Вам спасибо!
Ставил на несколько сайтов. Работает великолепно!
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
Вышла новая версия RadicalForm 3.1.0 адаптированная для Joomla 4



  • удалена интеграция с мессенджером диалог - мессенджер стал закрытым и не работает с частными клиентами
  • добавлена совместимость с Joomla 4. Исправлен внешний вид и поведение в админке
  • удалена зависимость от jQuery в админке сайта
  • добавлен перехватчик ошибок для внешних плагинов и кастомного кода. Теперь в случае возникновения ошибки в кастомном плагине или коде radicalform не будет падать.
  • внешние косметические изменения
  • поправлен вывод ссылок для перехода в настройки плагина
  • добавлен ряд проверок для улучшения безопасности плагина
*

Sacrosanct

  • Новичок
  • 4
  • 0 / 0
Спойлер
[свернуть]
решено, не правильно теги <form></form> прописал...

вопрос такой теперь :)
как сделать так, чтоб форма после уведомления, что заказ отправлен, закрывалась?
« Последнее редактирование: 16.08.2023, 17:42:52 от Sacrosanct »
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
на сайте это написано как сделать
modal.hide
*

Sacrosanct

  • Новичок
  • 4
  • 0 / 0
Всё прописано, но почему-то не срабатывает...
Прикрепляю скрин...


И второй вопрос, как в теме передавать тайтл страницы с которой был сделан запрос?
Не совсем понятно за какой товар пишет клиент.
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
тайтл страницы и так записывается в форму
так записывается адрес страницы
и покажите кнопку форму
а лучше все вопросы задавать в телеграм чате https://t.me/projoomla
Сюда я захожу очень редко
*

Sacrosanct

  • Новичок
  • 4
  • 0 / 0
тайтл страницы и так записывается в форму
так записывается адрес страницы
и покажите кнопку форму
а лучше все вопросы задавать в телеграм чате
Сюда я захожу очень редко
Благодарю, в будущем буду писать в тг, так как уже речь завёл здесь, то позвольте продолжить :)

Код
<p align="center"><a href="#modal" class="uk-button uk-button-default" style="background-color: #dc005f; color: white;" uk-toggle uk-icon="pencil">Записаться на замер </a></p>
<div id="modal" uk-modal class="rf-form">
<div class="uk-modal-dialog uk-modal-body"><button type="button" class="uk-modal-close-default" aria-label="Close" uk-close></button>
<p><span style="color:#dc005f" uk-icon="user">*</span> Имя<input name="name" pattern="^[А-Яа-яЁёіІєЄ\s]+$" required="" type="text" class="uk-input uk-animation-shake" placeholder="Как к Вам обращаться?">
<span style="color:#dc005f" uk-icon="receiver">*</span> Телефон<input maxlength="12" name="phone" pattern="[0-9]{9,12}" required="" type="tel" id="phone" class="uk-input uk-animation-shake" placeholder="7XXXXXXXXX">
<span style="color:#dc005f" uk-icon="location">*</span> Адрес<textarea maxlength="50" name="address" required="" class="uk-input uk-animation-shake" placeholder="Кловская, 13"></textarea>
<span style="color:#dc005f" uk-icon="comments"></span> Комментарий<textarea maxlength="50" name="additional" class="uk-input uk-animation-shake" placeholder="..."></textarea>
<span style="color:#dc005f" uk-icon="calendar">*</span> Дата замера/встречи<input name="date" pattern="^[0-9\.]+$" required="" type="date" class="uk-input uk-animation-shake" placeholder="Дата замера/встречи">
<span style="color:#dc005f" uk-icon="happy">*</span><input name="" required="" type="checkbox" class="uk-animation-shake"> Я подтверждаю <span style="text-decoration: underline;">передачу личных данных</span></p>
<p style="height:20px;">&nbsp;</p>
<p><button class="uk-form-custom uk-button uk-button-primary rf-button-send" data-rf-call="12">Записаться на замер</button></p>
</div>
</div>

хотелось бы добавить hidden поле, как описано в статье, и в value вписать тайтл, только как это правильно сделать не понимаю пока)
*

Progreccor

  • Захожу иногда
  • 273
  • 25 / 1
для модального окна указан id = "modal", а в скрипте указан #callback.
приведение все к одному решает проблему.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

QuickForm - форма с функциями калькулятора и зависимыми полями

Автор varX

Ответов: 1332
Просмотров: 215789
Последний ответ 29.09.2021, 16:40:57
от varX
AJAX Web-Factor Form - простая форма обратной связи для Joomla 3+

Автор orsy

Ответов: 75
Просмотров: 22406
Последний ответ 17.07.2021, 10:01:40
от Biss
Форма обратной связи для Joomla 2.5

Автор ForQue

Ответов: 0
Просмотров: 3890
Последний ответ 10.01.2021, 10:57:08
от ForQue
Модуль конструктор формы обратной связи simpleForm2 для Joomla 1.0 / joostina 1.2

Автор vs12345

Ответов: 21
Просмотров: 23939
Последний ответ 25.09.2020, 16:21:22
от svarg
Perfect ajax Popup Contact Form не отправляет вложения

Автор fireman

Ответов: 0
Просмотров: 3638
Последний ответ 11.04.2019, 18:50:20
от fireman