Новости 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 Ответов
  • 8238 Просмотров
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Поскажите как интегрирывать мне lgsl компонент с jcomments?:) lgsl этот тот же движок что и компонент называемый "Cтатистика серверов 1.0." только оно под joomla 1.0. версии.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #1 : 13.05.2009, 12:45:13 »
Хм, понятия не имею. На сайте joomlatune.ru есть достаточное количество информации по интеграции в другие компоненты и описание функций компонента, попробуйте сделать по образу и подобию.
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #2 : 13.05.2009, 13:13:40 »
Результат есть.
Создал файл com_lgsl.plugin в него поместил код и добавил в папку плагинов /components/com_jcomments/plugins/
Код
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
class jc_com_lgsl extends JCommentsPlugin {
 
  function getObjectTitle( $id ) {
    global $database, $data;
    $database->setQuery( "SELECT id FROM #__lgsl WHERE id='$id'");
    return $database->loadResult();
  }


  function getObjectLink( $id ) {
    $host = mosGetParam( $_GET, 'host', '' );
    $port = mosGetParam( $_GET, 'port', '' );
    $sid  = mosGetParam( $_GET, 'sid', '' );
    $_Itemid = JCommentsPlugin::getItemid( 'com_lgsl' );
    $link = sefRelToAbs( 'index.php?option=com_lgsl&task=view&host='.$host.'&port='.$port.'&sid='.$sid.'&id='. $id .'&Itemid='. $_Itemid);
    return $link;
  }
}

Затем открыл components\com_lgsl\lgsl_files\lgsl_details.php

В конце вписал...
Код
 global $mosConfig_absolute_path;
    $comments = $mosConfig_absolute_path . '/components/com_jcomments/jcomments.php';
    if (file_exists($comments)) {
      require_once($comments);
      echo JComments::showComments($id, 'com_lgsl', $title);
    }
Все работает, но если я добавляю комментарий на одной странице, то в другой странице он так же отображается. Как сделать привязку по странице? ;)
Спасибо...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #3 : 13.05.2009, 13:26:53 »
Все работает, но если я добавляю комментарий на одной странице, то в другой странице он так же отображается. Как сделать привязку по странице? ;)
комментарии привязываются не к странице, а к комментируемому объекту, его идентификатор передается первым параметром в функцию showComments. В вашем коде это переменная $id. Судя по всему у вас туда передается все время одно и то же значение (вполне возможно пустое, так как переменная не проинициализирована).

Второе замечание - по функции getObjectLink - она вызывается прямо из JComments, и при этом никаких переменных запроса типа port или host доступно не будет, поэтому ссылки будут кривые. Нужно искать какой-то способ получить эти значения из конфигурации вашего компонента или еще откуда нибудь...
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #4 : 13.05.2009, 14:04:05 »
Спасибо большое. Чуток понял, но всеравно полностью не могу догнать как мне это сделать ;) Буду смотреть по стырм статьям примеры=)
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #5 : 13.05.2009, 14:34:25 »
Может попробуем общими силами сделать ?;) Компонент популярный и пользуется спросом среди пользователей joomla 1.5. Есть компонент Игровые сервера 1.0 написан на том же lgsl или переделан. В нем интеграция с jcomments но он используется только на 1. версиях joomla :) Пробую с него привязать, но не получается никак;(  !!!???!!! *DRINK*
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #6 : 13.05.2009, 14:45:00 »
Для того, чтобы мне это сделать, мне нужно скачать компонент, настроить, разобраться как он работает и т.д. У меня к сожалению на это сейчас времени нет, тем более я занят подготовкой релиза новой версии JComments. Но я готов оказывать техническую поддержку и ответить на любой вопрос по внутренностям JComments и объяснить что и откуда там растет.
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #7 : 13.05.2009, 14:59:21 »
Могу показать как работает.
http://www.novafight.net/index.php?option=com_lgsl&Itemid=117
Вверху это модули(не важно)
Внизу список серверов.
Каждая ссылка на них имеет такое значение...
index.php?option=com_lgsl&s=(номер сервера от 1 до 9)&Itemid=(..)
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #8 : 13.05.2009, 15:07:02 »
Ну так вот, идентификатором получается является значение переменной s. Вот вам и нужно, в функцию JComments::showComments первым параметром передавать значение этой переменной. А в функции getObjectLink формировать ссылку вот так:

Код: php
function getObjectLink( $id ) {
    $_Itemid = JCommentsPlugin::getItemid( 'com_lgsl' );
    $link = JoomlaTuneRoute::_( 'index.php?option=com_lgsl&s='. $id .'&Itemid='. $_Itemid);
    return $link;
  }
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #9 : 13.05.2009, 15:27:23 »
Спасибо, но ничего не выходит. Так же все ;) Не привязывается;( Все вроде бы правильно делаю) Ладно отложу на потом..)
*

