Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

phvsfpgs

  • Захожу иногда
  • 215
  • 8 / 0
  • В погоне за обновлением Joomla и новым проблемам
Как сделать Canonical?
« : 30.09.2023, 12:02:52 »
Здравствуйте подскажите как сделать Canonical ссылки, все варианты
*

web1

  • Захожу иногда
  • 364
  • 23 / 1
Re: Как сделать Canonical?
« Ответ #1 : 30.09.2023, 14:13:30 »
Привет, установи компоент Rsseo, там есть возможность для каждой страницы прописывать title, description, мета теги noindex, nofollow, canonical, делать редиректы, генерировать карту сайта, управлять robots.txt и многое другое.
*

phvsfpgs

  • Захожу иногда
  • 215
  • 8 / 0
  • В погоне за обновлением Joomla и новым проблемам
Re: Как сделать Canonical?
« Ответ #2 : 01.10.2023, 05:55:29 »
Спасибо, но это сильно термоядерный компонент, хотелось бы что то попроще
*

Alex_gs

  • Захожу иногда
  • 161
  • 2 / 0
Re: Как сделать Canonical?
« Ответ #3 : 02.10.2023, 04:51:16 »
Зачем делать Canonical? Надо убирать дубли.
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #4 : 04.10.2023, 12:21:23 »
Спасибо, но это сильно термоядерный компонент, хотелось бы что то попроще
Это мягко сказано термоядерный, он так нагружает сервер, я как вспомню, больше такое никогда не поставлю....

