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

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
 Уважаемые друзья!

В преддверии наступающего Нового Года я хотел бы подарить всем посетителям нашего сайта небольшой новогодний подарок:

мой новый модуль "Снегопад на сайте"!



Модуль позволит вам легко, быстро и красиво организовать небольшой снежок на вашем Joomla-сайте.  ;D

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


С НОВЫМ ГОДОМ!

Установка:

    * устанавливаем модуль как обычно,
    * опубликовываем его в любой позиции,
    * отключаем показ заголовка модуля.

Таким образом, модуль становится "невидимым", и не выводит никакой информации на сайт.

Настройка:
конфигурация модуля имеет всего 4 параметра:

1. Картинка снежинок. Укажите название файла, который будет использован как изображение снежинок. По умолчанию используется имеющийся в модуле файл "snow.gif", но вы можете использовать любой другой. Картинка должна находиться в каталоге MODULES вашего сайта!
2. Количество снежинок. По умолчанию - 10. Не вводите слишком большое число - будет тормозить!
3. Отключать снег через... Поскольку, как и любой подобный скрипт, "снег" достаточно сильно грузит процессор пользователя (особенно под Мозиллами, которые, как известно, не любят прозрачных анимаций...) - предусмотрено автоматическое отключение "снегопада" через заданное в этой строке количество секунд.
4. Летим на высоту... Тут вы можете выбрать - будет ли снегопад мести на всю высоту открытой страницы, или же только в пределах видимого окна?

Вот, собственно, и все. Качаем и пользуемся!

Еще раз с наступающим всех и всего самого лучшего!


Все имеющиеся вопросы по моим расширениям можно задавать в моем форуме.

[вложение удалено Администратором]
« Последнее редактирование: 20.11.2008, 12:21:12 от Adeptus »

забавно,спасибо =)
*

deniz

  • Осваиваюсь на форуме
  • 31
  • 2 / 0
  • Живи двигаясь % Двигаясь живи
Супер!
*

klop5

  • Осваиваюсь на форуме
  • 36
  • 1 / 0
Супер! спасибо!!!
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Отлично, спасибо!
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
"вылезла" ошибка :(
в файле mod_snow.php
на стр. 28
Код
  var snowdistance = "<?php echo heightmode;?>";
заменить на
Код
  var snowdistance = "<?php echo $heightmode;?>";


[вложение удалено Администратором]
« Последнее редактирование: 10.12.2007, 11:20:23 от Natasha »
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
var snowdistance = "<?php echo heightmode;?>" заменить на var snowdistance = "<?php echo $heightmode;?>"; ???
А вы это сейчас с кем разговаривали? :)
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
вообще-то со всеми.... а что?
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Ну например то, что вы предлагаете заменить одну строку на другую, но АБСОЛЮТНО ИДЕНТИЧНУЮ... :)
Зачем?
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
затем что они не идентичны
во второй присутствует знак $
а в первой нет - т.к. вызывается в php коде, то в первом случае - не воспринимается как переменная(точнее как-то криво воспринимается)
возможно такая ошибка только у меня, но, думаю, с таким исправлением будет везде работать
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Ну конечно. Сорри. Очепятка... :)
Архив в первом посте обновлен.
Natasha - спасибо и +1.
*

Natasha

  • Захожу иногда
  • 93
  • 16 / 0
незачто :)
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Ну а модуль-то работает? :-)
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
загрузка проца 100 % в ОПЕРА 9.24 :) пришлось выставить отключение через 15 сек. :)
Да, скрипт сильно грузит процессоры, особенно маломощные - я предупреждал.
*

Full_crazy

  • Захожу иногда
  • 264
  • 48 / 0
  • Иногда думаю ...
Нормально работает. Сегодня поставил людям на 3 сайта - им нравиться  ;)
Joomla! = невозможного почти нет!
*

Robinson

  • Захожу иногда
  • 442
  • 72 / 1
Присоединяюсь, работает отлично. Только вот заметил все снежинки как снежинки, а некоторые снежинки-ссылки вот сюда http://dynamicdrive.com/, а по ним кликать не удобно.
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Присоединяюсь, работает отлично. Только вот заметил все снежинки как снежинки, а некоторые снежинки-ссылки вот сюда http://dynamicdrive.com/, а по ним кликать не удобно.
Присоединенным файлом замените оригинальный mod_snow в каталоге modules - и ссылки со снежинок исчезнут... :)



[вложение удалено Администратором]
*

Robinson

  • Захожу иногда
  • 442
  • 72 / 1
Да они мне не мешали, по мне бы скорость их сбавить, а то ближе к Новому Году "мазать" начну. А ссылки на каждой снежинке можно на разные забавные сайты сделать, веселее будет. Ну эт так, уже предпраздичное.
*

AHTOH

  • Захожу иногда
  • 104
  • 8 / 1
Дык этот модуль обсуждали уже... http://joomlaforum.ru/index.php/topic,8164.msg48080.html#msg48080

Рекомендую кстати снежинки gif в той теме.
Год назад я для себя его доделал и вставил проигрывание mid файла. Публиковался модуль только на "главной" потому и не раздражал сильно.... Кстати если надо принесу (дома он у меня)
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Дык этот модуль обсуждали уже... http://joomlaforum.ru/index.php/topic,8164.msg48080.html#msg48080
Для непонятливых - НЕТ, ЭТО НЕ ОН!!!
Цитировать
Рекомендую кстати снежинки gif в той теме.
А вот это можно попробовать. Правда, грузить процессор будет еще больше...
*

arshish

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
Кайф спасибо!!!!Оболденно!!!Супер!нет слов!Молодчина!
*

maffi

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
у меня категорически снег не хочет валиться, пишет скрипт эррор в строке состояния=((

Спасибо, автору, за снежок. :D ;)
*

Serhiy

  • Новичок
  • 5
  • 0 / 0
Спасибо!!!
 

благодарин!!! :D :D :D
*

qwest

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Спасибо. Всех с новым ГОДОММ  :D ^-^
*

Lui

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
"...используется имеющийся в модуле файл "snow.gif"..." - круто) веть не токлько снег падает, еще листья, коробки с подарками и т.д.))
*

me4enyi

  • Новичок
  • 6
  • 0 / 0
 :D :D :D
Респект и уважуха
*

airduck

  • Новичок
  • 5
  • 0 / 0
А где ссылка на модуль, что-то не найду?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль «Заявка»

Автор Adeptus

Ответов: 11
Просмотров: 8775
Последний ответ 14.02.2014, 22:18:23
от megakontent
Модуль "ЛОГО" (скачать)

Автор Adeptus

Ответов: 22
Просмотров: 16641
Последний ответ 23.12.2012, 08:11:03
от aspidy
Модуль "Твиттер"

Автор Adeptus

Ответов: 1
Просмотров: 6014
Последний ответ 15.07.2012, 02:44:25
от jem777
Модуль «НТС-виджет» + погода

Автор Adeptus

Ответов: 9
Просмотров: 8299
Последний ответ 12.03.2012, 09:28:05
от Adeptus
Модуль "Меню - аккордеон"

Автор Adeptus

Ответов: 5
Просмотров: 11119
Последний ответ 24.01.2012, 17:20:13
от vovec1