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

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
[quoteuthor=sinbad13 link=topic=137443.msg750453#msg750453 date=1289556278]
Модуль опубликован? В правильной позиции? И чтобы показывался на всех страницах например..
[/quote]
Модуль опубликован? В правильной позиции? И чтобы показывался на всех страницах например..
Скажите пожайлуста где взять код на список меню в Joomla, где он находится, надо туда айдишки поставить, а не знаю куда.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Скажите пожайлуста где взять код на список меню в Joomla, где он находится, надо туда айдишки поставить, а не знаю куда.
чего?)
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
чего?)
вставила меню с шаблон, и не могу переделать, так как мне надо манипулировать списком, а его кода не вижу в индех файле папки темплате, откуда он его грузит? там только -<jdoc:include type="modules" name="user3" /> - показывает
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
вставила меню с шаблон, и не могу переделать, так как мне надо манипулировать списком, а его кода не вижу в индех файле папки темплате, откуда он его грузит? там только -<jdoc:include type="modules" name="user3" /> - показывает
его там и не будет..
так как это модуль, его код находится в папке modules/mod_mainmenu..ну а стили в общем файле стилей .css
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
его там и не будет..
так как это модуль, его код находится в папке modules/mod_mainmenu..ну а стили в общем файле стилей .css
там его тоже нету, уже смотрела
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
там его тоже нету, уже смотрела
скачайте firefox+firebug и быстро будете находить что вам требуется
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
скачайте firefox+firebug и быстро будете находить что вам требуется
я им давно уже пользуюсь
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
я им давно уже пользуюсь
тогда странно что вы задаете подобные вопросы)
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
<?php
defined('_JEXEC') or die('Restricted access'); // no direct access

ob_start();
require_once realpath(dirname(__FILE__). str_replace('/', DIRECTORY_SEPARATOR, '/../../../../modules/mod_mainmenu/tmpl/default.php'));
ob_clean();

if (!defined('modMainMenuArtXMLCallbackDefined'))
{
function modMainMenuArtXMLCallback(&$node, $args)
{
      if (!$GLOBALS['menu_showSubmenus'] && $node->name() == 'li' && $node->level() == 1) {
         if ($ul = $node->getElementByPath('ul'))
            $node->removeChild($ul);
      }
      
      if ($node->name() == 'li') {
         $liChildren = & $node->_children;
         if (count($liChildren) > 0) {
            $liFirstChild = & $liChildren[0];
            $linkChildren = & $liFirstChild->_children;
            $span = & $linkChildren[0];
            $text = $span->data();
            if ($liFirstChild->name() == 'span' && $liFirstChild->attributes('class') == 'separator') {
               $liFirstChild->_name = 'a';
               $liFirstChild->addAttribute('href', '#');
               $liFirstChild->addAttribute('onclick', 'return false;');
            }
            if ($liFirstChild->name() == 'a') {
               if ($liFirstChild->level() == 1) {
                  $liFirstChild->removeChild($span);
                  $lspan = & $liFirstChild->addChild('span', array('class' => 'l'));
                  $lspan->setData(' ');
                  $rspan = & $liFirstChild->addChild('span', array('class' => 'r'));
                  $rspan->setData(' ');
                  $tspan = & $liFirstChild->addChild('span', array('class' => 't'));
                  $tspan->setData($text);
               } else {
                  $liFirstChild->removeAttribute('class');
                  $liFirstChild->setData($text);
                  $liFirstChild->removeChild($span);
               }
            }
         }
      }
      modMainMenuXMLCallback($node, $args);
      if ($node->name() == 'li') {
         $class = $node->attributes('class');
         if ($class && false !== strpos(' ' . $class, ' active')) {
            $itemChildren = & $node->_children;
            $itemChildren[0]->addAttribute('class', 'active');
         }
      }
   }

   define('modMainMenuArtXMLCallbackDefined', true);
}

if (!defined('artxMenuDecorator'))
{

   function artxMenuDecorator($content)
   {
      $result = '';
      ob_start();
?>
<div class="art-nav">
   <div class="l"></div>
   <div class="r"></div>
<?php
      $result .= ob_get_clean(). $content;
      ob_start();
?>
</div>
<?php
      $result .= ob_get_clean();
      return $result;
   }

   define('artxMenuDecorator', true);
}

if ($attribs['name'] == 'user3') {
   $GLOBALS['menu_showSubmenus'] = false && 1 == $params->get('showAllChildren');
   $xml = modMainMenuHelper::getXML($params->get('menutype'), $params, 'modMainMenuArtXMLCallback');
   if ($xml) {
      $xml->addAttribute('class', 'art-menu');
      if ($tagId = $params->get('tag_id')) {
         $xml->addAttribute('id', $tagId);
      }
      $result = JFilterOutput::ampReplace($xml->toString((bool)$params->get('show_whitespace')));
      $result = str_replace(array('<ul/>', '<ul />'), '', $result);
      echo artxMenuDecorator($result);
   }
} else {
   modMainMenuHelper::render($params, 'modMainMenuXMLCallback');
}


Вы этот код в Joomla меняли?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Цитировать
Вы этот код в Joomla меняли?
Мне хватало править стили, чтобы приводить к нужному виду..
А зачем вы id хотите вставить?
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Мне хватало править стили, чтобы приводить к нужному виду..
А зачем вы id хотите вставить?
чтобы возможно было стиль меню поменять, там вот как, меню каждый его кнопка сама по себе разного цвета, да и еще и когда переключаешь тоже еще опять цвет меняет и разхмер тоже, с настоящим кодом тем что предлагает Joomla не возможно такое сделать, возможно только фасон и цвет, но не размеры менять во время переключения из статуса актив на статус ховер.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
чтобы возможно было стиль меню поменять, там вот как, меню каждый его кнопка сама по себе разного цвета, да и еще и когда переключаешь тоже еще опять цвет меняет и разхмер тоже, с настоящим кодом тем что предлагает Joomla не возможно такое сделать, возможно только фасон и цвет, но не размеры менять во время переключения из статуса актив на статус ховер.
возможно достаточно в стилях написать

.item59 a span {
      float:left;
      display:block;
      background:url("../images/blue.png") no-repeat right top;
      color:#000;
     width:195px;
     height:40px;
      z-index:6;
}

где .item59 это как раз номер id пункта меню, и вы можете строить для него индивидуальные стили.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Модуль опубликован? В правильной позиции? И чтобы показывался на всех страницах например..
Здравствуйте! я почти переделала, единственное, не пойму почему ид нельзя прописать каждому например iteam1#current, а можно только #current , мне нужно чтобы у каждого свой ид #current был, мне для активности надо, но не прописывается для каждого iteam1
Заранее благодарна за ответ
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Цитировать
iteam1
item правильно будет.
Значит .item #current a {...} не проходит?
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
item правильно будет.
Значит .item #current a {...} не проходит?
просто когда пишешь #current или же отдельно когда .item№ тогда работает, но если пытаешься как в простом CSS прописать для .item #current не работает, я взяла для каждого .item№ проделала, а вот с   .item№ #current не получается, не видит, если прописать один #current то он всем одинаковый делает, а мне каждому  .item№ надо разный. вот тут проблемы получаются, может там как то по другому прописывать надо
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
модуль создан привязан к одному из пунктов главного меню, кода нажимаешь по этому пункту меню он не выходит, тип созданного модуля это меню. получается так - есть главное меню, когда нажимаешь на один из пунктов меню должно выходить подменю, вот к тэтому поменю я и создала модуль меню.
но как теперь это модуль-меню опубликовать,  так чтобы оно выходила когад жмешь по главному меню
оказывается в Joomla для обращения и к id и к classu одновременно одного тега надо писать так #current.item110, .item110:active {
background-position: -560px  -337px;
margin-top: 11px;
}


а теперь другая проблема возникла, создала меню еще одно, а оно в списке но к li нету id и class, если и есть класс то одинаковые, странно, но как можно теперь добиться чтобы у каждого li был свой класс или id  ?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
оказывается в Joomla для обращения и к id и к classu одновременно одного тега надо писать так #current.item110, .item110:active {
background-position: -560px  -337px;
margin-top: 11px;
}


а теперь другая проблема возникла, создала меню еще одно, а оно в списке но к li нету id и class, если и есть класс то одинаковые, странно, но как можно теперь добиться чтобы у каждого li был свой класс или id  ?
уникализириуйте стили модуля с помощью суффикса.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
уникализириуйте стили модуля с помощью суффикса.
уникализировала, все равно не получается, он добавляет суффикс, но не к li, здесь кажется как то по другому надо, вы же имели ввиду там где настройки модуля идут, то что там прописываем?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
уникализировала, все равно не получается, он добавляет суффикс, но не к li, здесь кажется как то по другому надо, вы же имели ввиду там где настройки модуля идут, то что там прописываем?
да в суффикс модуля прописываем что нить типа -bangabanga
а в стилях пишем
#left .modultable-bangabanga li {...} или просто .modultable-bangabanga li {...}
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
да в суффикс модуля прописываем что нить типа -bangabanga
а в стилях пишем
#left .modultable-bangabanga li {...} или просто .modultable-bangabanga li {...}
  так мне надо чтобы каждому li свое было а не в общем всем, как к каждому обратиться, это все li в общем ul получается, а мне надо  чтобы как в тот рас с item было, не добавляется и id и class уже добавила а он ко всем одинаковый один класс добавляет а вот item№ не хочет, как это делают, как он иногда появляется  а иногда нет!
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
  так мне надо чтобы каждому li свое было а не в общем всем, как к каждому обратиться, это все li в общем ul получается, а мне надо  чтобы как в тот рас с item было, не добавляется и id и class уже добавила а он ко всем одинаковый один класс добавляет а вот item№ не хочет, как это делают, как он иногда появляется  а иногда нет!


не могли бы подсказать в Joomla1.5 где находится менеджер файлов? мне нужно нтмл код страницы одной поменять
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Здравствуйте! подскажите отчего может padding и margin не двигать на нужную позицию тег - a, прописываю
.menuss-port-pop-menu a{
text-decoration:none;
height:100%;
width:100%;
padding-left:20px;
padding-top:-10px;
font-size:20px;
font-weight:bold;
color:#FFF;
}

но padding-top:-10px; не работает, главное padding-left:20px; делает, а топ не работает, ни с но padding-top:-10px; ни с но padding-top:10px;, если но padding-top:10px; тавишь, он его не двигает а просто сверху добавляет паддинг как строку но сам текст как стоял так и стоит.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Я шаблон сделала, но вот в интернет експлорере что то вообще все криво или вообще не показывает, не подскажете почему?
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
оптимизировать надо для каждого браузера
"кросбраузерность" сделать
(так и не научился правильно его писать и выговаривать, видимо и не научусь)
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
это файлы - template-ie-06.css и template-ie-07.css их переделывать тоже что ли? или как ? неужели опять все заново подгонять, или это автоматически как то можно сделать, каквы сказали кроссбраузерность?
и если вот те файлы переделывать надо то для оперы какой файл нужно переделывать?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
это файлы - template-ie-06.css и template-ie-07.css их переделывать тоже что ли? или как ? неужели опять все заново подгонять, или это автоматически как то можно сделать, каквы сказали кроссбраузерность?
и если вот те файлы переделывать надо то для оперы какой файл нужно переделывать?
если правильно верстать тогда специально для Оперы не потребуется, обычно IE неправильно отображает верстку, и то старые версии, в новых более менее уже лучше, единственно подгонять немного нужно будет некоторые пункты..полностью не нужно, только косяки исправлять..остальное все подтянется из уже существующих.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
если правильно верстать тогда специально для Оперы не потребуется, обычно IE неправильно отображает верстку, и то старые версии, в новых более менее уже лучше, единственно подгонять немного нужно будет некоторые пункты..полностью не нужно, только косяки исправлять..остальное все подтянется из уже существующих.
хорошо, попробую так и сделать, еще вопрос - что лучше сделать на рнр к Joomla - модуль или компонент, которая выводит галерею с текстовым описанием?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
хорошо, попробую так и сделать, еще вопрос - что лучше сделать на рнр к Joomla - модуль или компонент, которая выводит галерею с текстовым описанием?
ну тут руководствуйтесь только своими возможностями и что требуется для реализации задачи.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Zhannik

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Подскажите пожайлуста, почему созданный сайт на Joomla, когда его набираешь в Google ил набираешь ключевые слова он не выводится а перечне найденных, что нужно сделать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как создать новый блок в шаблоне?

Автор moov

Ответов: 7
Просмотров: 9207
Последний ответ 17.12.2018, 14:08:12
от arma
Ширина меню

Автор alex86r93

Ответов: 5
Просмотров: 6086
Последний ответ 14.06.2018, 05:13:50
от KANEGI
как сделать кнопки меню!

Автор Millenium_3000

Ответов: 10
Просмотров: 12844
Последний ответ 17.08.2017, 17:24:12
от Intrande
Вопрос по добавлению тега в МЕНЮ j 1.5

Автор berTalino

Ответов: 12
Просмотров: 5956
Последний ответ 29.03.2017, 16:20:43
от berTalino
Как сделать резиновой центральную чать сайта?

Автор genkey

Ответов: 8
Просмотров: 6559
Последний ответ 28.05.2016, 10:45:37
от vipiusss