Сам ищу какие варианты есть, чтобы каноникалы прописать
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #5 : 04.10.2023, 12:22:47 »
Для 3-ки Canonical Links All in One – это самый крутой плагин был, все четко выполнял работу...но на 4 ку его не перенесли(
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #6 : 04.10.2023, 13:19:16 »
Зачем делать Canonical? Надо убирать дубли.

Хороший вариант, а как вы убираете дубли? Расскажите подробнее
*

web1

  • Захожу иногда
  • 364
  • 23 / 1
Re: Как сделать Canonical?
« Ответ #7 : 04.10.2023, 17:15:45 »
А что именно грузящего в компоненте RsSeo можете поподробней рассказать?
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #8 : 04.10.2023, 21:07:10 »
Ответ сервера сравните до использования и после...
*

Sulpher

  • Живу я здесь
  • 2136
  • 402 / 16
  • Шаблоны и расширения Joomla
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #10 : 06.10.2023, 01:48:51 »
Тестил, не работает при включенных редиректах голосование за материал, в тэгах не работает, прописывает номера страниц не для всех страниц пагинации, не работает на страницах автора, много недоработок, читал про них на гитхабе.
*

web1

  • Захожу иногда
  • 364
  • 23 / 1
Re: Как сделать Canonical?
« Ответ #11 : 06.10.2023, 04:35:21 »
Для Joomla 3 еще есть компонент Tag Meta, где для каждой страницы можно прописать метаданные и canonical также.
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #12 : 06.10.2023, 11:32:10 »
Но мы же про 4 ку сейчас. Для 3 ки универсальный и лучший плагин Canonical Links All in One
*

wishlight

  • Гуру
  • 5078
  • 320 / 1
  • От 300 руб быстрый хостинг. Сервера.
*

polezniy

  • Захожу иногда
  • 442
  • 1 / 0
Re: Как сделать Canonical?
« Ответ #14 : 10.10.2023, 12:00:00 »
В целом хороший плагин, потестил, но плохо что не переписывает тайтлы и дискрипшены для страниц пагинации.
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Re: Как сделать Canonical?
« Ответ #15 : 10.10.2023, 13:51:05 »
Вот такой вариант. Добавил в файл deafult.php (в котором формируется страница) следующий код:
Код
$baseurl = JURI::root(); // Это url сайта

if ($this->item->catid == 94 or $this->item->catid == 97 or $this->item->catid == 99 or $this->item->catid == 71) : //Условие для формирования canonical - только для этих категорий.

if ($this->item->catid == 94) {$Itemid = "Itemid=104";}
if ($this->item->catid == 97) {$Itemid = "Itemid=105";}
if ($this->item->catid == 99) {$Itemid = "Itemid=106";}
if ($this->item->catid == 71) {$Itemid = "Itemid=101";}

$canoniclink = 'index.php?option=com_content&view=article&id=' . $article_id . ':' . $this->item->alias . '&catid=' . $this->item->catid . '&' . $Itemid ;
$canonical = '<link rel="canonical" href="' .$baseurl . $canoniclink . '"/>';
$document->addCustomTag($canonical); // добавляем метатег в HEAD для canonical
endif;
Т.о canonical формируются только для определенных категорий и в определенной форме.
*

3dem

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Как сделать Canonical?
« Ответ #16 : 21.10.2023, 17:46:06 »
В head: <link rel="canonical" href="<?php echo JUri::current(); ?>">
*

kysin

  • Захожу иногда
  • 247
  • 4 / 0
Re: Как сделать Canonical?
« Ответ #17 : 21.10.2023, 17:51:00 »
В head: <link rel="canonical" href="<?php echo JUri::current(); ?>">
Судя по коду, это будет текущий URL. Но он не обязательно будет canonical
*

Sulpher

  • Живу я здесь
  • 2136
  • 402 / 16
  • Шаблоны и расширения Joomla
Re: Как сделать Canonical?
« Ответ #18 : 22.10.2023, 09:29:01 »
Тестил, не работает при включенных редиректах голосование за материал, в тэгах не работает, прописывает номера страниц не для всех страниц пагинации, не работает на страницах автора, много недоработок, читал про них на гитхабе.

1. Вы уверены, что Знаток влияет на функционал голосования в материалах, а не что-то другое? Это же разный функционал.
2. Компонент имеет модульную архитектуру. Базово сделан под com_content. под другие компоненты можно написать плагины, расширяющие функционал.
3. "прописывает не для всех страниц пагинации". я такого не замечал. как воспроизвести это?
4. любой продукт развивается, о багах сообщают автору, он их правит. это нормальная практика.
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Как сделать Canonical?
« Ответ #19 : 07.12.2023, 18:14:48 »
Жесть вообще с этим канониКАЛом. Некоторое время назад прописал метатег похожим методом, как предложил
kysin
, только у меня каноникал можно прописать с помощью пользовательского поля в параметрах материала. Если прописан - берется он. Если не прописан - формируется урл:

Код
$document = JFactory::getDocument();
if(!empty($this->item->jcfields[36]->value)):
$canoniclink = $this->item->jcfields[36]->value;
else:
$canoniclink = Uri::getInstance()->toString(['scheme', 'host', 'path']);
endif;
$document->addHeadLink(htmlspecialchars($canoniclink), 'canonical');

Всё вроде нормально было, пару раз проверил на разных страницах, метатег есть и прописан вроде нормально.
Сегодня случайно обнаружил, что в качестве каноникла подставляется размеченная ссылка, типа сайт.ру?ютм_что_нибудь&иещечтото. Но быть такого не может, т.к. мой скрипт добавляет каноникал чистый, без тегов.
Начал ковыряться в исходнике, оказалось, что у меня на страницах 2 каноникла (между ними много всяких метатегов, поэтому не увидел, что есть второй метатег). Никакое гугленье не помогло, в итоге нотпадом++ запустил поиск "canonical" по всем файлам. Нашел.
Оказывается встроенный плагин SEF добавляет каноникал, если в настройках плагина прописан URL!
Пока не знаю, в какой момент это началось. Раз я писал скрипт с канониклом, значит этого метатега не было на сайте. Может быть в очередном обновлении что-то поменяли, хотя в патчноуте я такого не помню.
В любом случае, canonical, который формируется плагином, содержит текущий URL. Если кроме домена там что-то есть (например utm метки) - то оно и в тег попадет... В общем URL из плагина убрал (сам плагин включен), теперь подставляются только мои чистые канониклы. Проблема обнаружена на J4.4, на других версиях не проверял
« Последнее редактирование: 07.12.2023, 18:56:22 от master-smeta »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как правильно сделать авторизацию?

Автор creative3d

Ответов: 4
Просмотров: 785
Последний ответ 17.02.2026, 12:46:58
от creative3d
Правильная Canonical с версии Joomla 5.4 +

Автор creative3d

Ответов: 0
Просмотров: 713
Последний ответ 04.12.2025, 21:52:58
от creative3d
Как сделать всплывающее (выдвигающееся) окно на Joomla 5?

Автор sergspb

Ответов: 4
Просмотров: 583
Последний ответ 02.12.2025, 15:03:06
от sergspb
Как правильно сделать цикл?

Автор homelux

Ответов: 1
Просмотров: 454
Последний ответ 28.11.2025, 10:52:55
от fbr
Верхнее меню в версии для ПК как сделать на весь экран?

Автор web1

Ответов: 0
Просмотров: 570
Последний ответ 23.10.2025, 19:52:02
от web1