pashu

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Интеграция Jcomments и LGSL (v.5) from joomla 1.5
« Ответ #10 : 27.05.2009, 00:30:20 »
Ув. тов. smart...
У вас есть немного времени помочь с созданием интеграции для lgsl 5 ?:) На самом деле все не так сложно, просто я не понимаю полностью всю эту систему) Буду признателен)  *DRINK*
*

ILexus

  • Осваиваюсь на форуме
  • 37
  • 5 / 0
Re: Интеграция JComments и LGSL (v.5) from Joomla 1.5
« Ответ #11 : 29.10.2009, 16:56:57 »
У кого нибудь получилось интегрировать? Проделал по инструкции на сайте, такая же проблемы, не привязывается. Смею предположить как сказал smart переменная $id не заполняется или туда передается одно и тоже значение:
Цитировать
комментарии привязываются не к странице, а к комментируемому объекту, его идентификатор передается первым параметром в функцию showComments. В вашем коде это переменная $id. Судя по всему у вас туда передается все время одно и то же значение (вполне возможно пустое, так как переменная не проинициализирована).

Кто нибудь может помочь разобраться с проблемой?

Плагин com_lgsl.plugin.php
Код: php
<?php
(defined('_VALID_MOS') OR defined('_JEXEC')) or die('Direct Access to this location is not allowed.');

class jc_com_lgsl extends JCommentsPlugin
{
function getObjectTitle($id)
{
global & JCommentsFactory::getDBO();
$db->setQuery( "SELECT id FROM #__lgsl WHERE id='$id'");
return $db->loadResult();
}

function getObjectLink($id)
{
$_Itemid = JCommentsPlugin::getItemid( 'com_lgsl' );
    $link = JoomlaTuneRoute::_( 'index.php?option=com_lgsl&s='.$id.'&Itemid='.$_Itemid);
    return $link;
}

}
?>

Вывод в lgsl_details.php

Код: php
	global $mainframe;
$comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
    if (file_exists($comments)) {
    require_once($comments);
      echo JComments::showComments($id, 'com_lgsl', $title);
} else {
echo "ZHOPA";
}
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Интеграция JComments и LGSL (v.5) from Joomla 1.5
« Ответ #12 : 30.10.2009, 23:55:02 »
Кто нибудь может помочь разобраться с проблемой?
У меня нет этого LGSL, ставить и разбираться в нем у меня честно говоря нет времени. Наиболее вероятную причину неудачи я там уже отписал...
Не обижайтесь, но я физически не могу создать и поддерживать интеграции во все существующие компоненты, у меня помимо этого компонента есть еще семья, работа и куча других проектов.

Я говорил ранее и продолжаю настаивать на том, что все эти инструкции по интеграции - это было изначальное решение, полумера, а дальше нужно обращаться к авторам этих продуктов и просить добавить поддержку JComments стандартными средствами, без хаков.. Многие разработчики это уже сделали, вон, тот же автор JDownloads добавил поддержку JComments очень оперативно...

Так что мне кажется, правильнее штурмовать авторов этого компонента - пусть добавляют. JComments бесплатен, имеет массу преимуществ, поддерживает импорт из всего что только есть, пусть делают его поддержку у себя. Это будет и для меня и для вас лучше - при выходе следующих версий не нужно будет править код.

Re: Интеграция JComments и LGSL (v.5) from Joomla 1.5
« Ответ #13 : 03.06.2010, 09:36:49 »
Люди может попробовать как нибуть привязать комментарии к $_SERVER['REQUEST_URI'] просто я когда рейтинг делал один рейтинг на всех потом заменил чето на это и все норм

Re: Интеграция JComments и LGSL (v.5) from Joomla 1.5
« Ответ #14 : 03.06.2010, 09:39:52 »
Мож ктонть врубится куда это моно запехнуть :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jcomments на странице категории?

Автор romagromov

Ответов: 5
Просмотров: 5226
Последний ответ 12.12.2022, 17:01:38
от sivers
Интеграция с Community Builder

Автор Opposite

Ответов: 77
Просмотров: 70354
Последний ответ 20.09.2022, 11:22:26
от Vlad1
Отображение аватаров из JomSocial в JComments

Автор smart

Ответов: 33
Просмотров: 20484
Последний ответ 20.07.2020, 21:31:50
от darkknight
jComments + AlptaUserPoints Добавить текст в Подробности

Автор Nabla

Ответов: 3
Просмотров: 8099
Последний ответ 22.06.2020, 14:14:08
от Nabla
Интеграция JComments с SP Page Builder

Автор Proaqua

Ответов: 5
Просмотров: 6821
Последний ответ 14.06.2020, 11:53:38
от xpank