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

mavik

  • Давно я тут
  • 570
  • 86 / 2
Сегодня попытался поставить плагин на Joomla 3.6 Установщик сообщает, что плагин успешно установлен, но ни самого плагина, ни его модуля в админке не обнаруживаю. Подскажите где собака порылась?  :(  !
Ставили версию 2.x? (предыдущие версии не совместимы с Joomla 3)
Есть ли файлы плагина в папке плагинов?
Есть ли плагин в перечне установленных расширений (управление расширениями)?
Должно быть: пакет, библиотека и сам плагин.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

colibri-th

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
 ! Вот скачал плагин с вашего форума. Установил. Сайт и админка вообще рухнули. Теперь не могу отключить этот плагин. Обновился до версии 3.6.3 не помогло.  :(

Откатился к старой версии, скачанной с сайта разработчика. Всё заработало. Ура!  :D
« Последнее редактирование: 20.10.2016, 11:10:38 от colibri-th »
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
! Вот скачал плагин с вашего форума. Установил. Сайт и админка вообще рухнули. Теперь не могу отключить этот плагин. Обновился до версии 3.6.3 не помогло.  :(

Откатился к старой версии, скачанной с сайта разработчика. Всё заработало. Ура!  :D

Хм, здесь ссылка на тот же самый файл, который вы можете скачать с моего сайта.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

colibri-th

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
А ещё я не нашел в новой версии включения изменения курсора при наведении на превью в виде увеличительного стекла, которое было в предыдущей версии плагина. Скажите, эта функция присутствует, или уже нет?
*

wahrenz

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Помогите, пожалуйста, кто может!
Сегодня ставил плагин mavikthumbnails с JED, затем с вашего сайта. При включении плагина сайт рушится, выходит такая ошибка
"Parse error: syntax error, unexpected '[' in W:\home\localhost\www\testterbuny.org\plugins\content\mavikthumbnails\mavikthumbnails.php on line 198"
При удалении знака [ появляется другая ошибка:
"Parse error: syntax error, unexpected T_DOUBLE_ARROW in W:\home\localhost\www\testterbuny.org\plugins\content\mavikthumbnails\mavikthumbnails.php on line 199"

Вот этот кусок кода (строки 198-200):

$this->dispatcher->trigger('onMavikThumbnailsBeforeGenerate', [
            'plugin' => $this, 'params' => $params
        ]);

Как я потом восстанавливал сайт - это отдельная история: я переименовывал файл mavikthumbnails.php, затем в панели администратора в управлении расширениями удалял плагин, еще что-то и библиотеку (3 расширения) и только тогда сайт и панель администратораначинали работать так, как до установки этого плагина
« Последнее редактирование: 20.10.2016, 11:53:44 от wahrenz »
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Вероятно вы используете старую версию PHP, в которой не поддерживается краткий синтаксис для массивов [].
В таком случае вам придется заменить все [...] на array(...)
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
А ещё я не нашел в новой версии включения изменения курсора при наведении на превью в виде увеличительного стекла, которое было в предыдущей версии плагина. Скажите, эта функция присутствует, или уже нет?

Визуальное оформление превьюшек удалено из плагино и оставлено на усмотрение авторов шаблонов.
Для превьюшек используется стандартный класс thumbnial, поэтому если автор шаблона предусмотрел для превью особое оформление, оно будет использовано. Так, например, во многих шаблонах вокруг превьюшек отображается рамка, которая пападаешт в шаблон из Bootstrap.

Возможно в следующем поколении плагина верну их как отдельно устанавливаемое дополнение.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

wahrenz

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Вероятно вы используете старую версию PHP, в которой не поддерживается краткий синтаксис для массивов [].
В таком случае вам придется заменить все [...] на array(...)
Большое спасибо! А когда на настоящий сервер сайт залью, синтаксис array() будет нормально работать с PHP возможно новой версии, новее чем на денвере?
*

wahrenz

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
и еще: если на сайт я заливаю картинку, скажем разрешения 1600х1000, то при увеличении она расширяется за пределы экрана, в версии на Joomla 1.5 увеличение происходило по границы экрана, т.е. физического разрешения экрана. Блок настроек пропорции я весь исследовал, ничего не меняется...
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Синтаксис массивов array() поддерживается во всех версиях PHP, [] - только в новых.
Метод отображения полного изображения зависит от выбранного типа вслывающего окна.
Вы все перепробовали? В каком-то была такая возможность. Если не получается, то вечером проверю, возможно надо в настройках JS-скрипта поправить.
Ну и можете предложить свой вариант скрипта всплывающих окон.
Либо самостоятельно его добавить - плагин подхватит его и покажет в настройках.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

wahrenz

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Метод отображения полного изображения зависит от выбранного типа вслывающего окна.
Вы все перепробовали? В каком-то была такая возможность. Если не получается, то вечером проверю, возможно надо в настройках JS-скрипта поправить.
Ну и можете предложить свой вариант скрипта всплывающих окон.
Либо самостоятельно его добавить - плагин подхватит его и покажет в настройках.
Я пробовал на Slimbox 2 jQuery, для меня этот тип предпочтителен так, как с типом HighSlide картинки увеличиваются как надо, т.е. в размер окна браузера, но вокруг картинок появляется граница и самое главное при  увеличении большой картинки, например 1900х1200 она вмещается в размер окна браузера, но скрывает своим изображением маленькие превьюшечки навигации по картинкам, что неудобно
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Не нашел в Slimbox такой возможности. Если ошибаюсь, подскажиет какой параметр надо установить.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

wahrenz

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Не нашел в Slimbox такой возможности. Если ошибаюсь, подскажиет какой параметр надо установить.
Не совсем понял Ваш ответ, какую возможность Вы не нашли? и про какой параметр Вы меня спрашиваете?

Мне бы с типом Slimbox увеличивать картинки в размер окна браузера и не более, больше ничего от плагина не требуется. Большое спасибо!
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Мне бы с типом Slimbox увеличивать картинки в размер окна браузера и не более,

Вот этого и не нашел. Slimbox - готовый скрипт всплывающих окон http://www.digitalia.be/software/slimbox2/
Среди его возможностей мне не удалось найти вписывания картинки в размер окна.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
При включении плагина сайт рушится, выходит такая ошибка
"Parse error: syntax error, unexpected '[' in W:\home\localhost\www\testterbuny.org\plugins\content\mavikthumbnails\mavikthumbnails.php on line 198"

В версии 2.3.1 заменил [...] на array(...), оказывается не у вас одного старая версия PHP.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Доброго дня!

В новой версии плагина обнаружил классную штуку - использования атрибута "srcset"

В последнее время думал, как же сделать такое чтоб не искать какие-то левые расширения... а тут вот оно, в плагине который, можно сказать, уже как родной.

Спасибо, очень порадовали!

Единственное - на всех сайтах я это использовать не буду. А в плагине нет кнопки для отключения данной функции. Получается, что будут создаваться лишние превьюшки (какой-никакой, а всё-таки вес у них есть), плюс будет подключен лишний скрипт.
Хотелось бы кнопочку... )

Ещё раз благодарю, приятно, что проект не стоит на месте!
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Отключить герерирование srcset можно в настройках на закладке Retina.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Отключить герерирование srcset можно в настройках на закладке Retina.

Что-то не работает эта настройка... не отключает ни набор превьюшек с атрибутами srcset, ни скрипт "picturefill".

Версия плагина 2.3.1.pro
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Понятно. Значит забыл добавить отключение. Исправлю.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Было бы круто, если бы picturefill тож отдельно отключался, последние версии браузеров и так понимают этот атрибут.  Ну... почти все.
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Было бы круто, если бы picturefill тож отдельно отключался, последние версии браузеров и так понимают этот атрибут.  Ну... почти все.

Все кроме IE и встроенного в android < 5.
Есть идея перед подключением проверять небольшим JavaScript нужен ли он браузеру.
Но для начала оставил подключение для всех.
В следующих версиях будут варианты.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Ну так не понимают они "srcset" пусть показывают стандартный "src", такая ведь вроде идея у всего этого?

Понятно, будем ждать!
*

OlegKasumoff

  • Новичок
  • 1
  • 0 / 0
Отличный плагин. Использую его еще со времен Joomla 1.5. Уже давно перешел на Joomla 3. Однако, есть некоторая проблема.

После установки на локальном сервере выбросил вот такую ошибку "Parse error: syntax error, unexpected '[' in Z:\home\10.97.0.30\www\plugins\content\mavikthumbnails\mavikthumbnails.php on line 217". Помогло полное отключение плагина через утилиту phpMyAdmin. Но мне все же хотелось бы его использовать.

Не могли бы вы помочь в этом вопросе?!

Текущие версии:
php - 5.3.13
msql - 5.5.25
Joomla - 3.6.2

С уважением, Олег!
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Проверю. В одном месте уже исправлял новый синтаксис массивов [...] на старый array().
Похоже, что еще где-то осталось.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Вышла версия 2.3.2
Исправлено несколько выявленных ошибок, в том числе проблема с синтаксисом массивов [] и отключение адаптации под дисплеи с высоким разрешением (отключения ява-скрипта для старых браузеров пока нет, будет позже).

О всех выявленных ошибках прошу сообщать. В версию 2.3.х были внесене архитектурные изменения, что могло повлечь за собой появление новых ошибок.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Доброго дня!

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

И вот что, из условий:
  • Контекст - работает
  • Свойство объекта - что-то не захотело
  • Параметр запроса - работает

А хотелось-то сделать через: Свойство объекта - class - foto

Картинку в редакторе вставил так:
Код
<img class="foto" src="images/foto/000.jpg" alt="" />

В контексте вот скрин:


Также пробовал через: Свойство объекта - id - foto

Пока сделал через Itemid, что неправильно делаю с классом или id?
« Последнее редактирование: 01.11.2016, 13:20:05 от Театрал »
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Пока сделал через Itemid, что неправильно делаю с классом или id?

Неправильно поняли, что такое свойство объекта. Точнее, о каком объекте идет речь. Так вот, объект - это статья, модуль, либо другой объект содержащий текст. Поэтому указывать надо id статьи, а не из тега.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Цитата: mavik
Поэтому указывать надо id статьи, а не из тега.

Точно! Так работает, спасибо!
« Последнее редактирование: 01.11.2016, 14:58:25 от Театрал »
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
И всё таки спрошу ещё.

Можно ли сделать следующее, или я слишком многое хочу от плагина?

Хочется чтоб по умолчанию, для изображений просто создавались уменьшенные копии, а с определённым классом использовать всплывающее окно или другие размеры по умолчанию.
Да так это всё настроить, чтоб не зависеть от контекста: id статьи, модуля или пункта меню.
« Последнее редактирование: 01.11.2016, 16:12:59 от Театрал »
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Хочется чтоб по умолчанию, для изображений просто создавались уменьшенные копии, а с определённым классом использовать всплывающее окно или другие размеры по умолчанию.
Да так это всё настроить, чтоб не зависеть от контекста: id статьи, модуля или пункта меню.

В текущей версии нет, но я подумаю над этим.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Physicist

Ответов: 261
Просмотров: 153289
Последний ответ 13.03.2025, 20:06:50
от Olg
Owl Сarousel Images module for Joomla

Автор Muggs

Ответов: 0
Просмотров: 1005
Последний ответ 30.08.2024, 17:34:06
от Muggs
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 965
Последний ответ 27.08.2024, 15:39:37
от kkmspb
News Calendar Joomla 3.0 - html5 - Rus

Автор leo78

Ответов: 27
Просмотров: 14657
Последний ответ 27.06.2024, 11:15:49
от Леон
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 99011
Последний ответ 20.04.2024, 21:10:33
от Beer