Новости Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla

Вышел WT Quick links v.2.4.0 - релиз модуля для Joomla.Это модуль-конструктор для быстрого создания набора элементов. Это могут быть ссылки на компоненты Joomla, пункт меню или пользовательская ссылка. Есть условия для исключений показа элементов списка. Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина, список FAQ, табы или аккордеоны. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео.v.2.4.0. Что нового?Добавлена поддержка новых компонентов. Добавлены новые типы ссылок и исключений для них: - Phoca Download, - Phoca Gallery, - RadicalMart (@radicalmart).Joomla 6. Успешно протестирована работа модуля на Joomla 6-alpha2.РазработчикамПроведён большой рефакторинг кода. Для типов ссылок созданы классы-драйверы. Теперь для того, чтобы добавить новый тип ссылки в модуль достаточно скопировать класс-образец из
modules/mod_wt_quick_links/src/Driver/Collection и наполнить его данными по образцу, а так же добавить необходимые языковые константы в панели администратора Joomla.Модуль бесплатный. Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 Подпишись на @joomlafeed.#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

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Что такое каноническая ссылка и об атрибуте rel="canonical".
Предлагаю решение для построения канонических ссылок(в комплекте com_content, com_contact, com_weblinks, плагин расширяем для других компонентов).
Плагин нужно тестировать, о багах и глюках, а также пожеланиях и прдлжениях прошу писать в этой теме.
Инструкция по подключению. Joomla 3.0
1. Скачиваете плагин.
2. Устанавливаете плагин.
3. Расширения менеджер плагинов - включаете плагин.
Плагин временно удален. В Joomla версии 3.1 на которой тестировал, неправильно работает роутер.
Можете убедится
ваш сайт/component/content/article.html?id=7 здесь 7 ид материала из админки
Код: php
$url = JURI::getInstance()->toString();
$uri = JURI::getInstance($url);
$query = JFactory::getApplication()->getRouter()->parse($uri);
var_dump($query );
выведет id='article' это ошибка должно быть в нашем случае  id='7'
Буду просматривать обновления поправят роутер перепишу плагин
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Канонические ссылки для com_content
« Ответ #1 : 07.11.2012, 13:47:03 »
Круть! Я прям в шаблон запилил. Полезная наработка.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #2 : 07.11.2012, 13:54:08 »
А почему для категорий используется напрямую JRoute, а не ContentHelperRoute::getCategoryRoute. Или это сделано ради уточнения конкретного layout?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #3 : 07.11.2012, 14:13:35 »
Формирование ссылок взял по аналогии стандартного меню. Есть предложение по формировании ссылок для блога вставим.
В конце написания возникла мысль а может $uri->toString(array('fragment')) хватит на все это дело для других компонентов?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #4 : 07.11.2012, 15:34:22 »
Спасибо! Поправил. Архив перезалил. Каждый по строчке кода и может кому то пригодится ^-^
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #6 : 07.11.2012, 19:20:12 »
Плагин нужен однозначно! Причем особых технических препятствий для этого я не вижу - даже если в лоб делать и вырезать/вставлять ссылки на onAfterRender ;)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #7 : 07.11.2012, 19:36:07 »
Плагин написать не сложно. Вот интересно было обсудить о расширяемости этого плагина, подключения новых компонентов для обработки и каких-то специфических требований к самим ссылкам. Может  у кого то пожелания будут
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #8 : 07.11.2012, 19:38:05 »
Так реализовать в плагине абстрактный класс-адаптер, вложить в него плагины для встроенных компонентов, а дальше пополнять тем, что пришлет народ (я надеюсь, что народ-то не останется в стороне). Но в любом случае плагин нужен, править руками код в наше время уже как-то даже неприлично

