Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#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

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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте!

Разрабатываю вид в компоненте, который представляет собой форму для внесения контакта: ФИО, телефон. Для вывода заполняемых полей использую файл формы (.xml). Бывает случай, когда одному человеку надо добавить более чем один телефон, и их число заранее неопределено.
Чтобы реализовать такую форму, надо писать свой java-скрипт, который будет по клику на какую-то кнопку "Добавить" вставлять в HTML код страницы поле ввода дополнительного телефона?
« Последнее редактирование: 21.10.2020, 15:28:59 от borro »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Опциональное поле в форме
« Ответ #1 : 21.10.2020, 15:36:02 »
Чтобы реализовать такую форму, надо писать свой java-скрипт, который будет по клику на какую-то кнопку "Добавить" вставлять в HTML код страницы поле ввода дополнительного телефона?
Ну в принципе вы правильно мыслите! А в чем проблема?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #2 : 21.10.2020, 15:43:57 »
Чтобы реализовать такую форму, надо писать свой java-скрипт, который будет по клику на какую-то кнопку "Добавить" вставлять в HTML код страницы поле ввода дополнительного телефона?
Можно свой, но не обязательно. Еще можно использовать стандартный вместе с полем типа subform и параметром repeatable. А можно разрешить добавление телефонов через запятую (если ваши юзеры смогут это понять).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #3 : 21.10.2020, 15:52:40 »
Ну в принципе вы правильно мыслите! А в чем проблема?
Пока ни в чем, узнаю, как оно обычно делается. Всем спасибо
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Опциональное поле в форме
« Ответ #4 : 22.10.2020, 13:37:25 »
subform решает подобное на раз-два.
Поиск subform field type
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #5 : 23.10.2020, 11:27:52 »
Здравствуйте!

Воспользовался я subform. Заметил странную некрасивую особенность: то, что прописано в атрибуте name такого поля, выводится над всей командой этих размножаемых сабформ и прямо на английском:

Это как-то в xml формы можно задать, чтобы не выводился этот атрибут?
Разобрался. Надо было проставить пустую строку в атрибут с названием label.
« Последнее редактирование: 23.10.2020, 14:50:59 от borro »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #6 : 23.10.2020, 15:01:50 »
А у всех так отображается multiple поле - с двумя +?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #7 : 23.10.2020, 15:06:20 »
А у всех так отображается multiple поле - с двумя +?
Вроде да. Первый "+" для добавления в начало списка (или когда список пуст - он тогда один этот плюс). А второй относится уже к первому (и, видимо, единственному на скрине) элементу и добавляет новый элемент в список после текущего.
В настройках поля можно указать какие кнопки показывать или не показывать. Можно оставить только верхний плюс, а из каждой строки с телефоном убрать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #8 : 23.10.2020, 16:33:36 »
Можно оставить только верхний плюс, а из каждой строки с телефоном убрать.
У меня для ситуации на скриншоте выше кнопки были прописаны только для subform поля(родительского), в дочерней XML атрибута buttons вообще нет, но кнопки плюс/минус отображаются у каждого дочернего поля. Пробовал удалять этот атрибут или оставлять пустым в родительском поле типа subform, но это тоже не помогло, верхний плюс всегда отображается.
Надо только верхний одинокий плюс убрать, либо оставить только минусы у отдельных дочерних размножаемых полей. Пока не получилось ни то, ни другое средствами самой xml. Кто-нибудь такое делал?
« Последнее редактирование: 23.10.2020, 16:44:36 от borro »
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #9 : 23.10.2020, 20:11:31 »
Кто-нибудь такое делал?
Да. Попробуйте добавить атрибут buttons:
Код
<field type="subform" buttons="remove" ... >
_https://docs.joomla.org/Subform_form_field_type
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #10 : 26.10.2020, 08:56:43 »
Да. Попробуйте добавить атрибут buttons:
Код
<field type="subform" buttons="remove" ... >
_https://docs.joomla.org/Subform_form_field_type
Здравствуйте! Спасибо.
Другой вопрос по этой теме. У человека может быть несколько телефонов. Сможет ли функция заполнения данных формы loadFormData() заполнить все эти subform поля телефонами и как должны выбираться эти телефоны из БД: в виде одной строки с кучей колонок с телефонами или несколькими строками? Или для этой ситуации уже надо отказываться от формы и идти "в рукопашную" делать вывод?
« Последнее редактирование: 26.10.2020, 14:10:39 от borro »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Опциональное поле в форме
« Ответ #11 : 26.10.2020, 09:37:04 »
и как должны выбираться эти телефоны из БД в виде одной строки с кучей колонок с телефонами или несколькими строками
Для SubForms - это Json string  - в DB - type Text

- В обще вся  SubForms - это как простое одно поле Texterra // - но перед вставкой данных - его парсят в массив объектов .
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #12 : 26.10.2020, 14:12:57 »
Для SubForms - это Json string  - в DB - type Text

