Новости Joomla

Свои типы полей в 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 для атрибута addfieldprefixnamespace 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 #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 1157 Просмотров
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Здравствуйте!
Многократно поднимались похожие вопросы, но проблема требует уточнения нюансов.

IIS на Windows10 Server локалка, Joomla 3.9.25, шаблон Helix Ultimate.

При переходе между некоторыми разделами сайта возникает ошибка 500, но после обновления страницы она открывается уже без ошибки. И так до следующего раза перехода по тому же пути между страницами.
А теперь нюансы:
в указанной в настройках CMS папке отсутствуют логи, не могу посмотреть подробностей.
Отображение ошибок включено на максимум.
В php-файлах отсутствуют запреты на вывод ошибок.
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
индивидуальная помощь: @SetAlexx
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
1. Отключить кэширование на сайте. Проверить, стала ли 500 появляться каждый раз.
2. Включить буферизацию вывода (если отключена). Проверить не стал ли выводиться текст ошибки вместо 500.
3. Отключить вывод ошибок. Проверить не перестала ли появляться 500.

Все это выполнять по одному, а не сразу. Если что-то сработает, то ошибки надо исправить, а не оставлять как есть (это касается п.3 больше всего).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Спасибо!
1. Отключить кэширование на сайте. Проверить, стала ли 500 появляться каждый раз.
В "Настройках системы" - "Системный кэш": "кэширование отключено". Но, если выбирать любой вид кеширования здесь, то ничего не меняется.

2. Включить буферизацию вывода (если отключена).
Это где?

3. Отключить вывод ошибок.
Это "error_reporting(0);"? Куда конкретно?

И ещё: в появлении ошибки есть чёткая закономерность - она появляется только при определённых переходах. Только вот выявить параметр, определяющий эту зависимость, пока не удаётся...
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Это где?
Можно посмотреть в админке - Информация о системе - Параметры ПХП:
/administrator/index.php?option=com_admin&view=sysinfo
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
2. Включить буферизацию вывода (если отключена).
Можно посмотреть в админке -

Да, есть, включено.
*

sivers

  • Живу я здесь
  • 2578
  • 357 / 0
Да, есть, включено.

Тогда остается только искать логи на сервере и смотреть что в них
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Не пойму, где их искать... В настройках системы стоит "log_path c:\inetpub\...\administrator\logs" , но там пусто. Путь рабочий, потому что по схожему пути (c:\inetpub\...\tmp) лежат файлы для установки и всё оттуда устанавливается.
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Это же iis, значит в нем и нужно искать %SystemDrive%\inetpub\logs\LogFiles
Если в боевых условиях win server будет использоваться, то лучше удалить его и поставить для тестирования OpenServer, а если все же будет, так стоит запастись мануалами по его администрированию. Всяких ошибок и "нежданчиков" может быть много.
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Это же iis, значит в нем и нужно искать %SystemDrive%\inetpub\logs\LogFiles
Да, действительно, так и есть. Спасибо!
Только нет никакой возможности выложить сюда фрагмент лога с ошибкой, придётся разбираться...

Вобщем, интересная вещь получается: при наблюдаемой на экране ошибке в логе сообщение об ошибке (500 0 0 656) после адреса ПОКИДАЕМОЙ страницы. А после обновления уже всё в порядке - адрес новой страницы, на которую шли, и код 200.
« Последнее редактирование: 16.06.2022, 08:20:18 от RomanA »
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Стандартный web.conf.txt переименован в web.conf?
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Стандартный web.conf.txt переименован в web.conf?

Извините, тоже не могу его найти...  :(
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
в корне сайта
индивидуальная помощь: @SetAlexx
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Ну, да, конечно! Только называется он web.config (а не conf, поэтому поиск не находил) :)

В нём только ссылка на index.php
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
в дефолтном как то так
Код
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <location path=".">
   <system.webServer>
       <directoryBrowse enabled="false" />
       <rewrite>
           <rules>
               <rule name="Joomla! Rule 1" stopProcessing="true">
                   <match url="^(.*)$" ignoreCase="false" />
                   <conditions logicalGrouping="MatchAny">
                       <add input="{QUERY_STRING}" pattern="base64_encode[^(]*\([^)]*\)" ignoreCase="false" />
                       <add input="{QUERY_STRING}" pattern="(&gt;|%3C)([^s]*s)+cript.*(&lt;|%3E)" />
                       <add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
                       <add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
                   </conditions>
                   <action type="CustomResponse" url="index.php" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
               </rule>
               <rule name="Joomla! Rule 2">
                   <match url="(.*)" ignoreCase="false" />
                   <conditions logicalGrouping="MatchAll">
                     <add input="{URL}" pattern="^/index.php" ignoreCase="true" negate="true" />
                     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                   </conditions>
                   <action type="Rewrite" url="index.php" />
               </rule>
           </rules>
       </rewrite>
       <httpProtocol>
           <customHeaders>
               <add name="X-Content-Type-Options" value="nosniff" />
           </customHeaders>
       </httpProtocol>
   </system.webServer>
   </location>
</configuration>
индивидуальная помощь: @SetAlexx
*

xpank

  • Захожу иногда
  • 448
  • 41 / 0
Ну, да, конечно! Только называется он web.config (а не conf, поэтому поиск не находил) :)

В нём только ссылка на index.php
Ну с названием ошибся, все же IIS мне чужд   ^-^

Точно ничего кроме индексного файла? А реврайтов нет? Они нужны для нормальной работы роутинга.
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Точно ничего кроме индексного файла? А реврайтов нет? Они нужны для нормальной работы роутинга.

К сожалению, нет ни малейшей возможности копипастить здесь что-либо своё, только ручками...

В файле только 10 строк, и всё ради объявления <add value="index.php" />

в дефолтном как то так

Думаете, стоит заменить мой файл на этот?

Кстати, вполне может оказаться, что версия PHP, например, не подходит (у нас 7.4.9)

:/
все же IIS мне чужд   
Выбирать не приходится :(
« Последнее редактирование: 16.06.2022, 11:12:41 от RomanA »
*

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
попробуйте замените
назад то вернуть 2 клика
индивидуальная помощь: @SetAlexx
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Попробовал... Сплошная "ошибка 500", ничего не открывается :) Вернул.
*

RomanA

  • Захожу иногда
  • 111
  • 0 / 0
Короче: заменил рнр7.4.5 на рнр7.3.9 и всё заверте...
Даже списки в Фабрик стали создаваться.
Всем - спасибо!  *ОХ-Х-Х* ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

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

Ответов: 5
Просмотров: 1191
Последний ответ 06.04.2025, 09:27:20
от wishlight
Проблема со входом в панель администратора Joomla 3.x после обновления

Автор danieeljose

Ответов: 2
Просмотров: 705
Последний ответ 24.03.2025, 20:33:02
от R31rus
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 614
Последний ответ 22.11.2024, 07:14:15
от stepan39
Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 916
Последний ответ 18.07.2024, 08:02:46
от Vastriet
После выключения расширения лег сайт

Автор blind

Ответов: 4
Просмотров: 1066
Последний ответ 19.05.2024, 14:13:33
от blind