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

juddi

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Добрый день.

есть категория Участники, подкатегории Организации, Физлица. В подкатегориях есть материалы.

Как сделать такой вывод

Организации
  
          организация1                  организация2
          логотип                           логотип
          описание                         описание

Физлица  

          физлицо1                  физлицо2
          фото                         фото
          описание                   описание


Сделала пунк меню "блок категории", который ссылается на категорию Участники. Выводится названия подкатегорий. А нужно чтобы еще выводились и материалы подкатегорий в виде блога.
Спасибо.

« Последнее редактирование: 03.07.2015, 09:53:55 от b2z »
*

juddi

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
Re: Блог материалов категории
« Ответ #1 : 13.01.2015, 10:42:29 »
Получилось вывести материалы подкатегорий списком.
меняла файл blog_children.php
Код
<ul>
                <?php
                    $db =& JFactory::getDBO();
                    $query = $db->getQuery(true);
                    $query = 'SELECT * FROM `iy58a_content` WHERE `catid`='.$child->id.'  AND `state`>0';
                    $db->setQuery($query);
                    $res= $db->loadObjectList();
                    foreach ($res as $concert) {
                        echo '<li>';
                       echo '<a href="'.JRoute::_(ContentHelperRoute::getArticleRoute($concert->id)).'">'.$concert->title.'</a>';

                        echo '</li>';
                    }
                ?>
            </ul>
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #2 : 13.01.2015, 18:49:32 »
Правильнее
Код: php
ContentHelperRoute::getArticleRoute($concert->id, $child->id, $concert->language);

И зачем выбирать все из content, если нужно только id и title? Ну и language

iy58a замените на #_

$db =& JFactory::getDBO();  - & уже давно не используется

Зачем получать объект запроса и потом использовать его как строку?


Код: php
$db = JFactory::getDbo();
$query = $db->getQuery(true)
    ->select('id, title, language')
    ->from('#__content')
    ->where('catid = ' . (int) $child->id)
    ->where('state > 0');
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Блог материалов категории
« Ответ #3 : 02.07.2015, 14:59:43 »
Спойлер
[свернуть]
Здравствуйте. У меня аналогичная задача, вот только у меня из базы какую-то ерунду выбирает.
Итак, у меня переопределен макет блога категории. В нем необходимо вывести названия подкатегорий и названия материалов этих подкатегорий.
В файл mymaket_children.php добавляю код:
$db = JFactory::getDbo();
Код
$query = $db->getQuery(true)
    ->select('id, title')
    ->from('#__content')
    ->where('catid = ' . (int)$child->id)
    ->where('state > 0');
$res= $db->loadObjectList();
а потом форычу результат:
Код
<ul>
<?php
 foreach ($res as $wkch): ?>
   <li>
<span class="id"><?php echo $wkch->id; ?></span>
<span class="title"><?php echo $wkch->title; ?></span>
  </li>
<?php endforeach;?>
</ul>
и получаю вовсе не список материалов подкатегорий, а следующий результат:
Код
1 ROOT - это корневая категория
9 WIKIтендер - это текущая категория
10 К - это ИД и название подкатегории, из которой собственно и нужно достать материалы.
Где цифра - ИД категории, а после нее - название категории.
Т.е. я получаю не материалы, а категории. Не могу понять почему
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Блог материалов категории
« Ответ #5 : 02.07.2015, 17:41:53 »
Как-то странно, потому что запрос выглядит верным.
Вот в том то и дело, все выглядит правильным: возьми поля такие-то, из таблицы такой-то, при условии что ИД категории = тому-то. А в ответ получаю: "вот тебе ИД, вот тебе титл, а из каких это таблиц и по каким условиям - не знаю".
Попробовал код из второго поста, там все работает нормально.

ps кстати говоря, в таблице #__content я что-то не вижу названий категорий. Так что не понятно, откуда же они выцепились
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #6 : 02.07.2015, 20:00:31 »
Если сделать echo $query->dump(); перед $res= $db->loadObjectList(); что показывает?
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Блог материалов категории
« Ответ #7 : 03.07.2015, 09:31:00 »
Если сделать echo $query->dump(); перед $res= $db->loadObjectList(); что показывает?
И тут вроде все правильно показывает:
Код
SELECT id, title
FROM ov6ks_content
WHERE catid = 10 AND state > 0

Спойлер
[свернуть]
« Последнее редактирование: 03.07.2015, 09:42:37 от master-smeta »
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Блог материалов категории
« Ответ #8 : 03.07.2015, 09:47:39 »
Где $db->setQuery($query); ? У вас выполняется предыдущий запрос, а не тот который написали.
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: Блог материалов категории
« Ответ #9 : 03.07.2015, 09:52:40 »
Где $db->setQuery($query); ? У вас выполняется предыдущий запрос, а не тот который написали.
ой, да, случайно закомментировал вместе с $query = 'SELECT `id`, `title`, `language` FROM `#__content` WHERE `catid`='.$child->id.'  AND `state`>0';

Самое странное, что теперь все работает. Тот код, который вчера выдавал ерунду, сегодня работает нормально. Может нужно было сервер перезагрузить? Но это же бред...
В общем, сейчас все работает, всем спасибо за помощь
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #10 : 03.07.2015, 09:52:49 »
Где $db->setQuery($query); ? У вас выполняется предыдущий запрос, а не тот который написали.
Глазастый :)
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Блог материалов категории
« Ответ #11 : 03.07.2015, 09:53:39 »
ой, да, случайно закомментировал вместе с $query = 'SELECT `id`, `title`, `language` FROM `#__content` WHERE `catid`='.$child->id.'  AND `state`>0';

Самое странное, что теперь все работает. Тот код, который вчера выдавал ерунду, сегодня работает нормально. Может нужно было сервер перезагрузить? Но это же бред...
В общем, сейчас все работает, всем спасибо за помощь
Ну так, setQuery() устанавливает строку запроса. Без этого никуда ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не удается разблокировать в менеджере материалов.

Автор vityavoluevich

Ответов: 4
Просмотров: 2185
Последний ответ 24.05.2025, 09:20:18
от azm1n
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 1957
Последний ответ 06.04.2025, 09:27:20
от wishlight
[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1493
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Поменять порядок материалов

Автор tatyana34

Ответов: 3
Просмотров: 1010
Последний ответ 11.12.2024, 16:10:41
от nikolakovach8619
Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 1218
Последний ответ 18.07.2024, 08:02:46
от Vastriet