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

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
Прошло уже довольно таки много времени, поля в целом оказались вполне рабочим инструментом.
Но к сожалению все существующие фильрации оказались платными, мало того, что платными, так это еще и отдельные виды фильрации материалов.

Мы решили исправить эту проблему и сделали собственную реализацию фильтров для полей Joomla.

Система состоит из плагина и модуля.

Плагин надо активировать и забыть про него, так как он нужен чтоб включить механизмы фильрации в категории материалов.
Модуль надо активировать и настроить, указав категорию материалов и типы полей поддерживаемых.

В общем тестируем предлагаем и наслаждаемся :-)

Официальная страница модуля:
https://joomline.ru/rasshirenija/moduli/jlcontentfieldsfilter.html

Ссылка на скачивание:
https://joomline.net/ru/downloads/jlcontentfieldsfilter.html

Ссылка на документацию:
https://joomline.ru/docs/99-jlcontentfieldsfilter.html

Перед тем как задать вопрос, по поводу того, что не работает проверьте системные требования и убедитесь, что системный плагин "Система — JlContentFieldsFilter" включен.

Демо версия фильтра


Минимальная версия Joomla для корректной работы фильтра - Joomla 3.8.0
Внимание!!! Если у вас Joomla ниже 3.8.3, то для получения корректного результаты не используйте значения по умолчанию для полей.
« Последнее редактирование: 27.12.2020, 20:26:17 от zikkuratvk »
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Совместимость гарантируется с 3.8.2, установку ограничил 3.8. У кого меньше установить не поучится. Сначала обновиться, потом устанавливать.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Таки переопределили модель =) Это наиболее верное решение, хоть и костыль по сути. (хотя лучше уже эту модель https://github.com/joomla/joomla-cms/blob/staging/components/com_content/models/articles.php)
P.S у Joomla есть layouts для полей может их юзать
https://github.com/joomla/joomla-cms/tree/staging/layouts/joomla/form/field
Будет удобнее один раз переопределил в шаблоне и везде одинаковые поля.
« Последнее редактирование: 26.11.2017, 17:40:45 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
С моделью история давняя, я еще MiniCCK делал, сначала просил триггер сделать, потом пулл-реквест давал, пол года меня мурыжили и я плюнул на это и сделал подмену.
Лэйауты для фронта не подхолят для фильтра, а для того, что есть в админке, лэйаутов нет.
В самом плагине я применил лэйауты, только свои собственные.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
В самом плагине я применил лэйауты, только свои собственные.
А подстроить данные по дефолтные лайату. Там форма и тут форма. можно и Jform сделать и к нему просто элементы добавлять. Хлопадтнее конечно, но зато итого удобнее. Но это так мысли в слух.

потом пулл-реквест
Может на четверку попробовать?
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
А подстроить данные по дефолтные лайату. Там форма и тут форма. можно и Jform сделать и к нему просто элементы добавлять. Хлопадтнее конечно, но зато итого удобнее. Но это так мысли в слух.
Я за разнообразие и гибкость. В модуле, например, чекбоксы и радио выведены в два столбика, что уменьшает высоту модуля и отличается от обычного вывода.
Может на четверку попробовать?
Я уже врядли буду, т.к. времени отнимает много, а толку, как выяснилось нет.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
чегой-то не пашет.
плагин опубликован, созданы радио, лист и текстовое поля.
но вместо фильтра 2 кнопки висят: отправить запрос и сбросить фильтр, а самих фильтров - нету.
3.8.2, с нуля установленная
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
чегой-то не пашет.
плагин опубликован, созданы радио, лист и текстовое поля.
но вместо фильтра 2 кнопки висят: отправить запрос и сбросить фильтр, а самих фильтров - нету.
3.8.2, с нуля установленная
Собрал 1.0.1 версию...
Пофиксили несколько багов и доделали инстал: https://github.com/Joomline/JlContentFieldsFilter/releases/tag/1.0.1
сейчас вроде все ок должно быть.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ага, завелось, но фильтрует только по одному параметру.
т.е один из фильтров всегда "главный" и собирает все-любое, если его условие удовлетворено. т.е остальные фильтры игнорятся.
типа, если заполняю текстовое поле, то радио и лист не фильтруют ничего.

+ при очищенном радио лезет варнинг
Warning: in_array() expects parameter 2 to be array, string given in \modules\mod_jlcontentfieldsfilter\layouts\field\radio.php on line 34

немного по логике ещё.
странно, что для радио есть кнопка очистки, а для остальных - нет.
по идее, тогда и список тоже надо очищать.
а если в нем задано дефолтное пустое поле, то и к радио можно добавить значение "не фильтровать".
либо вообще в заголовок полей вынести чекбоксы, чтобы связанную группу фильтров сворачивать и/или деактивировать (прятать под спойлер или прозрачность 0.5 делать).
так будет и компактнее и единообразнее.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Привет Антон. Неправда твоя  ^-^
1. Поиск http://poligon3.argens.ru/test-cat авторизация poligon3 в оба поля. Скрин модуля http://joxi.ru/J2b6kDeIXNPP02 По очереди сверху вниз выбери все что выбрано на скриншоте и увидишь как убывают материалы по одному. Не забывай после каждого выбора производить поиск  ^-^. Специально для тебя сделал.
2. Варнинг посмотрю.
3. Для радио есть кнопка очистки по той простой причине, что если нажать радио, то отжать просто так не получится, по этому кнопка очистки. Все остальные элементы очищаются руками без дополнительных элементов управления. А для очистки формы полностью есть кнопка в самом низу модуля.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
короче, пока что только чекбоксы отдельно что-то фильтруют.
а вот заполнение текстового поля произвольной фигней заставляет фильтр показывать вообще все.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
С вообще всем поборемся. В остальном ты не прав.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
такое ощущение, что фильт по ИЛИ выводит, а не по И, если несколько задействовано.
на скрине и чекбоксы тоже не все совпадают.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
ну камон!  ;D
http://joxi.ru/vAWvMwZckL6BR2
Это как раз относится к случаю "выводит вообще все", сейчас исправил эту проблему, проверь.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
ну так там поле с текстом - пустое было ).

