Форум русской поддержки Joomla!® CMS
05.12.2016, 02:22:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Вывод beforeDisplayContent в mod_articles_latest

 (Прочитано 425 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« : 11.07.2016, 23:01:13 »

Создал переопределение и хочу вывести в модуле последних новостей плагины

В com_content/article/default.php выводятся так
Код:
<?php echo $this->item->event->beforeDisplayContent; ?>

в mod_articles_news/_item.php
Код:
<?php echo $item->beforeDisplayContent; ?>


в mod_articles_latest/default.php - никак

В этой статье http://forum.joomla.org/viewtopic.php?t=927824 есть вроде как ответ, что
нужно добавить в helper.php
Код:
$dispatcher = JEventDispatcher::getInstance();
PluginHelper::importPlugin('content');

потом в него же в цикл добавить
Код:
$item->event = new stdClass();           
$item->event->beforeDisplayContent = trim(implode("\n", $results));
         
$results = $dispatcher->trigger('afterDisplayTitle', array('com_content.article', &$item, &$item->params, 0));
$item->event->afterDisplayTitle = trim(implode("\n", $results));
         
$results = $dispatcher->trigger('afterDisplayContent', array('com_content.article', &$item, &$item->params, 0));
$item->event->afterDisplayContent = trim(implode("\n", $results));

и тогда все будет выводится вот так
Код:
<?php echo $item->event->beforeDisplayContent; ?>

Но пробовал, ничего подобного
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #1 : 12.07.2016, 13:37:21 »

Опаньки! Решил все таки вывести плагин через модуль Новости в mod_articles_news/_item.php

Код:
<?php echo $item->beforeDisplayContent; ?>

Кстати, вывожу Extravote. Может это в нем проблема ?
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #2 : 12.07.2016, 14:31:29 »

Обычный рейтинг тоже не выводится. Значит модуль и Последние Новости и Новости не обрабатывается плагинами.
В настройках обработки нет.

Странно, а в коде модуля Новости в _item.php код <?php echo $item->beforeDisplayContent; ?> присутствует, который не работает (((
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #3 : 12.07.2016, 14:42:31 »

Кстати, вывожу Extravote. Может это в нем проблема ?

Ответа не дам, но тоже поплачусь в вашей теме.
У меня задача вывести Extravote в макете блога (в самом низу, после всех отображаемых материалов)- никак не могу сделать.
Дошел до beforeDisplayContent; но такое ощущение в блоге не работает.

Если подскажете как вывести Extravote в конце блога - буду признателен. (Какая магическая комбинация php?)
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #4 : 12.07.2016, 14:48:41 »

В макете блога работает без проблем.

Может быть у вас в настройках плагина стоит Hide in blog views ?
Или в пункте меню стоит Не показывать рейтинг ?
Записан
SmokerMan
Профи
********

Репутация: +692/-25
Offline Offline

Пол: Мужской
Сообщений: 5216



« Ответ #5 : 12.07.2016, 14:52:30 »

Обычный рейтинг тоже не выводится. Значит модуль и Последние Новости и Новости не обрабатывается плагинами.
В настройках обработки нет.
там контекст может быть другой в модуле "com_content.article", поэтому плагин может его пропускает
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #6 : 12.07.2016, 14:56:04 »

Очень был бы благодарен, если бы вы поподробнее объяснили
Записан
SmokerMan
Профи
********

Репутация: +692/-25
Offline Offline

Пол: Мужской
Сообщений: 5216



« Ответ #7 : 12.07.2016, 15:14:26 »

вот пример для этого файла
Цитировать
в mod_articles_latest/default.php - никак

Код:
defined('_JEXEC') or die;

JPluginHelper::importPlugin('content');
$app       = JFactory::getApplication();
$params->set('show_vote', true);

?>
<ul class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) :  ?>
<li itemscope itemtype="https://schema.org/Article">
   <?php
   //выводим результат плагинов
   $results = $app->triggerEvent('onContentBeforeDisplay', array('com_content.article', &$item, &$params, 1));
   echo implode('', $results);
     ?>
<a href="<?php echo $item->link; ?>" itemprop="url">
<span itemprop="name">
<?php echo $item->title; ?>
</span>
</a>
</li>
<?php endforeach; ?>
</ul>

стандартный рейтинг должен работать, насчет Extravote не знаю
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #8 : 12.07.2016, 15:20:07 »

В макете блога работает без проблем.

Может быть у вас в настройках плагина стоит Hide in blog views ?
Или в пункте меню стоит Не показывать рейтинг ?

Немножко не поняли вы идею.
Про "Hide in blog views" я в курсе.
Я хочу не рейтинг МАТЕРИАЛОВ при отображении блогом, а рейтинг БЛОГА, т.е., чтобы blog.php выводился вот так

-----------------------------------------
------Заголовок блога------
Статья 1 Статья 2
Статья 3 Статья 4
-----------------------
Оцените этот блог : * * * * *
--------------------------------------------

Как это сделать - не могу наковырять.
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #9 : 12.07.2016, 18:09:04 »

Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #10 : 12.07.2016, 18:23:16 »

Решение от SmokerMan работает. Тему можно отметить решенной.
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #11 : 12.07.2016, 18:57:14 »

Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?
Не помню, по-моему пробовал.  Вечером еще раз попробую.
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #12 : 12.07.2016, 23:15:06 »

Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?

Попробовал. Если добавляю в описание категории тег {extravote 5}, то он не парсится в звезды, а так и выводится текстом "{extravote 5}"
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #13 : 14.07.2016, 02:49:21 »

Значит плагины не подключаются в templates/your_template_name/html/category/blog.php

Для вывода плагинов нужно подключить beforeDisplayContent в blog.php
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #14 : 14.07.2016, 09:50:06 »

Значит плагины не подключаются в templates/your_template_name/html/category/blog.php

Для вывода плагинов нужно подключить beforeDisplayContent в blog.php
Попробую вечером. Отпишусь по результату.
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #15 : 14.07.2016, 09:58:55 »

Да тоже вроде пробовал. Еще раз попробую вечером. Отпишусь по результату.
Записан
Nikolay Blinov
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 143


How much is the fish?


« Ответ #16 : 14.07.2016, 14:47:59 »

Я сейчас пробую вывести его в com_tags/tag/default_item.php (вывод результата сортировки по тегу).

У меня не получается ни так:
Код:
JPluginHelper::importPlugin('content');
$app       = JFactory::getApplication();
$params->set('show_vote', true);

$results = $app->triggerEvent('onContentBeforeDisplay', array('com_content.article', &$item, &$params, 1));
echo implode('', $results);

ни так:
Код:
echo JHTML::_('content.prepare', '{extravote 1}');
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #17 : 16.07.2016, 14:03:34 »

По прежнему пытаюсь вывести рейтинг блога целиком.
(Включен стандартный рейтинг и extravote).

по совету SmokerMan
делаю так
В шапке файла blog.php добавляю

Код:
$app    = JFactory::getApplication();
JPluginHelper::importPlugin('content');
$params = JComponentHelper::getParams('com_content'); // Без этой строчки не работает следующая
$params->set('show_vote', true);

Далее в теле шаблона blog.php указываю
Код:
   <?php
   //выводим результат плагинов
   $results = $app->triggerEvent('onContentBeforeDisplay', array('com_content.article', &$item, &$params, 1));
   echo implode('', $results);
     ?>

Выдаёт ошибку
Для Extravote
Код:
Notice: Trying to get property of non-object in C:\OpenServer\domains\site.ru\plugins\content\extravote\extravote.php on line 34
где 34 строка это $this->article_id = $article->id; 
Я понимаю, что у меня не article а blog, и следовательно эта конструкция выполнится не может.

Для стандартного рейтинга

Код:
Notice: Trying to get property of non-object in C:\OpenServer\domains\site.ru\plugins\content\vote\vote.php on line 74
где 74 строка это . '<meta itemprop="ratingCount" content="' . (int) $row->rating_count . '" />'

Пробовал менять в запросе com_content.article на com_content.category. Результат тот же.

Куда копать?

Записан
SmokerMan
Профи
********

Репутация: +692/-25
Offline Offline

Пол: Мужской
Сообщений: 5216



« Ответ #18 : 16.07.2016, 20:58:57 »

Куда копать?
это отдельная тема уже
по поводу extravote насколько я помню там можно было вставлять отдельные конструкции в материал типа {extravote... чего-то там}, для создания несколько опросов
так вот можно попробовать эту конструкцию запилить в описание категории, может что-то и выйдет)
если нет, то скорее всего придется переделывать или писать свой плагин, т.к. там привязка идет к конкретному, объекту - материалу, а не категории, т.е. надо менять логику
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #19 : 16.07.2016, 22:24:39 »

по поводу extravote насколько я помню там можно было вставлять отдельные конструкции в материал типа {extravote... чего-то там}, для создания несколько опросов
так вот можно попробовать эту конструкцию запилить в описание категории, может что-то и выйдет)
Попробовал. Если добавляю в описание категории тег {extravote 5}, то он не парсится в звезды, а так и выводится текстом "{extravote 5}"

если нет, то скорее всего придется переделывать или писать свой плагин, т.к. там привязка идет к конкретному, объекту - материалу, а не категории, т.е. надо менять логику
Ну php немного поковырять еще куда не шло, но боюсь свой плагин написать не осилю.
Может есть какой-то костыль? Например вывести под блогом материал, который и выдать за оценку блога, или ReReplacer-ом что-нибудь намутить?
Блин, на официальном форуме тоже не обрадовали. Перегуглил весь интернет, никто и близко не ставил такой задачи, но мне она кажется вполне логичной.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet