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

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Поясните, пожалуйста! Решил продублировать сайт на другом локальном компе. Старую версию ХАМРР с РНР 5.5.19 утерял. Поставил новую с версией РНР 7. Сайт сделан на версии Joomla 3.6.5, РНР 5.6.3 Сайт перенес как и рвньше делал. Но что то сайт в браузере не открывается.Связано ли это с версией РНР?
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Да. Но не факт что с php. А что открывается вместо сайта?

Вот вам другой сервер https://ospanel.io/
« Последнее редактирование: 07.01.2018, 22:32:52 от wishlight »
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Связано ли это с версией РНР?
может быть связанно с чем угодно!
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Сообщается, что невозможно открыть сайт. Я когда в 2015 году только входил в тему, устанавливал свежую версию Joomla на свежий хамрр. Повыскакивали ошибки. Здесь на форуме подсказали, что хамрр нужен  с более срой версией рнр.Установил,  ошибки пропали.
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Aleks.Denezh пишет:
может быть связанно с чем угодно!
никто не сомневается. что причин может быть много. но что касается именно этой версии?Може т ли Joomla с РНР 5.6.3 РАБОТАТЬ НА СЕРВЕРЕ с РНР 7 ?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Може т ли Joomla с РНР 5.6.3 РАБОТАТЬ НА СЕРВЕРЕ с РНР 7 ?
Вопрос некорректный.
https://docs.joomla.org/Technical_requirements/ru
Сообщается, что невозможно открыть сайт.
Нужно дословно, а не вашими словами.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
robert
Вопрос некорректный.
Ну почему некорректный? По информации из ссылки, что Вы привели, , версия РНР не должна тут мешать. К , сожалению,  сейчас от своего сервера нахожусь на расстоянии.Что конкретно на экране сообщу завтра.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Може т ли Joomla с РНР 5.6.3 РАБОТАТЬ НА СЕРВЕРЕ с РНР 7 ?
Ну почему некорректный?
Joomla не идет ни с РНР 5.6.3, ни с какой-либо другой.
Joomla 3  может работать на PHP 7, Joomla 2.5 - нет.
Тем более, проблемы, скорее всего, связаны с расширениями, а не с Joomla.
« Последнее редактирование: 08.01.2018, 11:55:39 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Може т ли Joomla с РНР 5.6.3 РАБОТАТЬ НА СЕРВЕРЕ с РНР 7 ?
Не важно на какую версию PHP была первоначальная установка, это ни на что не влияет в дальнейшем, поэтому в пределах рекомендованных требований к серверу скрипты будут выполняться корректно.
P.S. У меня на сервере PHP 7.1.9, Joomla работает без проблем.
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Сегодня по новой установил последний XAMPP c PHP 7.2.0 , перенес на него сайт с другого компа, где XAMPP c PHP 5.5.19. На этот раз сайт открывается, но выскакивает ошибка : Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\pitomnik\libraries\cms\application\cms.php on line 464

Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\pitomnik\libraries\joomla\updater\updater.php on line 275
[/color]
при открытии панели ошибка такая: Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\pitomnik\libraries\cms\application\cms.php on line 464[/b] Ясно, что связано с РНР. На ХАМРР старом никаких ошибок, а сайт один в один.
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
3.6 не подрживает php 7.2
В ней поддержка только PHP 7.0 и вроде 7.1, но не факт...
PHP 7.2 поддерживает только Joomla 3.8.3
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
На этот раз сайт открывается, но выскакивает ошибка
Ничего страшного: это не ошибка, а предупреждение, причина которого уже исправлена в следующих версиях.
P.S. С учетом того, что написал @zikkuratvk, нет гарантии, что в дальнейшем не вылезут другие проблемы.
« Последнее редактирование: 08.01.2018, 20:20:48 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Может стоит просто обновить движок до свежей версии? Чем дольше оттягивать, тем позже можно больше проблем словить при обновлении.
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
То есть итог? если я обновлю дл 3.8.3 проблемы исчезнут? А как насчет того что  robert привел ссылку где прямо указано  Joomla 3. поддерживается РНР 7 и выше.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
То есть итог? если я обновлю дл 3.8.3 проблемы исчезнут? А как насчет того что  robert привел ссылку где прямо указано  Joomla 3. поддерживается РНР 7 и выше.
Прогресс не стоит на месте: как видите, есть PHP 7.0, 7.1, 7.2...
Но это не самое главное: как я уже писал, кроме Joomla, вы также должны обновить свои расширения. Joomla - это всего лишь рельсы, по которым ездят используемые вами расширения. Если Joomla может менять ширину колеи, то это еще не значит, что старые вагоны тоже могут это делать.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Да  у меня нет сторонних расширений: стандартный шаблон beez3 и все, что к нему прилагается. Сейчас обновил сайт до 3.8.3. После обновы появилось сообщение :Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\pitomnik\libraries\joomla\http\transport\curl.php on line 200
При входе на сайт и панель фигурируют те же ошибки, что я приводил ранее. Что вообще эти ошибки означают?
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Извиняюсь ! Глянул, а обновы не произошло. Что то отказался обновляться. Версия осталась прежней 3.6.5  Как прочитать этот Fatal error.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Увеличьте лимиты на выполнение скриптов
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Научитесь пользоваться поиском.
1
2
Не будь паразитом, сделай что-нибудь самостоятельно!
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Опенсервер поставьте и не мучайте себя.
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Всем спасибо за участие! И поиском научился пользоваться (вернее вспомнил, что такой метод тоже бывает полезен), и выяснил как увеличить лимиты выполнения скриптов. Все прекрасно обновилось- ошибки пропали. Общий итог: все таки определенное соответствие  версии  PHP на сервере  версии
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
Итог: определенное соответствие версии РНР на сервере  версии Joomla должно присутствовать.
*

Ebelous

  • Захожу иногда
  • 207
  • 1 / 0
  • Учиться,учиться и учиться!
wishlight пишет: Опенсервер поставьте и не мучайте себя.
Спасибо, конечно, за совет. Зашел на сайт, почитал MANUAL, что то как то сложновато. Где бы попонятней прочесть как его использовать как локсервер.
*

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
Он проще xampp в управлении.
*

zikkuratvk

  • Глобальный модератор
  • 4819
  • 345 / 2
  • Обслуживаем проекты - дорого.
То есть итог? если я обновлю дл 3.8.3 проблемы исчезнут? А как насчет того что  robert привел ссылку где прямо указано  Joomla 3. поддерживается РНР 7 и выше.
Поддержка ПО всегда пишется для последней версии в ветке... последняя сейчас 3.8.3
Я 3.6.5 вышла два больше года назад... тогда PHP 7.2 еще не существовало, во всяком случае в финальной версии.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужна проф помощь в обновлении Joomla на лок.сервере osp. Можно платно

Автор Fati

Ответов: 0
Просмотров: 42
Последний ответ 16.06.2025, 16:40:04
от Fati
Помогите с БАГом в панели администратора Joomla 3

Автор akteon25

Ответов: 2
Просмотров: 1105
Последний ответ 26.02.2025, 16:41:56
от akteon25
Версии РНР и Joomla 3

Автор Ebelous

Ответов: 8
Просмотров: 2875
Последний ответ 27.01.2025, 20:38:45
от pavelrer
Trouble Upgrading from Joomla 3.8 to 3.9

Автор melissa00

Ответов: 0
Просмотров: 1706
Последний ответ 26.07.2024, 10:03:51
от melissa00
SP polls в Joomla 3.8.2

Автор wawont

Ответов: 2
Просмотров: 3374
Последний ответ 22.02.2024, 21:03:15
от Zegeberg