Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 13645 Просмотров
*

plgman

  • Новичок
  • 3
  • 0 / 0
Добрый день,

Есть компонент (jshopping) и есть плагин (Widgetkit от Yootheme). Плагин должен вызываться на onContentPrepare.
Пытаюсь впилить один в другой, но пока безуспешно. Активно вставляют палки в колёса ужасное знание php и плохое представление о внутренней архитектуре Joomla.

Собственно что удалось сделать:
удалось догадаться, что за вывод статьи о категории (именно туда мне необходимо впилить этот несчастный плагин) отвечает супер короткий components/com_jshopping/views/category/view.html.php
удалось найти файл, в котором этот плагин уже впилен ( components/com_content/views/article/view.html.php )
удалось понять как оно приблизительно работает на уровне:
  • грузятся какие-то переменные (содержимое статьи, параметры всякие и прочие имена пользователей)
  • в какие-то переменные записывается результаты обработки текста плагинами
  • магия
  • и сразу же выводится готовый результат.

Магия заключается в том, что совершенно неочевидно (вполне вероятно, из-за палок в колёсах)
Код: php
// it;s part of components/com_content/views/article/view.html.php
   JPluginHelper::importPlugin('content');
                $results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, &$this->params, $offset));

                $item->event = new stdClass();
                $results = $dispatcher->trigger('onContentAfterTitle', array('com_content.article', &$item, &$this->params, $offset));
                $item->event->afterDisplayTitle = trim(implode("\n", $results));

                $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_content.article', &$item, &$this->params, $offset));
                $item->event->beforeDisplayContent = trim(implode("\n", $results));

                $results = $dispatcher->trigger('onContentAfterDisplay', array('com_content.article', &$item, &$this->params, $offset));
                $item->event->afterDisplayContent = trim(implode("\n", $results));

                // Increment the hit counter of the article.
                if (!$this->params->get('intro_only') && $offset == 0) {
                        $model = $this->getModel();
                        $model->hit();
                }

                //Escape strings for HTML output
                $this->pageclass_sfx = htmlspecialchars($this->item->params->get('pageclass_sfx'));

                $this->_prepareDocument();

                parent::display($tpl);
все изменения оказываются в $tpl, который, собственно, и выводится.

Что я натворил в jshopping:
было:
Код: php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');

class JshoppingViewCategory extends JView
{
protected $item;
    function display($tpl = null){
        parent::display($tpl);
        }
}
?>
стало:
Код: php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');

class JshoppingViewCategory extends JView
{
protected $item;
    function display($tpl = null){
                $app            = JFactory::getApplication();
                $dispatcher     = JDispatcher::getInstance();
                $this->item             = $this->get('Item');

                $item = &$this->item;
 
        JPluginHelper::importPlugin('content');
        $results = $dispatcher->trigger('onContentPrepare', array ('com_content.article', &$item, '', 0));
        parent::display($tpl);
        }
}
?>
собственно мне  не понятно. как результат обработки плагина впихнуть в $tpl. если я вообще в правильном направлении копаю.
зы в логах ошибка:
[Fri Mar 09 03:42:50 2012] [error] [client 8.8.8.8] PHP Warning:  Parameter 2 to plgContentWidgetkit_Content::onContentPrepare() expected to be a reference, value given in /home/user/www/site/libraries/joomla/event/event.php on line 71

спасибо за потраченное время на чтение поста. и за возможную подсказку.
« Последнее редактирование: 09.03.2012, 04:19:13 от plgman »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Подключение плагина к компоненту
« Ответ #1 : 09.03.2012, 04:21:17 »
обработка плагинов в компоненте
$text = JHTML::_('content.prepare', $text);
Текст в $text будет обрабатываться плагинами слушающими событие onPrepareContent
*

plgman

  • Новичок
  • 3
  • 0 / 0
Re: Подключение плагина к компоненту
« Ответ #2 : 09.03.2012, 13:17:37 »
обработка плагинов в компоненте
$text = JHTML::_('content.prepare', $text);
Текст в $text будет обрабатываться плагинами слушающими событие onPrepareContent
Хм. Спасибо. Но какую переменную мне необходимо подставить на место $text?
Если поставить $tpl, то текст не обрабатывается.

а, хотя, судя по всему, я не там копаюсь. похоже надо в контроллер лезть. там есть что-то похожее на вызов плагинов. пойду там код попорчу.
« Последнее редактирование: 09.03.2012, 13:49:27 от plgman »
*

plgman

  • Новичок
  • 3
  • 0 / 0
Re: Подключение плагина к компоненту
« Ответ #3 : 09.03.2012, 15:22:08 »
Poznakomlus,
спасибо. Ваш комментарий очень помог.
в com_jshopping/controllers/category.php нужно было добавить
Код: php
$category->description = JHTML::_('content.prepare', $category->description) ;
и всё заработало как нужно.
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #4 : 16.07.2012, 10:34:57 »
обработка плагинов в компоненте
$text = JHTML::_('content.prepare', $text);
Текст в $text будет обрабатываться плагинами слушающими событие onPrepareContent
Да но как мне быть если плагин активируется кодом {chronoforms}forma{/chronoforms}? Может быть как то можно загнать в массив данную форму?
« Последнее редактирование: 16.07.2012, 10:42:57 от lakshmi »
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #5 : 16.07.2012, 10:51:09 »
Для примера прописал $this->product->product_s_desc = JHTML::_('content.prepare', $this->product->product_s_desc); начало обрабатывать плагином краткое описание, но это не то мне нужно разместить код формы непосредственно в шаблоне что бы в каждой карточке товара выводилась форма.