эм для каких именно специфических компонентов, можно пример?
ой, можно подумать мало таких :)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #9 : 07.11.2012, 19:44:41 »
frisian неправильно понял или я не так выразился.  для начала развернуть для стандартных компонентов. я говорю о том, чтобы с легкостью можно было расширять, подключать обработку других компонентов. Пока писал smart написал про то, что я имею ввиду
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #10 : 07.11.2012, 20:02:05 »
(правда пока писал нашел один минус в этой идее.. если кто то что то в плагине ручками допишет то потеряет это при обнове плагина)
ничего подобного - можно сделать чтобы из папки adapters грузились адаптеры вида componentname.php, но перед этим  проверялось, а нет ли componentname.override.php, и если есть - использовать перегруженный. И овцы целы, и волки сыты и пастуху - вечная память.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #11 : 08.11.2012, 13:01:27 »
Написал первую версию плагина. Тестируйте. Принимаются пожелания и замечания
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #12 : 08.11.2012, 13:12:47 »
О, это уже интересно. Только форматирование кода все-таки приведи к используемому в Joomla? Сейчас читать просто невозможно... Да и лучше, когда точка выхода из метода одна, а не десяток return'ов по всему телу метода. И еще, а где объявлена переменная $option? И еще, если используется нестандартный порт (ну допустим 8088), работать будет?

p.s. Я бы все-таки эти адаптеры сделал бы классами, и инициализировал их извне данными. В конце концов в базовом можно получить все основные переменные (layout, view, document), а уже в наследниках вытягивать то, что требуется из текущей ссылки и строить каноническую ссылку.
« Последнее редактирование: 08.11.2012, 13:17:12 от smart »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #13 : 08.11.2012, 13:22:50 »
extract($app->getRouter()->parse($uri)); - Здесь берем option
Объявим перменную на всякий случай. Код приведем. Больше интересует удобство такого подхода (com_newcomponent.php). Чтобы добавить свой компонент нужно добавить файл с системным именем компонента.php в папку component  в котором определена переменная $can_url
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #14 : 08.11.2012, 13:27:54 »
extract($app->getRouter()->parse($uri)); - Здесь берем option
на мой взгляд не очень читабельно и удобно - т.е. визуально сказать нельзя, какие переменные в результате определены и какие у них значения. И еще, когда мы используем jrequest, у нас под рукой вся мощь фильтрации входных данных, а тут - после parse у нас просто ассоциативный массив, а что если в $option будет не название компонента, а допустим путь к файлу из каталога выше? или еще откуда-то? опасно...
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Канонические ссылки для com_content
« Ответ #15 : 08.11.2012, 13:32:57 »
$option - согласен с Сергеем.

И читать трудно. Бей на приватные методы. Постарайся onBeforeCompileHead преврарить чисто в интерфейс, не грузи его кучой кода.

Насчет подхода - я, пока, не вижу других вариантов, так как файл тебе все равно будет нужен. Может быть действительно внутри файлов сделать классы, как Сергей предложил.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #16 : 08.11.2012, 13:39:46 »
Да пусть будет файл, кто против... но пусть этот файл будет классом... а не куском кода, который непонятно что и откуда берет
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #17 : 08.11.2012, 13:42:21 »
Но ведь мы и не знаем заранее как будет форматироваться query строка чужого компонента. Что там будет article или city к примеру. А таким образом мы получим все переменные. jrequest и новый Jinput здесь не помогут. Откуда я знаю наименования переменных чужих компонентов, чтобы их объявить. Понял вы хотите запрашивать только в option , а все остальное переложить на файл подключенный
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для com_content
« Ответ #18 : 08.11.2012, 15:06:37 »
Ну так вытащи в плагине только то, что нужно - option, проведи фильтрацию и подключай адаптер, а уже внутри адаптера, пусть каждый вытаскивает из массива те переменные, которые требуются. То что сейчас - и не безопасно и не предсказуемо. Ну вот представь, что в ссылке будет &doc=test или &app=comments, что произойдет после extract? Правильно - переменные $app и $doc получат значения 'test' и 'comments'. А что будет дальше, когда ты вызовешь $doc->language? Все упадет с ошибкой! А если в ссылке будет domain?

Не, все эти extract - зло, причем абсолютное зло.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для com_content
« Ответ #19 : 08.11.2012, 22:31:52 »
Написал версию 2. Если есть сбросьте ссылку на документацию по оформлению кода в Joomla.
Цитировать
в плагине абстрактный класс-адаптер, вложить в него плагины для встроенных компонентов
Не знаю, имеет ли смысл. Подключенный файл, задает(возвращает) нам сформированную ссылку для своего компонента. Писать его в виде класса?
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для Joomla 3
« Ответ #21 : 16.11.2012, 19:46:11 »
Написал 3 версию. Подправил код и логику. Добавил  обработку com_contact, com_weblinks
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для Joomla 3
« Ответ #22 : 16.11.2012, 19:53:14 »
А зачем в com_weblinks.php и com_contact.php строчка:
Код: php
if(!class_exists('ContentHelperRoute')) require_once (JPATH_SITE . '/components/com_content/helpers/route.php');

