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

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Есть сайт на Joomla 3.6.5. У него есть директория /images/... - думаю, все об этом знают.
Кто-то рекомендует ее закрывать в robots.txt, кто-то нет. Но вопрос не об этом. Допустим, мне надо, чтобы она была открыта.
В этой директории лежала какая-то картинка, допустим с именем image.jpg. Потом мы эту картинку удалили. И по идее, при обращении к ней должна появляться ошибка 404: site.com/images/image.jpg => 404 ошибка. Но этого не происходит. Вместо этого отображается просто одна из страниц сайта.
Т.е. мы имеем полный дубль, доступный по адресу местонахождения удаленной картинки. Как быть в таком случае? Как корректно настроить 404 ошибку в таком случае и почему она вообще не отображается сразу? Уже в нескольких местах задавал этот вопрос, но никакого ответа не получил до сих пор.
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Это не сюда вопрос.
Всё зависит от настроек хостинга, их трясите
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это не сюда вопрос.
Всё зависит от настроек хостинга, их трясите
Такая ситуация уже была на 3 разных хостингах и 3 разных сайтах. Единственное, что между ними было общего - это Joomla.
И что интересно: удаляю другие картинки из /images/ - выдает 404 ошибку. Т.е. такая ситуация наблюдается лишь с некоторыми изображениями.
Куда можно копать?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Такая ситуация уже была на 3 разных хостингах и 3 разных сайтах. Единственное, что между ними было общего - это Joomla.
И что интересно: удаляю другие картинки из /images/ - выдает 404 ошибку. Т.е. такая ситуация наблюдается лишь с некоторыми изображениями.
Куда можно копать?
Тогда наверно дело в том, где и как картинка прописана.
Что за расширение, шаблон?
А вообще - ссылку в студию!!
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Тогда наверно дело в том, где и как картинка прописана.
Что за расширение, шаблон?
А вообще - ссылку в студию!!
Ссылка: http://stopfire.su/images/13.jpg
Эта же страница: http://stopfire.su/protivopozharnye-raboty/protivopozharnyj-vodoprovod/ispytaniya
Шаблон самописный, простой. Расширений тоже по минимуму. Стараюсь стандартными средствами обходится.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
ну как бы так тоже откроется :)
13 - это id материала скорее всего
главный пункт меню какой тип имеет?
по возможности его надо убрать со стандартных материалов com_content, тогда по идее должно быть нормально
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
ну как бы так тоже откроется http://stopfire.su/images222/13.jpg :)
13 - это id материала скорее всего
главный пункт меню какой тип имеет?
по возможности его надо убрать со стандартных материалов com_content, тогда по идее должно быть нормально
Действительно, id материала тоже 13.
Главный пункт меню - ссылка на избранные материалы.
Убрать - в смысле убрать со всех страниц?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
htaccess стандартный?
Всякие sef-расширения или плагины стоят?
нгинкс или апач?
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
htaccess стандартный?
Всякие sef-расширения или плагины стоят?
нгинкс или апач?
Apache 2.2 + PHP 7, SEF-стандартный джумловский плагин.
Дополнительно стоит OSMetaFree - но он никак не влияет, т.к. на других сайтах с такими же "особенностями" его нет.
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
А вот, собственно, листинг .htaccess:

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

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
htaccess стандартный?
Всякие sef-расширения или плагины стоят?
нгинкс или апач?
причем здесь это?
так работает стандартный роутер материалов)
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
причем здесь это?
так работает стандартный роутер материалов)
Ну здрасьте.
При стандартных настройках до него не доходят запросы с окончанием .jpg
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Ну здрасьте.
При стандартных настройках до него не доходят запросы с окончанием .jpg
http://stopfire.su/sfsfsfsf/sfsfsfs/fs/fs/fs/fsf1/13 - тоже нет 404 ошибки.
Я так понимаю, что во всех случаях, когда будет фигурировать id материала, будет такая история
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А вот, собственно, листинг .htaccess:

Спойлер
[свернуть]
Это не стандартный.
Смените временно на стандартный и проверьте
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это не стандартный.
Смените временно на стандартный и проверьте
Вернул стандартный - то же самое. Дело не в .htaccess значит
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Вернул стандартный - то же самое. Дело не в .htaccess значит
Не может такого быть!
У меня всё работает и на остальных сайтах тоже.
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Не может такого быть!
У меня всё работает и на остальных сайтах тоже.
А можете дать ссылку на какой-нибудь сайт? Интересно проверить.
И работаете со стандартным .htaccess?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
При стандартных настройках до него не доходят запросы с окончанием .jpg
с чего-это? все прекрасно доходит
введи любой id материала с .jpg и все откроется

есть плагин no doubles или как-то так он называется, может он поможет в решении этого вопроса
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А можете дать ссылку на какой-нибудь сайт? Интересно проверить.
И работаете со стандартным .htaccess?
Ну вот блог например,
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
с чего-это? все прекрасно доходит
введи любой id материала с .jpg и все откроется

есть плагин no doubles или как-то так он называется, может он поможет в решении этого вопроса

Ввел, например
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Ну вот блог например,
ахах)
http://www.joomla15.ru/107.php

у тебя там явно не стандартно что-то)
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
ахах)
http://****.php

у тебя там явно не стандартно что-то)
причем тут php?
Естественно такой запрос будет передан в роутер
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Стандартный файл .htaccess, равно как и тот, что сейчас одинаково ничего не меняют.
Значит, дело либо в самом роутере Joomla, либо надо в .htaccess что-то дописать.
Только вот что дописать? И в чем может быть причина такого поведения?
Как вариант: пробовать отключать по очереди плагины и расширения, до тех пор пока проблема не исчезнет?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Стандартный файл .htaccess, равно как и тот, что сейчас одинаково ничего не меняют.
Значит, дело либо в самом роутере Joomla, либо надо в .htaccess что-то дописать.
Только вот что дописать? И в чем может быть причина такого поведения?
Как вариант: пробовать отключать по очереди плагины и расширения, до тех пор пока проблема не исчезнет?
А ссылка есть?
И хостинги точно разные?
Такое только в папке images? В этой папке случаем нет своего .htaccess?
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Ввел, например

Я обратил внимание, что в некоторых случаях у вас на сайте появляется одна страница с ошибкой 404, а в некоторых другая страница с ошибкой.
Например: http://www.joomla15.ru/вертска-454.html и http://www.joomla15.ru/108.png
Как это правильно настроить?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
причем тут php?
Естественно такой запрос будет передан в роутер
да при том, что он не должен туда передаваться)
вот тебе пример чистая J стоит последняя
http://elisa-office.ru/materialy
материал спокойно открывается
http://elisa-office.ru/materialy/1.jpg
http://elisa-office.ru/materialy/1.php

не вводи людей в заблуждение)
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Я обратил внимание, что в некоторых случаях у вас на сайте появляется одна страница с ошибкой 404, а в некоторых другая страница с ошибкой.
Например: http://www.joomla15.ru/вертска-454.html и http://www.joomla15.ru/108.png
Как это правильно настроить?
Ну да.
В первом случае движок обрабатывает запрос и подставляет свою страницу 404
Во втором же, до него запрос даже не доходит, нгинкс (хотя голый апач должен себя вести также) просто видит что такого файла нет и отдаёт свой ответ 404.
Первый случай - это только запросы без "расширения" или с "расширением" HTML, htm, php (может еще несколько)
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
А ссылка есть?
И хостинги точно разные?
Такое только в папке images? В этой папке случаем нет своего .htaccess?
Хостинги разные: spaceweb, timeweb.
Своих .htaccess в отдельных папках нет.
Вот ссылка на форум с моим первым вопросом: http://searchengines.guru/showthread.php?t=944995
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
да при том, что он не должен туда передаваться)
вот тебе пример чистая J стоит последняя
http://elisa-office.ru/materialy
материал спокойно открывается
http://elisa-office.ru/materialy/1.jpg
http://elisa-office.ru/materialy/1.php

не вводи людей в заблуждение)
Я и не ввожу..
У меня на всех хостингах много лет так работало!
Может в последних версиях что поменяли?
Или... этот вот твой пример на каком сервере крутится?
*

sejunctus

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Я и не ввожу..
У меня на всех хостингах много лет так работало!
Может в последних версиях что поменяли?
Или... этот вот твой пример на каком сервере крутится?
Мне кажется, впору уже писать разработчикам Joomla )))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться