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

Здравствуйте! У меня довольно ни сколько смешная сколько трагичная проблема  crazy!... я ставил на свой сайт модуль CommunityBuilder и по своей тупости случайно что то выбрал видимо такое, что меня выкинуло с админки и сайта и при вводе пароля и логина пишет нечто подобное "Вы были заблокированы (Пользователь был заблокирован)" как бы забанен что-ли. Я что, забанил сам себя что-ли через настройки.. что за бред... (спасибо разработчикам за столь "полезную фнкцию" "забанить админов"... идиоты.. ИМХО.... Я вынес модуль через FTP, в надежде, что после этого все вернется на свои места, но не тут то было! Теперь при входе в админку пишет "У вас нет доступа к административной панели сайта.". В базе данных - лычка "Super Administrator" в таблице с пользователями у моего профиля стоит... пробовал сменить пароль методом MD5 поменял - один фиг не пускает. Цель и сама задача состоит в том, чтобы вернуть профилю былые права "супер администратора". Или, в крайнем случае - создать новый профиль с правами "супер администратора". Переставлять сайт - вариант отпадает, сразу говорю. Очень прошу помочь. Проект стоит... А админ считайте лишился по гулпости собственных прав )) самому смешно даже... Очень нужна помощь  ! Кто поможет - огромное, человеческое, редакторское СПАСИБО! Очень надеюсь на вашу помощь!
« Последнее редактирование: 25.10.2010, 08:38:49 от Forget-me-not »
*

pashad

  • Новичок
  • 3
  • 0 / 0
Здравствуйте! У меня довольно ни сколько смешная сколько трагичная проблема  crazy!... я ставил на свой сайт модуль CommunityBuilder и по своей тупости случайно что то выбрал видимо такое, что меня выкинуло с админки и сайта и при вводе пароля и логина пишет нечто подобное "Вы были заблокированы (Пользователь был заблокирован)" как бы забанен что-ли. Я что, забанил сам себя что-ли через настройки.. что за бред... (спасибо разработчикам за столь "полезную фнкцию" "забанить админов"... идиоты.. ИМХО.... Я вынес модуль через FTP, в надежде, что после этого все вернется на свои места, но не тут то было! Теперь при входе в админку пишет "У вас нет доступа к административной панели сайта.". В базе данных - лычка "Super Administrator" в таблице с пользователями у моего профиля стоит... пробовал сменить пароль методом MD5 поменял - один фиг не пускает. Цель и сама задача состоит в том, чтобы вернуть профилю былые права "супер администратора". Или, в крайнем случае - создать новый профиль с правами "супер администратора". Переставлять сайт - вариант отпадает, сразу говорю. Очень прошу помочь. Проект стоит... А админ считайте лишился по гулпости собственных прав )) самому смешно даже... Очень нужна помощь  ! Кто поможет - огромное, человеческое, редакторское СПАСИБО! Очень надеюсь на вашу помощь!

Добрых выходных!

У меня та же проблема после установки noixacl, добавления двух групп пользователей и изменения названий групп. Интуитивно чувствую что проблема может быть в конфликте с CommunityBuilder.

Помогите! Как вернуть права super administrator?!
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Код
UPDATE `jos_users` SET `block` = '0' WHERE `id` =1 LIMIT 1 ;

В phpmyadmin попробуйте так, где id = ваш.
*

pashad

  • Новичок
  • 3
  • 0 / 0
Ввёл запрос в базе данных, однако пишет: Затронуто строк: 0. ( запрос занял 0.0002 сек. ). id указал правильно
В свойствах моего пользователя значение block стояло 0.

Ничего не изменилось.

Смотрю, ещё у нового пользователя проблема. Он зарегистрировался, есть в базе данных, но в админ панели в списке пользователей не отображается. Стоял блок =1, поменял на 0 и назначил группу пользователю. Всё равно не появляется.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Значит надо смотреть таблицы в CommunityBuilder - явно глюк там. Но случай неприятный.

...добавления двух групп пользователей и изменения названий групп...

И вот это тоже хорошо бы вернуть в исходное состояние и проверить еще раз.
*

pashad

  • Новичок
  • 3
  • 0 / 0
УРА! Получилось! Благодарю!
Вернул значение обратно на Super Administrator в управлении компонентом noixacl. Менял в базе данных CB - эффекта не было.

Но проблема остаётся другая: всё равно нужно назначить новые имена группам пользователей. Попробую латиницей... Хотя, вряд ли поможет, надо ковырять CB, но что делать пока не знаю...
*

Григорий88

  • Новичок
  • 1
  • 0 / 0
Здравствуйте,  заходя на свой сайт в администратора www.мой сайт.ru/administrator/  потерял свой пароль, подскажите пожалуйста, как его восстановить?
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Здравствуйте,  заходя на свой сайт в администратора www.мой сайт.ru/administrator/  потерял свой пароль, подскажите пожалуйста, как его восстановить?

неужели так впадлу воспользоваться поиском...
...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка #1050 при переносе базы данных на хостинг

Автор Ksen

Ответов: 7
Просмотров: 24591
Последний ответ 16.03.2020, 17:47:29
от Petrovich
[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 95229
Последний ответ 06.10.2019, 16:55:45
от PaLyCH
как восстановить статьи после установки нового сайта на ту же БД

Автор midlex

Ответов: 26
Просмотров: 7367
Последний ответ 23.10.2017, 08:21:19
от kungurskiy
Передача данных в форму при нажатии на ссылку

Автор usmdamir

Ответов: 4
Просмотров: 1515
Последний ответ 26.07.2017, 09:40:22
от usmdamir
Как проверить форму обратной связи [Решено]

Автор mafiozzzza

Ответов: 8
Просмотров: 6613
Последний ответ 30.05.2017, 11:34:11
от darkghost