Новости 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 для атрибута addfieldprefix namespace 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 #разработка

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

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
Стоит PhocaGallery версии 2.6.1. Скачал новую 2.7.1. Как корректно обновиться, чтоб без всяких косяков, ровно встало?
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #1 : 24.05.2010, 09:44:10 »
Стоит PhocaGallery версии 2.6.1. Скачал новую 2.7.1. Как корректно обновиться, чтоб без всяких косяков, ровно встало?

я прямо сверху зафигачил, она видит, что есть старая версия, и предлагает на выбор две кнопки: ОБНОВИТЬ / ИНСТАЛЛ

вот тут не ошибись, и нажми ОБНОВИТЬ =), что по буржуйски будет выглядеть как UPGRAGE и всё.

кнопуськи:



« Последнее редактирование: 24.05.2010, 09:51:45 от SpeedBoy »
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #2 : 24.05.2010, 09:51:31 »
Ах! какие красивые... прям нажать хочется :)
подпись
*

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
Re: Как корректно обновить галерею?
« Ответ #3 : 24.05.2010, 16:22:09 »
Спасибо! Сам что-то не допер ^-^
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #4 : 24.05.2010, 16:27:03 »
Спасибо! Сам что-то не допер ^-^

на самом деле для таких целей надо иметь копию сайта, и тренироваться на нём.
правда, я не пользуюсь хостингом, возможно мне легче говорить про копии, бэкапы и прочее :)
подпись
*

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
Re: Как корректно обновить галерею?
« Ответ #5 : 27.05.2010, 02:46:38 »
Я как раз поэтому и спросил, чтоб не закосячить и не восстанавливать все обратно. А обновление прошло успешно!
*

FlahsAxel

  • Захожу иногда
  • 210
  • 0 / 0
Re: Как корректно обновить галерею?
« Ответ #6 : 30.05.2010, 16:23:29 »
А плагины и модули тоже инсталлировать поверх?
*

Prorok

  • Захожу иногда
  • 95
  • 11 / 2
  • Смерть закрытому СофТу!
Re: Как корректно обновить галерею?
« Ответ #7 : 01.07.2010, 17:12:17 »
я прямо сверху зафигачил, она видит, что есть старая версия, и предлагает на выбор две кнопки: ОБНОВИТЬ / ИНСТАЛЛ

вот тут не ошибись, и нажми ОБНОВИТЬ =), что по буржуйски будет выглядеть как UPGRAGE и всё.

кнопуськи:




Эти кнопки в самой админке Джумля?Стоит последняя на сегодняшний день Joomla и Пхока галери 2.7.2 на ЛАМП Убунту. Захожу в Пхоку и вижу только кнопку проверить на наличие новой версии.Оно лезит на сайт и проверяет версию. Пишет что есть уже 2.7.3 и предлагает пройти в раздел скачивания, но кнопки "Обновить" НЕТ. ВОзможно этоу меня из-за того что стоит на домашнем серваке и недонастроен сервер?Ставил из репозитария Убунту все само установилось. На хостинге будет нормально обновлятся?
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #8 : 02.07.2010, 16:28:43 »
ключевая фраза: "я прямо сверху зафигачил".
Т.е. надо скачать новый дистриб, и установить его в админке ... потом выскочат кнопочки :)
подпись
*

Prorok

  • Захожу иногда
  • 95
  • 11 / 2
  • Смерть закрытому СофТу!
Re: Как корректно обновить галерею?
« Ответ #9 : 02.07.2010, 17:21:01 »
0_0 а как же несовместимость уже имеющихся таблиц и устанавлиевымых с данным компонентом? Как то вроде бы не правиль но. Посмотрюка я на сайте!
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #10 : 02.07.2010, 17:43:50 »
какой такой несовместимость ? конкретнее плз :)
каких таблиц, за что отвечающих ?
что-то мне подсказывает, что небыло бы кнопочки Апгрейд, если бы нельзя бы было обновить фоку на новую версию.
подпись
*

Prorok

  • Захожу иногда
  • 95
  • 11 / 2
  • Смерть закрытому СофТу!
Re: Как корректно обновить галерею?
« Ответ #11 : 03.07.2010, 00:41:38 »
Прочитав на оф.сайте документацию сделал все как там описано. Тоесть почти все. Снес существующий,удалил папку с папки имеджс и с папки администратор снес 2 русских языковых файла. Скачал все новое.Ставлю в Joomla компонент,а оно какого-то пишет что есть (хотя общарил базу и не нашел) какие-то данные и 2 кнопки "Инсталяци" и "Обновить".Так как мне нужна была чистая установка я выбрал установить. Интересно где еще остались данные которые он хотел обновить(инсталятор), если ни таблиц,ни файлов, ни папок нет?
« Последнее редактирование: 03.07.2010, 01:21:00 от Prorok »
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Как корректно обновить галерею?
« Ответ #12 : 06.07.2010, 09:03:47 »
Так как мне нужна была чистая установка я выбрал установить. Интересно где еще остались данные которые он хотел обновить(инсталятор), если ни таблиц,ни файлов, ни папок нет?

так в общем-то какая разница ... предположу, что при кнопке Инсталл он чистит таблицы, и приводит всё к дефолтному состоянию :)
подпись
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Using $this when not in object context - при добавлении картинки в галерею

Автор atolic

Ответов: 10
Просмотров: 4072
Последний ответ 17.03.2020, 13:14:26
от dimogur
Не могу загрузить фото в галерею

Автор sibdes

Ответов: 4
Просмотров: 3309
Последний ответ 15.09.2015, 11:35:56
от sibdes
Загрузка изображений в галерею без авторизации

Автор vitaska

Ответов: 0
Просмотров: 1353
Последний ответ 02.03.2015, 23:08:44
от vitaska
Доступ в категорию в галерею только зарегистрированным

Автор Ragivort

Ответов: 2
Просмотров: 1447
Последний ответ 16.01.2014, 10:46:42
от Ragivort
Как обновить Joomla c 1.5 до 2.5 непотеряв PhocaGallery?

Автор koskanalya

Ответов: 5
Просмотров: 3587
Последний ответ 25.04.2013, 14:59:51
от pilc