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

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Вопрос по субменю
« : 30.01.2010, 00:54:51 »
Не могу справиться сам

Имеется Меню (ссылки на категории)
В Меню кроссом - подменю (ссылки на материал в этих категориях)

При переходе по ссылке Меню на странице, после контента, отображаются все ссылки из подменю. Как убрать?? Все уже перепробовал
Помогите
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: Вопрос по субменю
« Ответ #1 : 30.01.2010, 01:37:39 »
Ну, помогите, башка уже не варит


[вложение удалено Администратором]
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
*

dynamit

  • Завсегдатай
  • 1744
  • 265 / 0
  • Winter Is Coming
Re: [Решено] Вопрос по субменю
« Ответ #2 : 02.02.2010, 20:57:08 »
Правится ручками файл:
%\components\com_content\views\category\tmpl\default_items.php

убрал :

<tr class="sectiontableentry<?php echo ($item->odd +1 ). $this->escape($this->params->get('pageclass_sfx')); ?>" >
   <td align="right">
      <?php echo $this->pagination->getRowOffset( $item->count ); ?>
   </td>
   <?php if ($this->params->get('show_title')) : ?>
   <?php if ($item->access <= $this->user->get('aid', 0)) : ?>
   <td>
      <a href="<?php echo $item->link; ?>">
         <?php echo $this->escape($item->title); ?></a>
         <?php $this->item = $item; echo JHTML::_('icon.edit', $item, $this->params, $this->access)?>
   </td>
   <?php else : ?>
   <td>
      <?php
         echo $this->escape($item->title).' : ';
         $link = JRoute::_('index.php?option=com_user&view=login');
         $returnURL = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid), false);
         $fullURL = new JURI($link);
         $fullURL->setVar('return', base64_encode($returnURL));
         $link = $fullURL->toString();
      ?>
      <a href="<?php echo $link; ?>">
         <?php echo JText::_( 'Register to read more...' ); ?></a>
   </td>
   <?php endif; ?>
   <?php endif; ?>
   <?php if ($this->params->get('show_date')) : ?>
   <td>
      <?php echo $item->created; ?>
   </td>
   <?php endif; ?>
   <?php if ($this->params->get('show_author')) : ?>
   <td >
      <?php echo $this->escape($item->created_by_alias)? $this->escape($item->created_by_alias) : $this->escape($item->author); ?>
   </td>
   <?php endif; ?>
   <?php if ($this->params->get('show_hits')) : ?>
   <td align="center">
      <?php echo $this->escape($item->hits)? $this->escape($item->hits) : '-'; ?>
   </td>
   <?php endif; ?>
</tr>


Хоть бы кто подсказал или хоть откликнулся. форум это или не форум? Вторую тему создаю два дня голову ломаю (хотя полезно) и сам себе же отвечаю. прикольно.
ТАМ ГДЕ ТЫ НИЧЕГО НЕ МОЖЕШЬ, ТЫ НЕ ДОЛЖЕН НИЧЕГО ХОТЕТЬ
==========================================================
Сайты на Joomla!. Верстка. Консультации.  ||  Яндекс уже не ищет, он уже продает (с)  ||    Создание шаблона для Joomla 2.5
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вопрос при переходе на https/ Проблема с внутренними ссылками

Автор krot

Ответов: 4
Просмотров: 2120
Последний ответ 06.02.2018, 09:21:33
от krot
Вопрос о правильности разметки тегами на странице

Автор dpy1995

Ответов: 10
Просмотров: 6412
Последний ответ 09.01.2018, 12:49:25
от kungurskiy
вопрос по использованию FireBug

Автор rkorkin

Ответов: 5
Просмотров: 4036
Последний ответ 06.08.2016, 17:34:23
от Saltanat
Вопрос по Joomla Platform 12.2.0 Stable

Автор ator1812

Ответов: 0
Просмотров: 1605
Последний ответ 12.07.2015, 21:51:55
от ator1812
Вопрос по геотаргетингу

Автор TrollGuru

Ответов: 1
Просмотров: 1371
Последний ответ 21.10.2014, 17:43:40
от voland