- В обще вся  SubForms - это как простое одно поле Texterra // - но перед вставкой данных - его парсят в массив объектов .
Сложно вас понять, gartes. Может вы делали такое и можете выдрать пример кода, когда subform заполняется заранее неизвестным числом значений?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #13 : 26.10.2020, 16:21:13 »
Сложно вас понять, gartes
Тут точнее не опишешь. Получите значения поля и print_r-ните его - тогда понятней будет. В форму надо передать в таком же формате, чтоб все заполнилось.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Опциональное поле в форме
« Ответ #14 : 26.10.2020, 17:35:12 »
Тут точнее не опишешь.
- Простите - Но Вас поставили сюда подслушивать ! - А Вы подсматриваете ! ))))) - шутка !
Сложно вас понять, gartes. Может вы делали такое и можете выдрать пример кода, когда subform заполняется заранее неизвестным числом значений?
Когда subform - Что делает?  заполняется ? - ))) -
ну первое - не известным количеством значений - Если вы читали Доку по subform - то должны были заметить
Код
default (optional) is the default value, JSON string.


В форму надо передать в таком же формате, чтоб все заполнилось.

Что бы передать - то еще раз то же что и текст только Json!
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #15 : 21.11.2020, 13:43:18 »
Тут точнее не опишешь. Получите значения поля и print_r-ните его - тогда понятней будет. В форму надо передать в таком же формате, чтоб все заполнилось.
Здравствуйте!

Дошел вот до чего: вижу, что производится попытка отобразить JSON значение в рамках поля subform, а именно количество дочерних input элементов такое же, сколько телефонов хранится в базе данных(в БД они хранятся в одной колонке таблицы в виде строк '[ "+79881111111", "+79881111112", "+79881113112"]'). Вот только эти дочерние subform поля пустые, без значений.
Чего не хватает CMS, чтобы еще и значения вставить в subform поля?
Вот файл модели вида:
Спойлер
[свернуть]
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #16 : 21.11.2020, 15:43:07 »
Чего не хватает CMS, чтобы еще и значения вставить в subform поля?
Там формат значения другой должен быть. Двумерный массив. Первый уровень - отдельные строки, второй уровень - элементы в строке. Если у вас в строке только одно поле телефона, то значение должно быть вроде такого:
[[ "+79881111111"], ["+79881111112"], ["+79881113112"]]
Посмотрите в каком формате приходят данные из формы и потом передавайте в таком же.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #17 : 21.11.2020, 17:46:40 »
Посмотрите в каком формате приходят данные из формы и потом передавайте в таком же.
Посмотрел, но там, совсем не в виде строки. Я не там смотрю?
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Re: Опциональное поле в форме
« Ответ #18 : 22.11.2020, 15:09:49 »
Посмотрел, но там, совсем не в виде строки. Я не там смотрю?
Там-там. Это массив:
phones - имя субформы
phonesX - имя (с номером) строки субформы
phone - имя поля в строке субформы и его значение.
Субформа - это ж одно поле. А значит значением его должен быть массив. Перед сохранением он преобразуется в json-строку.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Опциональное поле в форме
« Ответ #19 : 25.12.2020, 21:09:31 »
как писал gartes про типы полей в БД и прочее
добавлю вот такое я ставлю в метод save и больше ничего не делаю
Код
if (is_array($data['service_data_subform'])) { //Проверка - надо ли сводить
            $data['service_data_subform'] = json_encode($data['service_data_subform']); // Сводим данные subform для сохранения.
        }

Загрузка в форму происходит по умолчанию
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Re: Опциональное поле в форме
« Ответ #20 : 27.12.2020, 21:03:14 »
Спасибо, platonische, помогло! В базе данных к значениям добавились слова, зависящие от названия subform-поля.
Хочу выводить эти значения в читабельном формате через запятую(без кнопок, в одном поле). В Joomla есть функции, которые бы очистили данные от ненужных слов(пример на рисунке)? json_decode? :)
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Опциональное поле в форме
« Ответ #21 : 28.12.2020, 12:16:13 »
да json_decode или JRegistry преобразуют данную строку в массив и объект соответственно. Выбирайте что удобнее. А дальше формируйте как вам угодно
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как написать сложное кастомное поле?

Автор Gover

Ответов: 1
Просмотров: 808
Последний ответ 11.07.2018, 00:14:34
от fsv
Если нужно добавить поле в subform repeatable своим ява скриптом - как сделать?

Автор Progreccor

Ответов: 7
Просмотров: 1087
Последний ответ 03.04.2018, 16:03:54
от Progreccor
Поле для прикрепления файлов в администраторе

Автор Joker_V

Ответов: 1
Просмотров: 1193
Последний ответ 09.04.2016, 21:17:02
от Joker_V
Добавляю поле Featured в компоненте

Автор platonische

Ответов: 6
Просмотров: 1337
Последний ответ 21.10.2015, 18:06:48
от Aleks.Denezh
[ РЕШЕНО ] Добавляем свое поле

Автор platonische

Ответов: 1
Просмотров: 1013
Последний ответ 20.10.2015, 18:34:05
от platonische