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

pulka

  • Захожу иногда
  • 63
  • 0 / 1
 Здравствуйте. Появилась такая проблема. Необходимо в версии для печати вывести информацию в совершенно другом формате (убрать картинки, преобразовать всплывающие окна и т.д.). Подскажите, как это можно реализовать (или же где можно об этом почитать).
*

hooten

  • Захожу иногда
  • 443
  • 26 / 0
при помощи CSS,
создается стиль специально для печати, в нем делаются невидимыми картинки и т.д

<link rel="stylesheet" type="text/css" href="XXXXX/print.css" media="print" />
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
 Э... я неправильно выразилась. Или не так объяснила. У меня страничка сверстана таблицей (не очень, но пока что так надо). А в печать мне нужно вывести совсем другой материал (тот же, но по-другому скомпонованный). Так что одним CSS я не обойдусь :(
 И еще вопрос. Почему строчка <link rel="stylesheet" type="text/css" href="XXXXX/print.css" media="print" /> у меня не работает? Я ее писала и в index.php, и в components.php(по очереди пробовала). На сколько понимаю, media="print" говорит о том, что этот стиль подключается в окне с содержимым уходящим на печать. Но когда я присваиваю классам свойства в этом файле - ничего не меняется(или же меняется везде). Дело во мне или же, кроме строчки и файла, надо что-то сделать еще?
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Используйте условия в шаблоне материала.
Если напишете, как выглядит ссылка на страницу печати, напишу, какое условие использовать.
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Если напишете, как выглядит ссылка на страницу печати, напишу, какое условие использовать.
Я использовать хотела стандартную кнопочку "Печать", которая подключается в материале. И, как я понимаю, ссылка тоже будет стандартной. Или я не так поняла вопрос?
 Нашла временный выход. Сделала еще один материал (дубликат) и в нем печать. В нужном материале сделала простую ссылочку, где прописала путь до печати переделанного материала. Теперь При нажатии Этой ссылочки мы видим окно печати другого материала(дубликата). Но это как-то не то, имхо. И я не знаю как это будет работать с ЧПУ и в интернете (пока сайт в локалке). Да и хотелось бы обойтись без предварительного просмотра материала.
 Поэтому очень жду помощи.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Я использовать хотела стандартную кнопочку "Печать", которая подключается в материале. И, как я понимаю, ссылка тоже будет стандартной. Или я не так поняла вопрос?
Всё правильно. Просто мне посмотреть негде, я эту функцию всегда вырезаю.
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Ясна. Вам нужен вид ссылки. Одну минуточку.
index.php?view=article&catid=4%3A2011-01-14-07-03-03&id=87%3A2012-01-12-05-09-28&tmpl=component&print=1&layout=default&page=&option=com_content&Itemid=419&lang=ru
Это?
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
В шаблоне html/com_content/article/default.php впишите условие.
После строчек
Цитировать
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own'));
?>
Может у вас по-другому, смотрите, чтоб было закрытие php кода (?>)
Цитировать
<?php  $print = JRequest::getVar('print', null);
if ($print != "1") { ?>
Тут вписуете всё остальное содержимое, которое идёт после вышеуказаных строк
<?php }else{?>
Тут видоизменённый макет, который вам нужен в версии для печати
<?php }?>
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
 Сейчас попробую. А как мне указать когда какой макет выводить?
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
А как мне указать когда какой макет выводить?
Условие означает, если в ссылке не присутствует print=1, то выводить то, что было раньше, иначе видоизменённую часть.
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Re: Другой материал в версии для печати
« Ответ #10 : 05.07.2012, 10:49:09 »
 Получается, что в ссылке надо убрать при необходимости print=1 и шаблон будет выводится старый?
index.php?view=article&catid=4%3A2011-01-14-07-03-03&id=87%3A2012-01-12-05-09-28&tmpl=component&print=1&layout=default&page=&option=com_content&Itemid=419&lang=ru - Так?
 И еще. Честно говоря, я идейно не понимаю как информацию из таблицы заставить систему перекомпоновать при печати. Мне нужно прописать в ячейках инфу в дивах, а их, соответственно, прописать в default.php с присвоением новых свойств? Или же каждую страницу я буду вручную перекомпоновать и записывать? Этот момент разъясните, пожалуйста.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Другой материал в версии для печати
« Ответ #11 : 05.07.2012, 11:00:04 »
Я не совсем понимаю, что вы спрашиваете.
Цитировать
Честно говоря, я идейно не понимаю как информацию из таблицы заставить систему перекомпоновать при печати. Мне нужно прописать в ячейках инфу в дивах, а их, соответственно, прописать в default.php с присвоением новых свойств? Или же каждую страницу я буду вручную перекомпоновать и записывать? Этот момент разъясните, пожалуйста.
У вас была одна разметка. Теперь 2. ничего больше прописывать не нужно. В версии для печати будет выводится один участок кода, в обычном материале другой.
было
Цитировать
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own'));
?>
<table>..... </table>
Стало
Цитировать
<?php // no direct access
defined('_JEXEC') or die('Restricted access');
$canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own'));
?>
<?php  $print = JRequest::getVar('print', null);
if ($print != "1") { ?>
<table>..... </table>
<?php }else{?>
<div>....</div>
<?php }?>
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Re: Другой материал в версии для печати
« Ответ #12 : 05.07.2012, 11:19:06 »
Есть в сайте каталог продукции, который по коду сверстан не так, как остальной сайт (размещение материала достаточно оригинально. Центральная картинка, от которой идут лучи к тексту. Именно это реализовано таблицей. Плюсом идут всплывающие окна в тексте, которые в себе имеют так же много информации.) Вот эти странички надо в итоге перекомпоновать в простенькую табличку (местами поменять информацию, может, что-то не печатать и т.д.). Я допускаю одинаковый макет печатной странички для всех изделий каталога. Просто будет меняться информация. С другой же стороны, главная страничка и т.д. пусть печатаются по стандартному шаблону - тут нет проблем.
 Вот примерная суть моей загвоздки.
 То, что Вы мне написали - я поняла. Все нашла. Но мне остается непонятным вот этот последний момент. Как информацию, поданную на странице таким оригинальным способом, по стандартной кнопочке перекомпоновать в другой более стандартный вид :). Ну кроме как в ручную, как я писала выше. Так сказать, идейный момент.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Другой материал в версии для печати
« Ответ #13 : 05.07.2012, 11:28:43 »
Не понимаю.
Цитировать
Есть в сайте каталог продукции, который по коду сверстан не так, как остальной сайт (размещение материала достаточно оригинально.
Отдельный шаблон материала?
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Re: Другой материал в версии для печати
« Ответ #14 : 05.07.2012, 13:15:25 »
 Нет, шаблон на все страницы один. Только эта страница сделана табличной версткой. Много таблиц, которые при печати делают страницу корявой.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Другой материал в версии для печати
« Ответ #15 : 05.07.2012, 13:19:12 »
Цитировать
Нет, шаблон на все страницы один. Только эта страница сделана табличной версткой.
Как?!
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Re: Другой материал в версии для печати
« Ответ #16 : 05.07.2012, 22:23:17 »
Я даже не знаю как это еще понятнее объяснить. Везде в материале добавлен текст и все, А в случае с продукцией материал сверстала табличной версткой.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Другой материал в версии для печати
« Ответ #17 : 05.07.2012, 23:14:12 »
А. Тогда наверное только так, как вы и придумали. Можно ешё очистить теги, тогда сплошной текст будет
Создание сайтов, шаблонов, помощь в решении проблем.
*

pulka

  • Захожу иногда
  • 63
  • 0 / 1
Re: Другой материал в версии для печати
« Ответ #18 : 06.07.2012, 11:15:53 »
Я поняла. Спасибо :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Очень долго сохраняется материал

Автор murat

Ответов: 11
Просмотров: 6702
Последний ответ 05.06.2017, 12:12:15
от madcap
В какой части администрирования в Joomla версии 1.5.22 прописываются теги H1.

Автор БеМеМу

Ответов: 6
Просмотров: 2471
Последний ответ 09.11.2014, 16:47:01
от Dim
Выдернуть код плагина со страницы и перенести его на другой сайт

Автор Hufflepuff

Ответов: 3
Просмотров: 1536
Последний ответ 07.08.2014, 12:42:58
от aspidy
Создание старой (Joomla 1.5) и новой версии сайта (Joomla 2.5)

Автор oliinyk10

Ответов: 18
Просмотров: 1861
Последний ответ 07.01.2014, 16:34:14
от oliinyk10
В яндексе одинаковый материал с разными Itemid

Автор Legran88

Ответов: 2
Просмотров: 2032
Последний ответ 03.11.2013, 06:01:52
от Legran88