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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Неплохое решение придумал, проблема в том,  что просто вставить код видео не получалось при использовании редактора TinyMCE.


Дописать стр. 240
/plugins/content/jw_allvideos/jw_allvideos/includes/sources.php
Код
/* --- I would like to add to it --- */
// vk.com
"VK" => "<iframe src=\"{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\"  style=\"border-width:0px\"></iframe>",

// myvi.ru
"Myvi" => "<iframe width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"{SOURCE}\" style=\"border-width:0px\" allowfullscreen></iframe>",

// sibnet.ru
"Sibnet" => "<iframe width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"//video.sibnet.ru/shell.php?videoid={SOURCE}\" style=\"border-width:0px;overflow:hidden;\" allowfullscreen></iframe>",

// kivvi.kz
"Kiwi" => "<object data=\"http://v.kiwi.kz/v2/{SOURCE}/\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width:0px;\" webkitallowfullscreen mozallowfullscreen allowfullscreen title=\"Kiwi player\"></object>",

// mail.ru
"Mail" => "<iframe src=\"{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width: 0px;\"  webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>",

Код
{vk}ссылка{/vk}
{myvi}ссылка{/myvi}
{sibnet}ссылка{/sibnet}
{kiwi}ссылка{/kiwi}
{mail}ссылка{/mail}


 :o
« Последнее редактирование: 31.12.2015, 14:47:27 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Плагин AllVideos вывод видео с VK
« Ответ #1 : 07.12.2015, 14:40:10 »
кроме vk добавил:
myvi
sibnet
Kiwi
mail

github 8 - 1 вариант
github 9 - 2 вариант с validator

 *DRINK*

Так как все не абсолютно остановился пока на таком
Код
/* --- I would like to add to it --- */
// vk.com
"VK" => "<iframe width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"{SOURCE}\" style=\"border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// myvi.ru
"Myvi" => "<iframe width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"{SOURCE}\" style=\"border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// sibnet.ru
"Sibnet" => "<iframe  width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"//video.sibnet.ru/shell.php?videoid={SOURCE}\" style=\"border-width:0px;overflow:hidden;\" allowfullscreen title=\"Video Player\"></iframe>",

// kivvi.kz
"Kiwi" => "<iframe  width=\"{WIDTH}\" height=\"{HEIGHT}\" src=\"http://v.kiwi.kz/v2/{SOURCE}/\" style=\"border-width:0px;\" webkitallowfullscreen mozallowfullscreen allowfullscreen title=\"Video Player\"></iframe>",

// mail.ru
"Mail" => "<iframe src=\"{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width: 0px;\" webkitallowfullscreen mozallowfullscreen allowfullscreen title=\"Video Player\"></iframe>",
« Последнее редактирование: 17.04.2016, 20:20:04 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Re: Плагин AllVideos вывод видео с VK
« Ответ #2 : 22.04.2016, 13:55:46 »
plugin/jw_allvideos/includes/sources.php lev99:patch-10

Код
/* --- I would like to add to it --- */
// vk.com  - //vk.com/video_ext.php?oid=167947957&id=167693310&hash=a714ffe6371d3552
"VK" => "<iframe src=\"{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// vkontakte - 167947957&id=167693310&hash=a714ffe6371d3552
"vkontakte" => "
<iframe src=\"//vk.com/video_ext.php?oid={SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// myvi.ru - //myvi.ru/player/embed/html/onFjTHvp0ghihf7BJg2fz9YcQ1YfEkqUvMBi0O8UXBIWNlcCsQmI6R6rlbff4Zaik0
"Myvi" => "<iframe src=\"//myvi.ru/player/embed/html/{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// sibnet.ru - //video.sibnet.ru/shell.php?videoid=12345
"Sibnet" => "<iframe src=\"//video.sibnet.ru/shell.php?videoid={SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"border-width:0px;overflow:hidden;\" allowfullscreen title=\"Video Player\"></iframe>",

// kivvi.kz - http://v.kiwi.kz/v2/iuin3cgi0ap2/
"Kiwi" => "<iframe src=\"http://v.kiwi.kz/v2/{SOURCE}/\" width=\"{WIDTH}\" height=\"{HEIGHT}\"  style=\";display:inline-block;border-width:0px\" allowfullscreen title=\"Video Player\"></iframe>",

// mail.ru - https://videoapi.my.mail.ru/videos/embed/community/mir/_groupvideo/2515.html
"Mailru" => "<iframe src=\"{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"display:inline-block;border-width: 0px;\" allowfullscreen title=\"Video Player\"></iframe>",

// Mail - https://my.mail.ru/community/mir/video/embed/_groupvideo/2515
"mail" => "<object width=\"{WIDTH}\" height=\"{HEIGHT}\">
<param name=\"allowScriptAccess\" value=\"always\" />
<param name=\"movie\" value=\"http://img.mail.ru/r/video2/player_v2.swf?movieSrc=mail/{SOURCE}\" />
<embed src=\"http://img.mail.ru/r/video2/player_v2.swf?movieSrc=mail/{SOURCE}\" type=\"application/x-shockwave-flash\" width=\"{WIDTH}\" height=\"{HEIGHT}\" allowScriptAccess=\"always\"></embed></object>",

// Yandex - aleksandnujki/87tgggkwc7.908
"yandex" => "<object width=\"{WIDTH}\" height=\"{HEIGHT}\"><param name=\"video\" value=\"http://static.video.yandex.ru/lite/{SOURCE}\"/>
<param name=\"allowFullScreen\" value=\"true\"/>
<param name=\"scale\" value=\"noscale\"/>
<embed src=\"http://static.video.yandex.ru/lite/{SOURCE}\" type=\"application/x-shockwave-flash\" width=\"{WIDTH}\" height=\"{HEIGHT}\" allowFullScreen=\"true\" scale=\"noscale\"></embed>
</object>",

// Rutube  - http://rutube.ru/video/995b21c0ad5a4db6c88adf0331d8826f
"rutube" => "
<iframe src=\"//rutube.ru/play/embed/{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" style=\"display:inline-block;border-width:0px;\" allowfullscreen title=\"Video Player\"></iframe>",

vk
myvi
sibnet
kivvi
Mail
Yandex
Rutube

 *DRINK*
« Последнее редактирование: 11.08.2016, 19:00:55 от leo78 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин "Русская типографика"

Автор Physicist

Ответов: 261
Просмотров: 153284
Последний ответ 13.03.2025, 20:06:50
от Olg
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 965
Последний ответ 27.08.2024, 15:39:37
от kkmspb
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 99010
Последний ответ 20.04.2024, 21:10:33
от Beer
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 21672
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 124712
Последний ответ 13.03.2023, 00:25:14
от ecolora