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

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Доброе время суток. поставил компонент магазина Ksenmart, а этот сволочь убил мне сайт. помоги пожалуйста, нужно срочно восстановить.
вот логги последнего времени с сервера. Безумно нужна ваша помощь. вариант отката не очень, админ последний раз сохранил 24.02.
Спойлер
[свернуть]
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
что такое "убил сайт"?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
что такое "убил сайт"?
www.amatertrade.ru

перестал сразу же работать
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
вот логи последние, не знаю что делать, сайт не мой, скоро увидит владелец :o

Спойлер
[свернуть]
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Вот вам и мораль - не ставьте экспериментов на рабочем сайте, и в топку вашего админа. У вас хостинг jino.ru, у них должны сохраняться ежедневные бекапы, проверьте.

вот логи последние, не знаю что делать, сайт не мой, скоро увидит владелец
А зачем вы туда лезли?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Через базу отключите компонент и сделайте переустановку
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Вот вам и мораль - не ставьте экспериментов на рабочем сайте, и в топку вашего админа. У вас хостинг jino.ru, у них должны сохраняться ежедневные бекапы, проверьте.
А зачем вы туда лезли?
за 24.02 последний, нет ежедневного больше у них сохранения, есть какие либо решения?
просто попросили установиться компонент и все..
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Через базу отключите компонент и сделайте переустановку
это как?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
админ сервера показ ошибок может включить?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
админ сервера показ ошибок может включить?
у меня доступ есть, могу сам включить, скажи только как
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Может проще error.log посмотреть. А в настройки сервера с такими знаниями лезть не советую.
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Может проще error.log посмотреть. А в настройки сервера с такими знаниями лезть не советую.
я не могу вообще никак на сайт зайти, ни в админку, никуда (
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
А это не сайт. Вы же содержимое access.log выложили. Рядом с ним и error.log должен быть.
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
А это не сайт. Вы же содержимое access.log выложили. Рядом с ним и error.log должен быть.
error.log нету, есть только error.php
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
error.log нету, есть только error.php
Не там смотрите. Вы где нашли  access.log? Откуда взяли текст, который скопировали сюда? Вот там же и error
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
https://www.jino.ru/help/faq/virtualhosting-general/logs/
тут стоит спектр, где на нем смотреть не могу найти,
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Не там смотрите. Вы где нашли  access.log? Откуда взяли текст, который скопировали сюда? Вот там же и error
как раз таки access.log есть, а вот Error.log почему то нет..
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
дебаг можно включить в конфиге Joomla:

Цитировать
public $debug = '1';
error.log, у вас скорее всего отключен по умолчанию в настройках php.ini
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
- Насяльника, не ругайся ... сайта помер ...
- Как помер?
- Джамшют ксенмарта ма ставиль, ставиль ... всё поставиль а сайта не бельме ... бэкапа админа прошлый месяц Равшан делаль
- Придурки, где Ксенмарт взяли?
- Засем ругаисся насяльника ... джамшут скасял всё для сайта варез портала, говорит магазина будем ставить ... денег зарабатывать
« Последнее редактирование: 10.03.2017, 22:24:20 от ChaosHead »
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Если у вас vps ищите. Кому бы знать где он у вас.
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
дебаг можно включить в конфиге Joomla:
error.log, у вас скорее всего отключен по умолчанию в настройках php.ini
включил
*

mailofhide

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Если у вас vps ищите. Кому бы знать где он у вас.
в том то и дело, это не vps, а их убогий спектр..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Установка интернет магазина

Автор 4atty

Ответов: 3
Просмотров: 4479
Последний ответ 12.01.2015, 21:29:34
от ldmco