И зачем файл com_newcomponent.php, если в нем нет ни логики ни какой? Только людей будет смущать.

и еще, если уж задаем значение по умолчанию при получении значения option, то уж давайте сразу добавим проверку, что оно не пустое.

Хм, значение $this->domain лучше установить в конструкторе, это гарантирует, что оно будет на момент вызова add_link.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Re: Канонические ссылки для Joomla 3
« Ответ #23 : 16.11.2012, 20:28:55 »
Не вдаваясь в подробности, задам вопрос - не будет ли это очередным тормозом в и так не быстром движке? Плагин использует дополнительные запросы?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для Joomla 3
« Ответ #24 : 16.11.2012, 21:43:41 »
Поправил. И еще несколько ошибок.
Шмайсер не тормозит плагин. Чего он должен тормозить. Гляньте код. Конструктивная критика приветсвуется
*

Demour

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Re: Канонические ссылки для Joomla 3
« Ответ #25 : 18.11.2012, 08:04:50 »
Отличный плагин, спасибо!
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для Joomla 3
« Ответ #26 : 19.11.2012, 12:08:57 »
@Poznakomlus: кстати, вот если бы ты меня послушал и реализовал адаптеры для различных расширений в виде некоего класса, то можно было бы сделать полный изюм - закэшировать вызов метода адаптера, возвращающий ссылку, и свести нагрузку, создаваемую плагином, фактически к нулю. Ведь я думаю не секрет, что каждый вызов getArticleRoute это один запрос к БД, а если на странице таких ссылок 50, то это будет 50 лишних запросов (по крайней мере если сайт мультиязычный - точно).
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Канонические ссылки для Joomla 3
« Ответ #27 : 19.11.2012, 12:15:21 »
Да, вопрос  по коду:

Код: php
private function add_link($url)
{
$doc = JFactory::getDocument();

unset($doc->_links[array_search(array('relation' => 'canonical', 'relType' => 'rel', 'attribs' => array()), $doc->_links)]);

$url = $this->domain.JRoute::_($url);

if($this->current_url != $url)
{
$url = explode('?', $url);
$doc->addHeadLink($url[0], 'canonical');
}
}

А точно unset должен быть до проверки неравенства  $this->current_url и $url? Т.е. получается, что если ссылки равны, плагин вырезает canonical ссылку?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Канонические ссылки для Joomla 3
« Ответ #28 : 19.11.2012, 13:08:10 »
Цитировать
реализовал адаптеры для различных расширений в виде некоего класса, то можно было бы сделать полный изюм
это входит в планы, кроме этого со временем планируется управление подключением расширениями, их обновлениями и т. д.
Цитировать
А точно unset должен быть до проверки неравенства  $this->current_url и $url? Т.е. получается, что если ссылки равны, плагин вырезает canonical ссылку?
Если это ссылка оригинального материала, которая мы считаем главной страницей этого материала, то тега canonical на странице быть не должно
*

Langoliers

  • Давно я тут
  • 621
  • 67 / 2
  • Если б Я изучал людей, то был бы паразитологом
Re: Канонические ссылки для Joomla 3
« Ответ #29 : 21.11.2012, 07:40:02 »
А почему бы не предложить исправление родного SEF плагина, который Неправильно добавляет этот тег?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 3735
Последний ответ 05.06.2025, 04:48:29
от andrey222
По поводу сессий Joomla 3

Автор azm1n

Ответов: 0
Просмотров: 498
Последний ответ 25.05.2025, 09:26:17
от azm1n
Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 662
Последний ответ 09.05.2025, 12:39:18
от azm1n
Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 1717
Последний ответ 28.04.2025, 10:25:44
от sivers
Максимальная версия PHP для Joomla 3

Автор Dram

Ответов: 8
Просмотров: 2081
Последний ответ 27.03.2025, 10:40:29
от wishlight