Новости Joomla

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

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

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

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

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

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 9 Ответов
  • 1623 Просмотров
*

odilon

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Столкнулся на своём сайте со следующей проблемой.

Сайт сделан на Joomla 3.0.0. Сейчас некие хакеры постоянно заходят на него со слегка исковерканных адресов. Выбирают самые посещаемые статьи сайта – и слегка видоизменяют их адрес, обычно «модифицируя» в нём всего лишь одну букву.

Если при этом в адресе сохраняется правильный номер id, Joomla после такого изменения, как ни в чём не бывало, выдаёт нужную страницу. Поисковики заглатывают видоизменённый адрес: в результате Google может выдавать на эту страницу одну ссылку, Яндекс – другую, Mail – третью и т. д. Возможно, что даже в одном и том же поисковике по одному запросу на страницу может выдаваться ссылка с одним адресом, а по другому запросу – с другим, исковерканным хакером.

В итоге рейтинг лучших статей резко снижается, так как число посетителей начинает дробиться между якобы существующими несколькими материалами. Материал по этой причине перестаёт быть топовым, идёт в рейтингах вниз.

Дёшево и сердито: даже и без взлома сайта удаётся нанести ему весьма серьёзный ущерб.

Мой сайт в последнее время просто бомбардируют такими атаками. Каждый день вижу в Яндекс Метрике по одному-два «левых» адреса – и именно на самые посещаемые страницы. А Joomla по этим левым адресам прекрасно открывает искомые материалы, не выдавая ошибки 404! Её разработчики, видимо, хотели таким образом вложить в систему крупное преимущество, а получился сильнейший недостаток!

Служба поддержки Яндекса посоветовала мне решить вопрос правильным указанием на страницах атрибута canonical.

В Joomla 3, как известно, с этим атрибутом серьёзные проблемы. Но я произвёл правку кода системы по способу, указанному в статье http://www.webengineer.pro/refinement-of-joomla-and-her-extensions/12-ispravlenie-oshibki-kanonicheskikh-ssylok-v-joomla-3x.

После этого canonical стал указываться правильно, но только в случаях правильного указания адреса статьи. Однако для тех адресов, которые исковерканы хакерами, он пишется неверно.

Хакерское коверканье имеет две разновидности. В первом случае меняется ИМЯ МАТЕРИАЛА, т. е. последняя часть адреса (после номера id). В этом случае для адреса, к примеру:

имя-сайта/index.php/имя-категории/18-abcd

в атрибуте canonical получим

имя-сайта/index.php/имя-категории?catid=18&id=18:abcd

Это сравнительно небольшое изменение. Здесь из canonical надо удалить лишь ненужный дополнительный фрагмент. Данную проблему мне сравнительно легко удалось решить лёгкой дополнительной правкой кода.

Но дело становится хуже, когда хакеры коверкают ИМЯ КАТЕГОРИИ материала, т. е., к примеру, вместо

имя-сайта/index.php/имя-категории/18-abcd

пишут

имя-сайта/index.php/имя-кат/18-abcd

в этом случае в canonical получаем

имя-сайта?catid=0&id=18

Здесь из canonical пропадает имя категории. И чтобы исправить это выражение, нужно определить это имя по id материала.

Как это сделать? Возможность, безусловно, есть, ибо Joomla, если ввести в неё, скажем, адрес "имя сайта/index.php/18", выдаст не ошибку 404, а страницу материала с id=18 – то есть определит категорию правильно.


Не подскажет ли кто из продвинутых знатоков, как в Joomla программно найти по id полный адрес материала, с именем категории? Если он будет установлен, выделить имя категории и сформировать в canonical нужный результат даже при моём среднем знании PHP будет совсем нетрудно.

очень прошу тех, кто хорошо знаком с Joomla-программированием как-нибудь помочь в этой беде, которая в последнее время просто достала!  ! Новые «левые» адреса вижу Яндекс Метрике ежедневно! Боролся с ними через robots.txt, но там число записей теперь уже увеличилось как в хорошем телефонном справочнике.

Ещё раз хочу обратить внимание всех: проблема эта очень важна. Речь идёт о виде хакерства, который приобретает сейчас широчайший размах.  :o
« Последнее редактирование: 28.02.2015, 05:19:36 от odilon »
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
В Joomla 3.3.6 у меня всё прекрасно с canonical в стандартных материалах.
Можно скачать тут: http://joomlaportal.ru/news/release-news/2488-joomla-3-3-6-stable
На 3.0.0. оставаться не советую.

Последняя версия 3.4, но там какой-то переломный релиз и этот тег то ли убрали намеренно, то ли временно отключили. Пока непонятно.

В версии 2.5 был специальных хак: http://joomlaforum.ru/index.php/topic,193079.new.html
*

odilon

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
В Joomla 3.3.6 у меня всё прекрасно с canonical в стандартных материалах.
ChaosHead, дело не в этом. В стандартных материалах (т. е. введении правильного адреса страницы) и у меня после правки кода двух файлов, описанной здесь, всё нормально. Речь о том, что некие люди с целью нанесения вреда сайту специально вводят неправильные адреса. Если в адресной строке при этом сохраняется верный номер id, Joomla нормально открывает страницу с этим id. Но canonical в этих случаях пишется неверно. И его фиксируют поисковики - со всеми вытекающими последствиями.

Для решения проблемы нужно либо программно определить в Joomla имя категории страницы по её id, либо вообще отключить там возможность выводить страницу по неточному адресу (пусть бы выдавалась ошибка 404). Не сможет ли кто подсказать способ сделать или первое, или второе?
« Последнее редактирование: 28.02.2015, 14:28:41 от odilon »
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
А не проще разобраться с хакерами?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

zikkuratvk

  • Глобальный модератор
  • 4824
  • 346 / 2
  • Обслуживаем проекты - дорого.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
ChaosHead, дело не в этом. В стандартных материалах (т. е. введении правильного адреса страницы) и у меня после правки кода двух файлов, описанной здесь, всё нормально. Речь о том, что некие люди с целью нанесения вреда сайту специально вводят неправильные адреса. Если в адресной строке при этом сохраняется верный номер id, Joomla нормально открывает страницу с этим id. Но canonical в этих случаях пишется неверно. И его фиксируют поисковики - со всеми вытекающими последствиями.

Для решения проблемы нужно требуется либо программно определить в Joomla имя категории страницы по её id, либо вообще отключить там возможность выводить страницу по неточному адресу (пусть бы выдавалась ошибка 404). Не сможет ли кто подсказать способ сделать или первое, или второе?
Может не совсем правильно понял суть вопроса...
программно определить в Joomla имя категории страницы по её id - эти данные хранятся в бд, от туда и выводить их своим кодом
На счет битых запросов, может имеет смысл посмотреть в сторону mod_rewrite?
*

odilon

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Может не совсем правильно понял суть вопроса...
программно определить в Joomla имя категории страницы по её id - эти данные хранятся в бд, от туда и выводить их своим кодом

Вопрос вы поняли правильно. Только как это сделать? Я отчасти знаком с PHP, но совсем не разбираюсь в классах и методах Joomla. Поэтому спрашиваю: никто не подскажет, при помощи каких именно из них можно обратиться к базе и по номеру id узнать имя категории, где материал с этим id находится?

На счет битых запросов, может имеет смысл посмотреть в сторону mod_rewrite?

Думаю, что это имело бы смысл, если бы битых запросов было немного, и их все было бы нетрудно перечислить в htaccess сравнительно коротким списком. Но новый битый адрес вижу в Метрике практически каждый день. Я уже использую для их "нейтрализации" robots.txt, а это даёт почти тот же эффект, что mod_rewrite. И robots разросся до неприличных размеров.

Mod_rewrite имел бы смысл и в случае, если бы адреса изменялись по какой-то закономерности, которую можно было бы записать путём регулярного выражения. Но нет - коверкают очень разнообразными способами.

Удивлён тем, что для большинства ответивших эта проблема. похоже, незнакома. А на другом крупном форуме мне ответили, что она очень давнишняя...
*

odilon

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Может вам пригодится вот такой плагин.

Спасибо, посмотрю поподробнее. Но уже вижу на этой странице: "JL NO DOUBLES редирект не срабатывает для категорий"
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как выявить вредоностный код на CMS Joomla?

Автор stud_pro

Ответов: 1
Просмотров: 3283
Последний ответ 23.04.2024, 10:06:10
от wishlight
Вирус редирект или взлом с редиректом Joomla 3.10

Автор Wany205

Ответов: 1
Просмотров: 4360
Последний ответ 25.05.2023, 08:49:57
от Театрал
Скрипты защиты Joomla 4

Автор mister_boy

Ответов: 6
Просмотров: 4134
Последний ответ 16.05.2023, 16:38:58
от mister_boy
Поставил Joomla 4. Хостинг nic.ru стал ругаться на ошибки безопасности

Автор Oleg+

Ответов: 5
Просмотров: 3013
Последний ответ 13.09.2021, 09:23:28
от Oleg+
Joomla 1.5 и 2.5 на одном хостинге

Автор andreU

Ответов: 28
Просмотров: 15188
Последний ответ 25.04.2021, 19:42:48
от rsn