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

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Как использовать sefRelToAbs?
« : 01.07.2007, 14:04:16 »
Подскажите пожалуйста вот например есть ссылка:
Код
$gimmeback.="<a href=index.php?option=com_comprofiler&task=userProfile&user=".$ofanid."&Itemid=27>".$ofaname."</a> ";
Как к ней прикрутить sefRelToAbs? Пробывал разные варианты но не работает...руки видно очень кривы
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #1 : 01.07.2007, 14:24:15 »

$gimmeback 
.= '<a href="'
sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$ofanid.'&Itemid=27').'">'
$ofaname.'</a>';
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #2 : 01.07.2007, 14:59:55 »
Благодарю!
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #3 : 16.07.2007, 02:23:22 »
userxp а не мог бы ещё раз подсказать с такой ссылкой $hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #4 : 16.07.2007, 02:30:09 »
что подсказать?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #5 : 16.07.2007, 12:20:49 »
Как прикрутить к ней функцию sefRelToAbs
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #6 : 16.07.2007, 12:33:29 »
а из предыдущего, разве, не следует как?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #7 : 16.07.2007, 17:59:42 »
Никак не могу следствие вывести...
А можно последний раз подсказать больше спрашить не буду (по этой теме)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #8 : 16.07.2007, 18:43:50 »
Никак не могу следствие вывести...
а что ссобственно непонятно? что надо ссылку передать в качестве параметра в функцию? или что?
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Как использовать sefRelToAbs?
« Ответ #9 : 16.07.2007, 21:43:17 »
$hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);


$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #10 : 17.07.2007, 10:59:02 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??

нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #11 : 17.07.2007, 12:23:15 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
Там же был массив а вы от него избавились :)
нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
Спасибо. Т.ё. фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #12 : 17.07.2007, 12:54:41 »
фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
да, именно  так
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #13 : 17.07.2007, 22:58:18 »
ага, а если в линке присутствует адрес сайта, то функция обрабатывает его как ссылку на другой сайт, то есть не трогает.
*

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Re: Как использовать sefRelToAbs?
« Ответ #14 : 01.08.2007, 12:21:54 »
Тут много бился с передачей параметров с русскими символами например:
Код
$search = "русский текст";
$option = "com_component";
$link = 'index.php?option=$option&searchword=$search";

Для передачи символов в русских кодировках требуется произвести преобразование передаваемой строки функцией urlencode(), т.е.
Код
$search = urlencode($search);

и если вставить в ...html.php:
Код
echo "<a href=\"$link\">
то на странице получим ссылку
<a href="index.php?option=com_component&searchword=%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2">
, которая будет вполне корректно работать (но некрасиво, хотим лучше  :P ).

А если использовать функцию sefRelToAbs():
Код
$link = sefRelToAbs($link);
, то получим строку
<a href="/option,com_component/searchword,русский текст/">
, которую нормально послать может (насколько я понял только FireFox)

После долгих попыток, я нашел способ - двойное кодирование:
Код
$search = urlencode( urlencode( $search ) );

Тогда из
Код
$link = sefRelToAbs($link);
будет в IE и Opere
<a href="/option,com_component/searchword,%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2/">
а в FF будет
<a href="/option,com_component/searchword,русский текст/">
И все будут довольны


Но понять почему так работает не смог. Особенно учитывая что в самой sefRelToAbs() я не нашел никакой работы по преобразованию кодировок.
Кто нибудь может объяснить почему так?  !!!???!!!

PS хорошо, хоть как-то работает :)
« Последнее редактирование: 01.08.2007, 13:10:24 от zaboich »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться