Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 5218 Просмотров
*

SFE

  • Захожу иногда
  • 68
  • 0 / 0
Попытаюсь детально описать проблему, так что букв будет много ^-^.

Пытаюсь внедрить в сайт на связке Joomla 3.4.5 + VirtueMart 3.0.12 систему оплаты Интеркасса.

Действовал по инструкции - создал способ оплаты, ввел id кассы и все необходимые параметры в его настройках.
Настроил все что нужно в личном кабинете на сайте interkassa.
В их системе есть возможность для тестов использовать тестовую валюту, чтобы для настройки не совершать реальные платежи.
Иду на свой сайт, добавляю товар в корзину, прохожу оформление заказа и подтверждаю его. Меня перенаправляет на сайт interkassa, где я в списке вариантов оплаты выбираю тестовый, платеж проходит, и меня перенаправляет на мой сайт на страницу, где выводится следующее:
Цитировать
Спасибо за Ваш заказ!
Способ оплаты    interkassa Интеркасса
ID заказа    18
Статус заказа    Оплачен
Иду в админку. Заказы и покупатели -> Заказы. Вижу свой заказ. Статус заказа - Оплачен, все верно. (Надо заметить, что статус заказа этот я создавал сам, после этого задал его для способа оплаты Интеркасса).
Здесь - Настройки->Настройки->Электронная почта статус  заказа Оплачен указан в этих полях: Статус заказа по умолчанию для создания выписанного счета, Статус заказа по умолчанию для отправки эл.письма покупателю, Статус заказа по умолчанию для отправки эл.письма продавцу.

И тем не менее! Virtuemart НЕ ОТПРАВЛЯЕТ ПИСЬМА ни покупателю, ни администратору магазина, о совершенном заказе!
При этом всем, инфа о совершенном платеже отображается в личном кабинете Interkassa, и их система отправляет мне, администратору сайта на email информацию с деталями перевода.

Отправка писем с сайта не идет только когда при покупке выбираешь способ оплаты Интеркасса и проходишь все те шаги для покупки, которые я описал выше!
Во всех иных случаях Письма приходят и покупателю и продавцу!

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

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
Не отправлялся заказ ни продавцу ни покупателю. На отправку ли не отправку влияет статусзаказа. он ставится в VirtueMart -> настройки -> Настройки -> Электронная почта. У меня отправлялось письмо продавцу если в "Статус заказа по умолчанию для отправки эл.письма продавцу" стояло значение  "В ожидании". В "Статус заказа по умолчанию для отправки эл.письма покупателю" такого статуса нет.
 открываете файл administrator\components\com_virtuemart\views\config\tmpl\default_email.php и находите код
Код
VmConfig::get('email_os_s',array('U','C','S','R','X')),
и
Код
VmConfig::get('email_os_v',array('U','C','R','X'))

Каждая буква соответствует статусу
Код
U COM_VIRTUEMART_ORDER_STATUS_CONFIRMED_BY_SHOPPER
C COM_VIRTUEMART_ORDER_STATUS_CONFIRMED
X COM_VIRTUEMART_ORDER_STATUS_CANCELLED
R COM_VIRTUEMART_ORDER_STATUS_REFUNDED
S COM_VIRTUEMART_ORDER_STATUS_SHIPPED
F COM_VIRTUEMART_ORDER_STATUS_COMPLETED
D COM_VIRTUEMART_ORDER_STATUS_DENIED

Удаляете букву и выбранный статус заказа отправляет письмо.
*

WooSuuP

  • Захожу иногда
  • 235
  • 11 / 1
  • Ословед Интерсвязи
Не отправлялся заказ ни продавцу ни покупателю. На отправку ли не отправку влияет статусзаказа. он ставится в VirtueMart -> настройки -> Настройки -> Электронная почта. У меня отправлялось письмо продавцу если в "Статус заказа по умолчанию для отправки эл.письма продавцу" стояло значение  "В ожидании". В "Статус заказа по умолчанию для отправки эл.письма покупателю" такого статуса нет.
 открываете файл administrator\components\com_virtuemart\views\config\tmpl\default_email.php и находите код
Код
VmConfig::get('email_os_s',array('U','C','S','R','X')),
и
Код
VmConfig::get('email_os_v',array('U','C','R','X'))

Каждая буква соответствует статусу
Код
U COM_VIRTUEMART_ORDER_STATUS_CONFIRMED_BY_SHOPPER
C COM_VIRTUEMART_ORDER_STATUS_CONFIRMED
X COM_VIRTUEMART_ORDER_STATUS_CANCELLED
R COM_VIRTUEMART_ORDER_STATUS_REFUNDED
S COM_VIRTUEMART_ORDER_STATUS_SHIPPED
F COM_VIRTUEMART_ORDER_STATUS_COMPLETED
D COM_VIRTUEMART_ORDER_STATUS_DENIED

Удаляете букву и выбранный статус заказа отправляет письмо.

У меня проблема такова немного иная. Статус заказа для отправки покупателю нельзя выбрать "В ожидании". Хрен бы с ним. Переходит в способы оплаты и в "Статус заказа для транзакций на рассмотрении" меняем на "Подтвержден". Но после оформления заказа сайт падает с ошибкой типа 404. Вот только вместо 404 написано 1. Как быть с этой проблемой? Может есть вариант как проставить статус "в ожидании" для покупателя?
*

Руфина

  • Новичок
  • 3
  • 0 / 0
Есть решение. Да, действительно в настройке отправки почтовых уведомлений для покупателя не возможно выбрать статус "в ожидании". Сделайте следующее: создайте СВОЙ новый статус в списке статусов, кроме тех, что уже имеются по умолчанию. Присвойте ему уникальный буквенный код, сохраните. После этого на странице настроек отправки почтовых уведомлений в строке для покупателя появится вновь созданный вами статус (страницу не забудьте обновить, если вы ее не закрывали). Теперь почтовые уведомления приходят! При необходимости установите этот же статус в плагинах оплаты.
*

dj_serg

  • Захожу иногда
  • 98
  • 2 / 0
у меня такая же проблема не приходит письмо клиенту. По умолчанию присваиваться статус заказа    
В ожидании
а на него уведомления не приходят.
Если я в ручную  в админке изменю статус заказа на подтверждён то письмо клиенту сразу приходит.
Для решения проблемы нужно сделать так чтоб по умолчанию при заказе статус заказа был Подтвержден.
Но как это сделать не знаю. Кто может подсказать как это сделать ??
Плиз подскажите 2-й день играюсь   
*

kremisa

  • Новичок
  • 9
  • 0 / 0
  • Прывет!
у меня такая же проблема не приходит письмо клиенту. По умолчанию присваиваться статус заказа    
В ожидании
а на него уведомления не приходят.
Если я в ручную  в админке изменю статус заказа на подтверждён то письмо клиенту сразу приходит.
Для решения проблемы нужно сделать так чтоб по умолчанию при заказе статус заказа был Подтвержден.
Но как это сделать не знаю. Кто может подсказать как это сделать ??
Плиз подскажите 2-й день играюсь   

Та же в точь точь проблема, помогите пожалуйста.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться