Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Создал переопределение и хочу вывести в модуле последних новостей плагины

В 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

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #1 : 12.07.2016, 12:37:21 »
Опаньки! Решил все таки вывести плагин через модуль Новости в mod_articles_news/_item.php

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

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

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #2 : 12.07.2016, 13:31:29 »
Обычный рейтинг тоже не выводится. Значит модуль и Последние Новости и Новости не обрабатывается плагинами.
В настройках обработки нет.

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

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #3 : 12.07.2016, 13:42:31 »
Кстати, вывожу Extravote. Может это в нем проблема ?

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

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

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #4 : 12.07.2016, 13:48:41 »
В макете блога работает без проблем.

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

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #5 : 12.07.2016, 13:52:30 »
Обычный рейтинг тоже не выводится. Значит модуль и Последние Новости и Новости не обрабатывается плагинами.
В настройках обработки нет.
там контекст может быть другой в модуле "com_content.article", поэтому плагин может его пропускает
*

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #6 : 12.07.2016, 13:56:04 »
Очень был бы благодарен, если бы вы поподробнее объяснили
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #7 : 12.07.2016, 14: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

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #8 : 12.07.2016, 14:20:07 »
В макете блога работает без проблем.

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

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

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

Как это сделать - не могу наковырять.
*

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #9 : 12.07.2016, 17:09:04 »
Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?
*

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #10 : 12.07.2016, 17:23:16 »
Решение от SmokerMan работает. Тему можно отметить решенной.
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #11 : 12.07.2016, 17:57:14 »
Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?
Не помню, по-моему пробовал.  Вечером еще раз попробую.
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #12 : 12.07.2016, 22:15:06 »
Может быть вывести через теги в описании категории материалов блога ?
Пробывали ?

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

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #13 : 14.07.2016, 01:49:21 »
Значит плагины не подключаются в templates/your_template_name/html/category/blog.php

Для вывода плагинов нужно подключить beforeDisplayContent в blog.php
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #14 : 14.07.2016, 08:50:06 »
Значит плагины не подключаются в templates/your_template_name/html/category/blog.php

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

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #15 : 14.07.2016, 08:58:55 »
Да тоже вроде пробовал. Еще раз попробую вечером. Отпишусь по результату.
*

Nikolay Blinov

  • Захожу иногда
  • 142
  • 5 / 0
  • How much is the fish?
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #16 : 14.07.2016, 13: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

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #17 : 16.07.2016, 13: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

  • Гуру
  • 5290
  • 720 / 26
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #18 : 16.07.2016, 19:58:57 »
Куда копать?
это отдельная тема уже
по поводу extravote насколько я помню там можно было вставлять отдельные конструкции в материал типа {extravote... чего-то там}, для создания несколько опросов
так вот можно попробовать эту конструкцию запилить в описание категории, может что-то и выйдет)
если нет, то скорее всего придется переделывать или писать свой плагин, т.к. там привязка идет к конкретному, объекту - материалу, а не категории, т.е. надо менять логику
*

ice99

  • Захожу иногда
  • 85
  • 3 / 0
Re: Вывод beforeDisplayContent в mod_articles_latest
« Ответ #19 : 16.07.2016, 21:24:39 »
по поводу extravote насколько я помню там можно было вставлять отдельные конструкции в материал типа {extravote... чего-то там}, для создания несколько опросов
так вот можно попробовать эту конструкцию запилить в описание категории, может что-то и выйдет)
Попробовал. Если добавляю в описание категории тег {extravote 5}, то он не парсится в звезды, а так и выводится текстом "{extravote 5}"

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

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1495
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Вывод содержимого модуля mod_custom без html разметки

Автор goga_pgasovav

Ответов: 3
Просмотров: 1214
Последний ответ 07.06.2024, 11:15:50
от goga_pgasovav
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 2064
Последний ответ 09.11.2023, 16:33:08
от denxio
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 2644
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Вывод даты публикации материала в списке меток tags

Автор androv77

Ответов: 1
Просмотров: 769
Последний ответ 07.01.2023, 13:23:15
от NewUsers