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

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Ранее искал для решения своей задачи компонент бронирования и уже сталкивался с OS Services Booking, но появилась проблема - не смог вывести календарь на страницу материала. Вот мне попался данный компонент более свежей версии OS Services Booking v.2.6.2, но проблема так и не решилась.
Что было сделано:
1. Установлен компонент OS Services Booking v.2.6.2
2. Установлен и включен плагин OSB Table Plugin.
Параметры движка: Joomla 3.9.0, PHP 7.6

В материале указываю вывод календаря через {osbtable сid: 1}, после этого страница не загружается, сат работает, но только страница куда должен выводиться календарь... падает.

Может кто-то сталкивался с данной проблемой или я туплю по черному crazy!
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #1 : 27.11.2018, 10:18:47 »
ну как бы последняя версия 2.7.0
и по вопросам коммерческих расширений лучше обращаться к разработчику
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #2 : 27.11.2018, 10:29:00 »
ну как бы последняя версия 2.7.0
и по вопросам коммерческих расширений лучше обращаться к разработчику
Да я не об этом, просто решил посмотреть, пощупать. А тут такая ерунда в самом начале. Вот я и поинтересовался, наверное где то затупил. Может я вопрос неправильно сформулировал, тогда вот так. Как в материале вывести календарь?
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #3 : 27.11.2018, 10:29:43 »
может и вопрос неправильно, а может варезный компонент так себя ведет
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #4 : 27.11.2018, 10:35:35 »
а может варезный компонент так себя ведет
Конечно может и так, вот по этой причине и интересуюсь у тех кто уже пользовался данным компонентом.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #5 : 27.11.2018, 10:40:24 »
ну как совет включить отображение ошибок и смотреть на странице которая крашится
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #6 : 27.11.2018, 10:57:35 »
ну как совет включить отображение ошибок и смотреть на странице которая крашится
Ну я не сильно в этом понимаю, может ты расшифруешь?
Fatal error: require_once(): Failed opening required '.../public_html/libraries/joomla/document/html/renderer/head.php' (include_path='.:/usr/share/php') in .../public_html/templates/ltdisco/error.php on line 42
Лично я не  вижу тут проблем из за календаря.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #7 : 27.11.2018, 11:06:39 »
ну так он и пишет что не может открыть файл с включением, который прописан в error PHP
смотрите 42 строку, что прописано и проверяйте пути
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #8 : 27.11.2018, 11:08:06 »
да и версия php у вас из будущего что ли?
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #9 : 27.11.2018, 11:17:01 »
да и версия php у вас из будущего что ли?

;D ОпЧатка 7,2
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #10 : 27.11.2018, 11:17:52 »
ну так он и пишет что не может открыть файл с включением, который прописан в error PHP
смотрите 42 строку, что прописано и проверяйте пути
Вот тут нашел интересную инфу по этой ошибке
https://www.joomdev.com/forum/jd-dallas/1180-solved-php-warning-no-such-file-or-directory
Сейчас попробую подправить
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #11 : 27.11.2018, 11:40:40 »
Такс, ошибку исправил, это было связано с показом 404 ошибки. Проблема была в отсутствии директории для старых версий Joomla.
Теперь страница грузится, но она выдает 404 ошибку.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #12 : 27.11.2018, 13:16:43 »
Уважаемые комрады! Обращаюсь к тем кто уже пользовался OS Services Booking, меня интересует только один вопрос, как вы публикуете календарь в статьях (материалах)?
Я пытаюсь через установленный плагин - OSB Table Plugin, который дает возможность вывода необходимого календаря через команду {osbtable сid: 1}, но у меня ни чего не выходит, страница падает в 404.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #13 : 27.11.2018, 13:27:52 »
откуда вы берете вот это
{osbtable сid: 1}
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #14 : 27.11.2018, 16:38:01 »
откуда вы берете вот это
{osbtable сid: 1}
Так говорю же с плагина, вот внутри описание:
This plugin is used to display booking table within a Joomla article. The code format is: {osbtable sid:Service_ID|eid:Employee_ID|cid:Category_ID|vid:Venue_ID}. For example: {osbtable sid:1|eid:2|cid:3|vid:4} or {osbtable sid:1|eid:2|cid:3} or {osbtable sid:1|eid:2} or {osbtable sid:1} ..etc
А что я как то не так его вывожу?
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #15 : 27.11.2018, 16:49:53 »
ну так по итогу выдает ошибку
Fatal error: Call to a member function getInt() on null in /components/com_osservicesbooking/classes/default.php on line 247
по сути не видит категорию
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #16 : 27.11.2018, 17:36:02 »
ну так по итогу выдает ошибку
Fatal error: Call to a member function getInt() on null in /components/com_osservicesbooking/classes/default.php on line 247
по сути не видит категорию
Тогда как выводить?
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Re: Компонент бронирования OS Services Booking
« Ответ #17 : 27.11.2018, 17:38:14 »
Тогда как выводить?
ответ был выше
как минимум задать вопрос разработчику

я думаю мало кто станет покупать для проверки
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Re: Компонент бронирования OS Services Booking
« Ответ #18 : 28.11.2018, 11:53:01 »
Ладно спасибо за помощь. Буду разбираться, нашел тут куча мануала на вражеском, буду штудировать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Admin Tools

Автор web1

Ответов: 3
Просмотров: 766
Последний ответ 06.10.2024, 13:02:10
от web1
Компонент вверху в админ панели

Автор cirip

Ответов: 1
Просмотров: 825
Последний ответ 14.05.2024, 13:50:32
от Гоша_Компьютерный
Не устанавливается компонент через панель управления

Автор Margarita

Ответов: 1
Просмотров: 696
Последний ответ 15.06.2022, 12:28:18
от Margarita
Компонент Yandex.Market XML

Автор valery63

Ответов: 2
Просмотров: 722
Последний ответ 06.02.2022, 15:38:36
от valery63
После обновления FOF 4 перестал работать компонент JCH optimize

Автор polezniy

Ответов: 1
Просмотров: 738
Последний ответ 05.01.2022, 10:45:04
от polezniy