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

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
В админке выставила режим вывода объявлений - подробный. Так нужно. А комментарии к объявлениям можно добавить только если кликнешь по нему, а  в подробном режиме нет ссылок на них, то есть заголовок объявления не кликабельный. Подскажите пожалуйста как решить эту задачу. 
Пробовала в тело объявления вставить
<h2>
<?php echo '<a href="'.$linkTarget.'">'.$content->ad_headline.'</a>'; ?>
<span class="adsmanager_cat"><?php echo "(".$content->parent." / ".$content->cat.")"; ?></span>
</h2>
потом каким-то макаром хотела заменить заголовок на надпись "Написать комментарий к объявлению" но ничего не вышло  :'(
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
Вообще затея прикрутить комментарии к объявлениям, но в подробном режиме этого не сделать. Уже хоть что-нибудь напишите, даже не по теме... мне скучно...
*

dexteron

  • Захожу иногда
  • 121
  • 17 / 0
  • Помог? Поставь мне "+"
Уже хоть что-нибудь напишите, даже не по теме... мне скучно...
:laugh: ;D Покажи свой сайт, мне тоже скучно  ^-^
« Последнее редактирование: 15.05.2013, 15:02:40 от dexteron »
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Напишу-ка всё-таки по делу:
открываете файл C:\WebServers\home\demo.kz\www\components\com_adsmanager\views\list\tmpl\default.php, в нём ищете такой код
Код
				<h2>
<?php
if (isset($this->fDisplay[1]))
{
foreach($this->fDisplay[1] as $field)
{
$c = $this->field->showFieldValue($content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo "$c ";
}
}
} ?>
</h2>
и меняете его на
Код
				<h2>
<?php
if (isset($this->fDisplay[1]))
{
foreach($this->fDisplay[1] as $field)
{
$c = $this->field->showFieldValue($content,$field);
if ($c != "") {
$linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
$c = '<a href="'.$linkTarget.'">'.$c.'</a>';
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo "$c ";
}
}
} ?>
</h2>
Заголовок стал кликабельным
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
О, великий Alex89! Вся на радостях скорей пробовать твой вариант, но нет... К сожалению мой код отличается от написанного тобой. Если не сложно, Лешенька... или Сашенька (одно из двух), глянь пожалуйста!
Это код моего файла Z:\WebServers\home\мой сайт\www\components\com_adsmanager\views\list\tmpl\default.php
Спойлер
[свернуть]
это черновик, а вот как все это выглядит на реальном сайте http://24sdelki.ru/
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
Код
            <h2 class="adsmanager_ads_title">   
            <?php if (@$this->positions[0]->title) {$strtitle = JText::_($this->positions[0]->title);} ?>
            <?php echo "<b>".@$strtitle."</b>";
            if (isset($this->fDisplay[1]))
            {
               foreach($this->fDisplay[1] as $field)
               {
                  echo $this->field->showFieldValue($content,$field);
               }
            } ?>
            </h2>
меняете на
Код
            <h2 class="adsmanager_ads_title">   
            <?php if (@$this->positions[0]->title) {$strtitle = JText::_($this->positions[0]->title);} ?>
            <?php echo "<b>".@$strtitle."</b>";
            if (isset($this->fDisplay[1]))
            {
               $linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
               foreach($this->fDisplay[1] as $field)
               {
                  echo '<a href="'.$linkTarget.'">'.$this->field->showFieldValue($content,$field).'</a>';
               }
            } ?>
            </h2>
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
Выдает ошибку Fatal error: Class 'TRoute' not found in Z:\home\мой сайт\www\components\com_adsmanager\views\list\tmpl\default.php on line 294
Я в огорченьях (((
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
ой, ёпт! извиняюсь, забыл что версия древняя! Поменяйте
Код
$linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
на
Код
$linkTarget = JRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid."&Itemid=".$this->Itemid);
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
Вот расцеловала бы!  :-*
Спасибо тебе, добрый человек!  :D
А не мог бы ты сотворить еще одно чудо, как я и планировала, в тело самого объявления (ну, к примеру, под фотами) вставить туже самую ссылку, только фразой" Добавить комментарий"?  ;)
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
А еще было бы чудесней если прикрутить что-нибудь от JComments с количеством написанных комментов.
Во раскатала губу ))))))))))) 
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
после строки
Код
<div class="adsmanager_spacer"></div>
вставляете
Код
<?php $linkTarget = JRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid."&Itemid=".$this->Itemid);
echo '<a href="'.$linkTarget.'">Добавить комментарий</a>';?>
« Последнее редактирование: 17.05.2013, 11:50:00 от Alex89 »
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
Ошибка Parse error: syntax error, unexpected '<' in Z:\home\мой сайт\www\components\com_adsmanager\views\list\tmpl\default.php on line 465
*

Alex89

  • Давно я тут
  • 555
  • 198 / 1
  • Joomlaman :)
да блин, не выспался наверно! забыл php "закрыть", поправил предыдущий пост
в конце строки добавьте ?>
Увеличить посещаемость сайта помогут здесь - http://tinyurl.com/kpaprwy
Если помог, ткните "крестик" в репу!
*

aleeva

  • Захожу иногда
  • 72
  • 4 / 0
Мммм... Шикарно! Огромный тебе плюс, мил человек )))))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 14276
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 4472
Последний ответ 09.07.2019, 10:10:59
от guardnext
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 2192
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Лечим кнопку "Delete from favorites" на странице объявления. AdsManager 3.1.11

Автор Mick_20

Ответов: 1
Просмотров: 2362
Последний ответ 24.12.2017, 22:28:14
от vadim73
Как добавить поле id объявления

Автор Den85

Ответов: 9
Просмотров: 3441
Последний ответ 11.11.2017, 15:18:48
от Den85