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

davesar76

  • Новичок
  • 9
  • 0 / 0
Ошибка phpversioncheck.php
« : 12.12.2019, 10:13:06 »
Шаблон JA Small Biz.
Версия PHP 5.4.

В прошлые выходные на всех сайтах, что на этом шаблоне, при попытке зайти в админку стала выдаваться ошибка:

Цитировать
Fatal error: Call to a member function format() on a non-object in /home/папка сайта/htdocs/depo/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 174

При этом сам сайт в интернетах видно.

Как победить, вдруг кто в курсе?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #1 : 12.12.2019, 10:13:50 »
Отключите плагин иконки проверки версии PHP
*

davesar76

  • Новичок
  • 9
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #2 : 12.12.2019, 10:19:15 »
Отключите плагин иконки проверки версии PHP

Дык, я б с радостью и удовольствием :)
Но, оно, гадство такое, не пускает в одминку :(

А вручную в базе/пхп-скриптах даже не представляю куда лезть...
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #3 : 12.12.2019, 10:33:11 »
Таблица extentions
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #4 : 12.12.2019, 10:34:08 »
Ну либо в файлике куда ошибка ведет дату конечную поменяйте
*

davesar76

  • Новичок
  • 9
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #5 : 12.12.2019, 10:36:21 »
Ну либо в файлике куда ошибка ведет дату конечную поменяйте

В соседнем треде уже увидел Ваше сообщение на эту тему, ага :)
Всё получилось.
Спасибо за помощь! :)
*

Doran

  • Захожу иногда
  • 104
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #6 : 12.12.2019, 16:21:48 »
Отключите плагин иконки проверки версии PHP

Спасибо помогло!

На прошлой неделе стал выскакивать белый экран на главной странице админки, приходилось через внутренние страницы заходить
*

Alekseev_vk

  • Новичок
  • 3
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #7 : 17.12.2019, 09:50:52 »
Добрый день. Нужна помощь. Не могу найти информации в интернете. При входе в Админку Joomla был белый экран, через файл конфигурации включил видимость ошибок, увидел следующее

Notice: Undefined variable: recommendedVersion in /www/http/site/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 173

Notice: Undefined variable: recommendedVersionEndOfSupport in /www/http/site/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 174

Fatal error: Call to a member function format() on a non-object in /www/http/site/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 174


Дату файла меня, ничего не произошло. Может кто-то что-то подскажет. Спасибо.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #8 : 17.12.2019, 10:06:06 »
Ну отключите плагин.
И менять надо не дату файла, а дату в файле
*

Alekseev_vk

  • Новичок
  • 3
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #9 : 17.12.2019, 10:15:10 »
Ну отключите плагин.
И менять надо не дату файла, а дату в файле

Не пускает в админку, так не пойму как его отключить.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #10 : 17.12.2019, 10:16:59 »
Через бд таблица extentions
*

Alekseev_vk

  • Новичок
  • 3
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #11 : 17.12.2019, 10:18:48 »
Через бд таблица extentions

Спасибо за уточнение даты, изменгил в файле пустило, теперь просто все изменить) Большое спасибо за уточнение)
*

Paradox

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #12 : 27.01.2020, 15:26:58 »
Через бд таблица extentions
Тоже при заходе в админку сайта, после ввода логина и пароля выскакивает белый экран. Сам сайт работает.
Вот лог ошибки:
PHP Fatal error:  Call to a member function format() on null in /var/customers/webs/логин хостинга/сайт/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 174
Так как нельзя зайти в админку и отключить плагин, буду пробовать через БД. Я так понимаю здесь нужно менять дату ? : wqmli_extensions --- plg_quickicon_phpversioncheck ---изменить --- checked_out_time   datetime ? Там сейчас стоят все нули, нужно выставлять дату вперед или назад относительно текущего дня ?
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #13 : 27.01.2020, 15:37:11 »
Тоже при заходе в админку сайта, после ввода логина и пароля выскакивает белый экран. Сам сайт работает.
Вот лог ошибки:
PHP Fatal error:  Call to a member function format() on null in /var/customers/webs/логин хостинга/сайт/plugins/quickicon/phpversioncheck/phpversioncheck.php on line 174
Так как нельзя зайти в админку и отключить плагин, буду пробовать через БД. Я так понимаю здесь нужно менять дату ? : wqmli_extensions --- plg_quickicon_phpversioncheck ---изменить --- checked_out_time   datetime ? Там сейчас стоят все нули, нужно выставлять дату вперед или назад относительно текущего дня ?
да просто отключите плагин через бд
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Ошибка phpversioncheck.php
« Ответ #14 : 27.01.2020, 16:50:38 »
Так как нельзя зайти в админку и отключить плагин, буду пробовать через БД
Надежнее и проще переименовать папку плагина
*

Paradox

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #15 : 27.01.2020, 17:54:38 »
Надежнее и проще переименовать папку плагина
Как вы и советовали плагин через БД отключил, админка сразу заработала, спасибо.
Я так понял это произошло из-за устаревшей версии PHP ? Если перевести сайт на PHP7, то плагин можно обратно включать? Стоит много расширений, многие наверное не поддерживают PHP7, придется обновлять расширения, а это всегда чреватое проблемами. Но когда-то все равно надо будет, лучше уж раньше. Или причина ошибки другая ?
PHP сейчас стоит 5.6.39
Joomla  3.7.2
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #16 : 27.01.2020, 18:04:36 »
Как вы и советовали плагин через БД отключил, админка сразу заработала, спасибо.
Я так понял это произошло из-за устаревшей версии PHP ? Если перевести сайт на PHP7, то плагин можно обратно включать? Стоит много расширений, многие наверное не поддерживают PHP7, придется обновлять расширения, а это всегда чреватое проблемами. Но когда-то все равно надо будет, лучше уж раньше. Или причина ошибки другая ?
PHP сейчас стоит 5.6.39
Joomla  3.7.2
Причина ошибки именно в версии php
А вам обновлять не только Ее но и сам движок
*

leha111

  • Захожу иногда
  • 226
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #17 : 01.12.2020, 11:12:14 »
Для тех , у кого есть возможность сменить версию PHP на хосте самый удобный вариант - временно поменять на любой PHP 7. Тогда админка будет со скрипом, но работать и вы сможете отключить злосчастный плагин через соответствующее меню (Расширения-Плагины-Проверка версии PHP).
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
Re: Ошибка phpversioncheck.php
« Ответ #18 : 01.12.2020, 11:23:44 »
а можно просто дату поменять в файле
plugins/quickicon/phpversioncheck/phpversioncheck.php
*

prostoy

  • Захожу иногда
  • 394
  • 6 / 1
  • Истина где то рядом.
Re: Ошибка phpversioncheck.php
« Ответ #19 : 16.12.2020, 12:35:25 »
Всем привет !
Была ошибка /plugins/quickicon/phpversioncheck/phpversioncheck.php on line 178
я в файле поменял дату в сроке 107
Вот как у меня
   
Код
$phpSupportData = array(
'5.3' => array(
'security' => '2013-07-11',
'eos'      => '2014-08-14',
),
'5.4' => array(
'security' => '2014-09-14',
'eos'      => '2015-09-14',
),
'5.5' => array(
'security' => '2015-07-10',
'eos'      => '2016-07-21'
),
'5.6' => array(
'security' => '2017-01-19',
'eos'      => '2025-12-31'
),
'7.0' => array(
'security' => '2025-12-03',
'eos'      => '2026-12-03'
),
'7.1' => array(
'security' => '2027-12-01',
'eos'      => '2028-12-01'
),
'7.2' => array(
'security' => '2029-11-30',
'eos'      => '2030-11-30'
),
);



Вот что было
Код
$phpSupportData = array(
'5.3' => array(
'security' => '2013-07-11',
'eos'      => '2014-08-14',
),
'5.4' => array(
'security' => '2014-09-14',
'eos'      => '2015-09-14',
),
'5.5' => array(
'security' => '2015-07-10',
'eos'      => '2016-07-21'
),
'5.6' => array(
'security' => '2017-01-19',
'eos'      => '2018-12-31'
),
'7.0' => array(
'security' => '2017-12-03',
'eos'      => '2018-12-03'
),
'7.1' => array(
'security' => '2018-12-01',
'eos'      => '2019-12-01'
),
'7.2' => array(
'security' => '2019-11-30',
'eos'      => '2022-11-30'
),
);
« Последнее редактирование: 05.10.2023, 19:19:35 от prostoy »
*

MariaK

  • Новичок
  • 2
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #20 : 17.02.2021, 13:48:45 »
Если перевести сайт на PHP7, то плагин можно обратно включать? Стоит много расширений, многие наверное не поддерживают PHP7, придется обновлять расширения, а это всегда чреватое проблемами. Но когда-то все равно надо будет, лучше уж раньше. Или причина ошибки другая ?
Переименовала /quickicon/, смогла зайти в админку, обновила Joomla, обновила php, появился обновлённый /quickicon/ рядом с переименованным ранее. Всё работает (тьфу-тьфу-тьфу).
*

alex_av

  • Новичок
  • 1
  • 0 / 0
Re: Ошибка phpversioncheck.php
« Ответ #21 : 19.04.2022, 15:28:54 »
Случилось и со мной проблема, не могу войти в админку Joomla, на экране вижу сообщение об ошибке ...phpversioncheck.
Пробовал советы, но, для меня как чайника, это оказалось не понятно. В итоге нашел решение, зашел в админку таким образом, пошагово.
1. Паролимся в админке, получаем экран с ошибкой о версии PHP
2. Вводим в строке браузера http://адрес вашего сайта/administrator/index.php?option=com_plugins
3. Попадаем на страницу Joomla расширений "Менеджер плагинов: Плагины", в поле поиска вводим "php", в итоге видим плагин Quick Icon - PHP Version Check.
4. Выключаем плагин.
« Последнее редактирование: 19.04.2022, 15:42:00 от alex_av »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1199
Последний ответ 06.04.2025, 09:27:20
от wishlight
Ошибка 0 Call to undefined function GuzzleHttp\choose_handler()

Автор Alllex

Ответов: 0
Просмотров: 789
Последний ответ 15.03.2024, 21:03:09
от Alllex
Ошибка version_compare(): Argument #3 ($operator)

Автор Шмайсер

Ответов: 1
Просмотров: 1138
Последний ответ 07.11.2023, 20:44:21
от fsv
reCapcha во всплывающем окне - "Ошибка защиты от спама"

Автор Dannik

Ответов: 12
Просмотров: 2387
Последний ответ 14.09.2023, 18:59:24
от all_zer
Ошибка 1054 Unknown column 'created_by' in 'field list' VirtueMart

Автор Evgen Kulibin

Ответов: 3
Просмотров: 1303
Последний ответ 26.02.2023, 01:56:42
от lakshmi