все ещё глючит.
допустим, если сбросить форму и только radio 2 выставить, не найдет ничего.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
ну так там поле с текстом - пустое было ).

все ещё глючит.
допустим, если сбросить форму и только radio 2 выставить, не найдет ничего.
Потому, что на радио 2 нет ничего. По моему логично.  ^-^
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Пипец. Это не мой глюк. Зачем-то сделано так, что если "Значение по умолчанию" у поля написано и в материале выбрано значение по умолчанию, то оно не пишется в таблицу значений. Для избежания этого глюка не надо устанавливать значения по умолчанию у фильтруемых полей.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ага, надо.
У вас же плагин. Дописать строку на after save не проблема.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
ну тогда надо ещё и пост-инсталлом прогонять.
Тоже вариант. Если делать для хомячков, то все должно работать без танцев с бубном.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
кстати, интересно было бы ещё по нагрузке стату получить.
если на какой-то рабочий проект поставите, отпишитесь, как оно работает при 500-1000 итемев и 3х, допустим, фильтров.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
кстати, интересно было бы ещё по нагрузке стату получить.
если на какой-то рабочий проект поставите, отпишитесь, как оно работает при 500-1000 итемев и 3х, допустим, фильтров.
Все будет в порядке. доп.поля Joomla по структуре очень удобно сделаны для фильтрации. (это бесит больше всего с фильтрацией и школьный справиться, а тригер сделать они не могут)

Кстати добавите between

И еще добавте в описание по какому принципу фильтрует (и\или) помню JA, да и я долго воевали на переключателем =)
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
Собрал новый пакет со всеми правками: https://github.com/Joomline/JlContentFieldsFilter/releases/tag/1.0.2
Следующий релиз будет с автоапдейтом.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
Первая официальная версия фильтра.
v1.0.3
https://joomline.net/ru/downloads/jlcontentfieldsfilter.html

Добавлен сервера автоапдейта.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
По поводу изменения своств полей при установке.
Такие вещи делать нельзя не спросив пользователя, так как это можно посчитать за вредительство.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин для закрытия ссылок в Joomla 3 - noExternalLinks

Автор buyanov

Ответов: 65
Просмотров: 16984
Последний ответ 06.04.2025, 02:51:35
от azm1n
SW JProjects - Менеджер цифровых проектов для Joomla! CMS™

Автор Septdir

Ответов: 59
Просмотров: 8099
Последний ответ 24.03.2025, 13:06:54
от sergeytolkachyov
Calendar Filter — модуль для фильтрации материалов Joomla

Автор Sulpher

Ответов: 0
Просмотров: 1152
Последний ответ 09.11.2024, 14:01:49
от Sulpher
WT Telegram bot - отправка данных из Joomla в Telegram-бота

Автор sergeytolkachyov

Ответов: 3
Просмотров: 2172
Последний ответ 21.08.2024, 17:19:19
от sergeytolkachyov
WT cdek library для Joomla. PHP библиотека для разработчиков расширений

Автор sergeytolkachyov

Ответов: 0
Просмотров: 1325
Последний ответ 19.06.2024, 22:09:54
от sergeytolkachyov