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

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Добрый день, уважаемые знатоки!
6 апреля последний раз отредактировала материал на главной странице своего блога в "Менеджере главной страницы".
После этого вновь отредактированный материал не сохраняется. Страница зависает  и после того как я ее закрываю или перезагружаю, изменений нет.

Прошу помощи.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
 :(Прошло 2 недели. Проблема так и не решилась:  отредактированный материал не сохраняется. Страница зависает  и после того как я ее закрываю или перезагружаю, изменений нет.SOS - кто может подскажите в чем загвоздка!
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Посмотрите логи ошибок сервера, на момент возникновения ошибки там должно что-то записываться.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Спасибо, Аркадий. А где их (логи) можно посмотреть. И я в некотором смысле "чайник", попроще, пожалуйста. ^-^
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
ftp клиентом поискать ближе к корню сайта error.log
Или у некоторых провайдеров есть возможность в панели управления хостингом посмотреть или скачать логи.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Да, тяжелый случай. Это я про себя. Короче нужен специалист. Сама я явно не осилю эту задачку. В любом случае благодарю Вас, что откликнулись.
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
А материал случайно не из Wordа делали?
Посмотрите исходный код материала.
Нет ли там кучи лишних тегов?
И попробуйте зайти в админ.панель под другим броузером, например, мозиллой.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Нет, Word  не использовала для создания текста. Браузеры меняла. Результат тот же. И на главной странице внизу у меня таблица - я там новости Блога выкладываю: http://www.i-pozitiv.ru/  И все делала как обычно.  6 апреля хотела выложить инфо о новом событии и в Административной панеле сделала изменения, попыталась сохранить, тишина. И так много раз. Пришлось просто закрыть, изменения не сохранились естественно. На других страницах блога все ок.
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
К сожалению, посмотреть ваш сайт сейчас не могу, пишу с планшета и моб.интернета.
Может кто другой глянет.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Тут чтобы посмотреть надо всеми доступами вооружиться.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Какие доступы нужны? Вход на хостинг и к административной панеле?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
ftp, база данных, админка, возможно и панель хостинга, если не удастся найти или выключен error.log
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
ftp, база данных -как я могу обеспечить Вам  доступ к этому, где это все находится? С админкой и хостингом проблем нет, все дам. И куда сообщить инфо, электронку дадите. Моя: shkatulka@list.ru
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Еще два сообщения, и в личку можно будет послать. Что не знаете как добыть - српашивайте у хостера, он все знает, поймет и выдаст.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Аркадий, я буду Вам очень благодарна за помощь.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Узнайте доступы, напишите еще одно сообщение и в личку отправляйте доступы. Посмотрю.
*

Еlenamanakova

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
В тех. службу хостинга вопрос задала, где взять эти данные. Я думаю, если бы вы зашли в мою панель управления хостинга, вы бы сами нашли то, что надо. Я там увидела раздел: База данных. Или я ошибаюсь? 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление модулей к новой странице

Автор Sonnic_lab

Ответов: 8
Просмотров: 1809
Последний ответ 15.11.2014, 15:47:02
от Sonnic_lab
Перестали отображаться материалы на главной !

Автор MIKEFM

Ответов: 0
Просмотров: 1824
Последний ответ 12.07.2014, 13:21:55
от MIKEFM
Текст на всех страницах кроме главной как ссылка

Автор djamik.uz

Ответов: 1
Просмотров: 1772
Последний ответ 29.12.2013, 19:44:52
от Лорд Лотар
Не могу редактировать материал, нет ответа редактора, взамен только пустая белая страница!

Автор inneta

Ответов: 10
Просмотров: 5507
Последний ответ 07.12.2013, 09:43:42
от kvo
Пагинация: убрать слово "Предыдущая" на первой странице

Автор blogunko

Ответов: 0
Просмотров: 1705
Последний ответ 16.09.2013, 00:40:34
от blogunko