Новости 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 Ответов
  • 1788 Просмотров
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Переход на PHP 7 - ошибка
« : 05.01.2019, 09:57:22 »
Здравствуйте. На одном из сайтов при переходе на PHP 7 ошибка 500. В логах выдает следующее - End of script output before headers: index.php

Кто сталкивался и как решить?

Спасибо.
*

arma

  • Завсегдатай
  • 1753
  • 81 / 3
Re: Переход на PHP 7 - ошибка
« Ответ #1 : 05.01.2019, 21:05:28 »
Проблема с кэшем. Пробуйте изменить в настройках на "файл" или к провайдеру.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #2 : 05.01.2019, 21:07:23 »
Проблема с кэшем. Пробуйте изменить в настройках на "файл" или к провайдеру.
Можно подробнее, что изменить и где?

Спасибо.
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Переход на PHP 7 - ошибка
« Ответ #3 : 05.01.2019, 22:53:59 »
https://docs.joomla.org/J3.x:Global_configuration/ru

Система → Общие настройки
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #4 : 05.01.2019, 22:56:57 »
https://docs.joomla.org/J3.x:Global_configuration/ru

Система → Общие настройки
Обработка кэширования стоит "файл".
Вот что хостер написал:
Это общая ошибка, означает что на вывод в браузер отправлялась какая-то информация до старта заголовков. Как правило она возникает при какой-то ошибке в РНР, которая отображается до старта сессии. Видимо какой-то компонент Вашего сайта несовместим с более новой версией РНР. На уровне хостинга это решить не получится, нужно обратиться к разработчику и определить какая именно часть движка не работает на версии 7.0.

Как найти, что именно не хочет работать. Где увидеть, какой компонент не совместим?
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Переход на PHP 7 - ошибка
« Ответ #5 : 05.01.2019, 22:59:30 »
По очереди выключайте их и проверяйте пока сайте не заработает. Хотя там по идее другая ошибка должна быть какая-то.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #6 : 05.01.2019, 23:01:07 »
По очереди выключайте их и проверяйте пока сайте не заработает. Хотя там по идее другая ошибка должна быть какая-то.
Что посоветуете, если там другая ошибка? Какая именно? Можете помочь?
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Переход на PHP 7 - ошибка
« Ответ #7 : 05.01.2019, 23:05:38 »
Что посоветуете, если там другая ошибка?


У вас Joomla 3? Какая конкретно версия? Что установлено кроме самой Joomla?
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #8 : 05.01.2019, 23:08:31 »
Joomla 3.9.1. А установлено много чего. ;D Плагины, модули, компоненты правда уже все удалил. Пока никаких изменений.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #9 : 05.01.2019, 23:09:21 »

У вас Joomla 3? Какая конкретно версия? Что установлено кроме самой Joomla?
Ща сделаю скрины, может сюда можно вставлять.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Переход на PHP 7 - ошибка
« Ответ #10 : 05.01.2019, 23:10:14 »
Плагины, модули, компоненты правда уже все удалил. Пока никаких изменений.
а шаблон?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #11 : 05.01.2019, 23:11:33 »
а шаблон?
Шаблон точно такой же на другом сайте работает без проблем. Там PHP 7. А это сайт ни в какую.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Переход на PHP 7 - ошибка
« Ответ #12 : 05.01.2019, 23:15:11 »
ну проверить все равно не помешает, переключить на стандартный и посмотреть. мало ли, может версии разные...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #13 : 05.01.2019, 23:19:03 »
ну проверить все равно не помешает, переключить на стандартный и посмотреть. мало ли, может версии разные...
Версия одна и та же, так как я копировал шаблон. Одинаковый.

Получилось, что были 2 сайта и не работали на PHP 7. Другой я недавно запустил с этим шаблоном, и он работает.

Затем я один из сайтов удалил, переустановил Joomla и шаблон натянул этот же. Сейчас работает.

С другим так поступить не могу, поэтому нужно найти причину.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #14 : 05.01.2019, 23:21:26 »
http://joxi.ru/DrlazxOhvw9Pzm
Панель управления - компоненты.

http://joxi.ru/vAWDlEYT1M7W5r

Сайт - компоненты
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Переход на PHP 7 - ошибка
« Ответ #15 : 06.01.2019, 10:43:59 »
Рокспрокет обновить? Да и вывод ошибок на максимум в общей конфигурации. Да и вообще обновлять надо не только Joomla.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #16 : 06.01.2019, 10:45:47 »
Рокспрокет обновить? Да и вывод ошибок на максимум в общей конфигурации.
Я просто не помню, зачем вообще это Роспрокет. А насчет вывода ошибок, сейчас посмотрю, где это.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #17 : 06.01.2019, 10:48:37 »
Да и вывод ошибок на максимум
Включил вывод ошибок на максимум и сайт перестал работать.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #18 : 06.01.2019, 10:53:28 »
Вернул на место default по ошибкам сайт снова работает
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #19 : 06.01.2019, 10:58:34 »
Это по обновлениям компонентов и прочее

http://joxi.ru/bmooYyOtxP6vKm
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #20 : 06.01.2019, 11:00:37 »
Включил простой режим об ошибках, сейчас переключу PHP на 7 и посмотрю.
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #21 : 06.01.2019, 11:27:08 »
Итак, удалось добрать до PHP 7.0 :D

Отключил некоторые плагины (поочередно с проверкой сайта).
Обновил 2 компонента - flexheader и redl (перенаправление).

Теперь при переходе до 7.1 страница грузится, но статьи не показываются

Cannot use string offset as an array
*

vasiok4

  • Захожу иногда
  • 52
  • 0 / 0
Re: Переход на PHP 7 - ошибка
« Ответ #22 : 06.01.2019, 12:21:10 »
Warning: include_once(J_TEMPLATEDIRJ_SEPARATORincludesJ_SEPARATORhead.php): failed to open stream: No such file or directory in /home/...../....../....../public_html/templates/..../index.php on line 70

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

Прошу помощи. Ошибка при обновлении на Joomla 4

Автор wmsonic

Ответов: 1
Просмотров: 2027
Последний ответ 29.10.2023, 22:07:23
от Kukush
Выходит ошибка в админской панели

Автор daymarus

Ответов: 0
Просмотров: 1867
Последний ответ 10.08.2023, 12:43:43
от daymarus
При обновлении ошибка 403 Forbidden Request forbidden by administrative rules

Автор THeCMeX

Ответов: 18
Просмотров: 3753
Последний ответ 14.07.2023, 17:13:19
от art22
Из FAQ: Переход с 2.5 на 3.х

Автор Magnum

Ответов: 168
Просмотров: 84274
Последний ответ 16.03.2023, 15:25:38
от MarGalaeva
Ошибка при обновлении с 3.10.10. до 4.х

Автор svd2014

Ответов: 1
Просмотров: 2262
Последний ответ 13.02.2023, 19:53:08
от weser