Разобрался все намного проще  ;D
« Последнее редактирование: 24.07.2012, 19:10:31 от lakshmi »
*

nano

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Подключение плагина к компоненту
« Ответ #6 : 25.07.2012, 11:58:45 »
Разобрался все намного проще  ;D

Так подскажите как ?
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #7 : 18.09.2012, 17:45:45 »
Так подскажите как ?
Примерно так:
Код
<?php  $ret="{loadposition cart}";
$mod = JHTML::_('content.prepare', $mod);
echo $mod;?>
;D *DRINK*
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #9 : 18.09.2012, 18:16:11 »
Код: php
<?php echo JHTML::_('content.prepare', '{loadposition cart}'); ?>
Должно и так работать
Ну я не совсем профи но буду знать спасибо :D, Ваш вариант читабельнее.
*

20dollars

  • Захожу иногда
  • 235
  • 4 / 2
Re: Подключение плагина к компоненту
« Ответ #10 : 16.02.2013, 14:40:19 »
Код: php
<?php echo JHTML::_('content.prepare', '{loadposition cart}'); ?>
Должно и так работать

Подскажите пожалуйста, как данный рецепт применить к плагину ExtraVote для JoomShopping. Конкретнее, интересует вывод звезд рейтинга для голосования за товар в шаблоне страницы карточки товара.
В контенте стандартных материалов плагин может обрабатывать код {extravote #} где # id рейтинга. В шаблоне же JoomShopping выводит просто  текст {extravote #}
*

prizrakx

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Подключение плагина к компоненту
« Ответ #11 : 20.01.2014, 15:46:27 »
А как можно подключить плагин контента к компоненту (joomshopping)?
Спойлер
[свернуть]
не работает=(
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #12 : 21.01.2014, 15:16:29 »
А как можно подключить плагин контента к компоненту (joomshopping)?
Спойлер
[свернуть]
не работает=(

А куда вставляете? По идее должен работать поскольку это код самой Joomla,  ане только VirtueMart
*

prizrakx

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Подключение плагина к компоненту
« Ответ #13 : 21.01.2014, 23:35:25 »
Разобрался, плагин подгружался все равно, надо было дивы прописать, спасибо Elle
*

qRock

  • Осваиваюсь на форуме
  • 25
  • 1 / 0
Re: Подключение плагина к компоненту
« Ответ #14 : 10.02.2014, 23:06:56 »
Такая же проблема, как и у lakshmi.
Есть плагин LVSpoiler и компонент Spider Catalog, в котором спойлер не работает.
Спойлер вызывается командой:
{spoiler title=Заголовок opened=1}Скрытый текст{/spoiler}
А в компоненте просто текст(
Что только и куда только не пытался вставить
Код
(<?php echo JHTML::_('content.prepare', '{loadmodule LVSpoiler}'); ?>) 
(<?php echo JHTML::_('content.prepare', '{loadposition Tabs}'); ?>)
($text = JHTML::_('content.prepare', $text);)
что только вместо text не вставлял.
Пожалуйста, помогите чайнику.
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
Re: Подключение плагина к компоненту
« Ответ #15 : 11.02.2014, 02:57:56 »
А так не пробовали?
Код
<?php echo JHTML::_('content.prepare', '{spoiler title=Заголовок opened=1}Скрытый текст{/spoiler}'); ?>
*

qRock

  • Осваиваюсь на форуме
  • 25
  • 1 / 0
Re: Подключение плагина к компоненту
« Ответ #16 : 11.02.2014, 17:47:04 »
lakshmi попробовал. Но имхо вместо слова "Заголовок" и "Скрытый текст" должен быть какой-то ключ наверно.
« Последнее редактирование: 11.02.2014, 18:21:24 от qRock »
*

qRock

  • Осваиваюсь на форуме
  • 25
  • 1 / 0
Re: Подключение плагина к компоненту
« Ответ #17 : 12.02.2014, 11:10:04 »
С нереальной помощью юзера Arkadiy в топике его чудо-спойлера, все-таки решил проблему. Если у кого-нибудь возникнет подобная ситуация, ищите шаблон вывода материала (у Spider Catalog это views/showproduct/tmpl/default.php) и заменяйте $row->description кодом JHTML::_('content.prepare', $row->description)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительные параметры пунктов меню для плагина

Автор enshtein

Ответов: 3
Просмотров: 3312
Последний ответ 06.11.2014, 16:48:17
от lebmarg
Доработка плагина

Автор Ragnos

Ответов: 19
Просмотров: 2386
Последний ответ 07.07.2014, 16:14:16
от zomby6888
Подключение js файла и кнопка прикреления

Автор __noob__

Ответов: 6
Просмотров: 1998
Последний ответ 20.05.2014, 00:24:40
от Fedor Vlasenko
Нужна помощь в разработке плагина. Цена?

Автор jason1311

Ответов: 0
Просмотров: 1341
Последний ответ 15.05.2014, 18:20:10
от jason1311
Как запустить выполнение плагина принудительно из модуля?

Автор NemoNik

Ответов: 8
Просмотров: 2433
Последний ответ 14.05.2014, 17:35:04
от NemoNik