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

lezvoed

  • Осваиваюсь на форуме
  • 32
  • 7 / 0
Пытаюсь скрыть несколько плагинов (кнопки к редактору) от авторов, чтобы их видел только админ. Выставил плагинам доступ "специальный". Кнопки авторам по прежнему видны (разные "Editor Button - JComments ON" т.п.)

Стоит Joomla 1.5.9. Пробовал обновить до последней версии, но проблема не исчезла, а визуальный редактор отвалился, поэтому откатился назад.
*

lezvoed

  • Осваиваюсь на форуме
  • 32
  • 7 / 0
Ага, кажется понял. Уровень доступа "специальный" отсекает только пользователей с правами registered. Подскажите, где и что нужно подкрутить, чтобы авторы тоже отсекались.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Если использовать стандартный редактор TinyMCE, то придется редактировать его плагин plugins\editors\tinymce.php в функцию _displayButtons ($name, $buttons) добавлять условие.

Я бы посоветовал поставить редактор JCE в нем есть встроенное разграничение прав, каждой группе можно выставить свои кнопочки.
*

lezvoed

  • Осваиваюсь на форуме
  • 32
  • 7 / 0
Да нет, это не те кнопки. Я говорю о кнопках, которые публикуются как плагины на уровне системы и отображаются не в шапке, а в подвале - под полем ввода. Они к редактору никак не привязаны.

Собственно, я вижу два варианта решения:

1. убрать группу "авторы" из доступа "специальный".
2. дать пользователям группы "зарегистрированный" права на добавление материала на сайт.

Кто знает, как это реализовать?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
это как раз те кнопки.
Насколько я знаю доступ "специальный" на них кстати никак не влияет.
*

lezvoed

  • Осваиваюсь на форуме
  • 32
  • 7 / 0
Ну да, не влияет, поскольку чтобы их увидеть нужно иметь права автора и выше - пользователи с правами "зарегистрированный" не могут добавлять материалы, соответственно, увидеть форму редактора им не дано. А доступ "специальный" отсекает только пользователей с правами "зарегистрированный", как мы выяснили.

Склоняюсь к решению 2, так более гибко выходит.

В общем вопрос: как дать пользователям группы "зарегистрированный" права на добавление материала на сайт, с последующей модерацией админами? На форуме нашел решение только для первой Joomla.
*

lezvoed

  • Осваиваюсь на форуме
  • 32
  • 7 / 0
Попробую сделать, как написано здесь: http://joomlaportal.ru/content/view/1620/68/
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Вы либо не хотите меня слушать либо я не понимаю чего вам надо. Вот готовое решение:
Берем файл если используете tynemce (Joomla (root)\plugins\editors\tinymce.php) и меняем в нем функцию function _displayButtons () на такую
Код: php
function _displayButtons ($name, $buttons)
{
// Load modal popup behavior
JHTML::_('behavior.modal', 'a.modal-button');
$user =& JFactory::getUser (); // ПОДКЛЮЧАЕМ ПОЛЬЗОВАТЕЛЯ
$args['name'] = $name;
$args['event'] = 'onGetInsertMethod';

$return = '';
$results[] = $this->update ($args);
foreach ($results as $result) {
if (is_string ($result) && trim ($result)) {
$return .= $result;
}
}

if (!empty ($buttons))
{
$results = $this->_subject->getButtons ($name, $buttons);

/*
* This will allow plugins to attach buttons or change the behavior on the fly using AJAX
*/
$return .= "\n<div id=\"editor-xtd-buttons\">\n";
if ($user->get ('gid') > 19) {   // УСТАНАВЛИВАЕМ ПРАВА ПОЯВЛЕНИЯ КНОПОК
foreach ($results as $button)
{
/*
* Results should be an object
*/
if ( $button->get ('name') )
{
$modal = ($button->get ('modal'))? 'class="modal-button"' : null;
$href = ($button->get ('link'))? 'href="'.JURI::base ().$button->get ('link').'"' : null;
$onclick = ($button->get ('onclick'))? 'onclick="'.$button->get ('onclick').'"' : null;
$return .= "<div class=\"button2-left\"><div class=\"".$button->get ('name')."\"><a ".$modal." title=\"".$button->get ('text')."\" ".$href." ".$onclick." rel=\"".$button->get ('options')."\">".$button->get ('text')."</a></div></div>\n";
}
}
}
$return .= "</div>\n";
}

return $return;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает страница XML выдает ошибку: This page contains the following errors

Автор vitaliywolf

Ответов: 20
Просмотров: 21129
Последний ответ 07.05.2020, 22:24:16
от sivers
Криво работает сайт и админ часть

Автор Odyssey

Ответов: 11
Просмотров: 4809
Последний ответ 10.02.2019, 06:13:39
от Odyssey
не работает главная без index.php

Автор Mary Poppins

Ответов: 11
Просмотров: 9927
Последний ответ 11.12.2018, 18:28:30
от all_zer
не работает стандартный поиск Joomla 1.5.23

Автор Andrew1110

Ответов: 34
Просмотров: 15280
Последний ответ 11.02.2018, 10:31:42
от altvvc
НЕ работает панель в адинке

Автор Alex102

Ответов: 0
Просмотров: 1922
Последний ответ 03.12.2017, 23:26:06
от Alex102