Новости Joomla

Перевод и публикация интервью с 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

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

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
Добрый день.
Создаю пункт меню(JoomShopping - Категория) в параметрах страницы вписываю свой альтернативный  заголовок страницы.  Но отображается название категории.

Мне нужно вместо <h1><?php print $this->category->name?></h1> в файле  category_default.php  вывести 

         <h1>
            <?php echo $displayData->escape($params->get('page_heading')); ?>
         </h1>

Как это правильно сделать ?

Заранее спасибо.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Может по аналогии как в maincategory.php
Код
<?php if ($this->params->get('show_page_heading') && $this->params->get('page_heading')){?>
<div class="shophead<?php print $this->params->get('pageclass_sfx');?>">
    <h1><?php print $this->params->get('page_heading')?></h1>
</div>
<?php }?>
Хотя я не пробовал... Не знаю получиться ли....
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
Хотя я не пробовал... Не знаю получиться ли....

Нет. Fatal error: Call to a member function get() on null in
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Не получилось...  :( Посмотрел ошибку выдает потому что параметры в категории не загружены.

Теоретически: нужно изменять контроллер (category.php) или писать плагин. После этого должно заработать...

Странно что разработчики в на главной JoomShopping и списке производителя это прописали а категории нет...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Теоретически: нужно изменять контроллер (category.php) или писать плагин. После этого должно заработать...
что мешает получить параметры прямо в шаблоне?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Ну да можно наверное и в шаблоне, хоть не люблю я это...  :dry:

Код
        $app = JFactory::getApplication();
        $dispatcher = JDispatcher::getInstance();
        $jshopConfig = JSFactory::getConfig();
        $params = $app->getParams();
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
Код
<?php 
defined('_JEXEC') or die('Restricted access');
$app = JFactory::getApplication();
$dispatcher = JDispatcher::getInstance();
$jshopConfig = JSFactory::getConfig();
$params = $app->getParams();
?>
<div class="jshop" id="comjshop">

    <h1><?php print $this->params->get('page_heading')?></h1>

    <div class="category_description">
        <?php print $this->category->description?>
    </div>


Так тоже отказывается ! Помогите пожалуйста.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
еще бы. с учетом того, что определили $params, а обращаетесь к $this->params, не удивительно что отказывается. я бы тоже отказался.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
еще бы. с учетом того, что определили $params, а обращаетесь к $this->params, не удивительно что отказывается. я бы тоже отказался.

<h1><?php print $params->get('page_heading')?></h1>  так работает, спасибо всем
*

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
Код
<?php 
defined('_JEXEC') or die('Restricted access');
$app = JFactory::getApplication();
$dispatcher = JDispatcher::getInstance();
$jshopConfig = JSFactory::getConfig();
$params = $app->getParams();
?>
<div class="jshop" id="comjshop">

<?php if ($params->get('show_page_heading')) : ?>
<h1><?php print $params->get('page_heading')?></h1>
<?php else: ?>
<h1><?php print $this->category->name?></h1>
<?php endif; ?>

    <div class="category_description">
        <?php print $this->category->description?>
    </div>

Рабочий вариант. Выводится заголовок из пункта если стоит "Да", иначе название категории. Может кому пригодится
*

ukrart

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
А как такое же сделать для Joomla 5 + JoomShopping 5?
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
А как такое же сделать для Joomla 5 + JoomShopping 5?
Попробуйте так:
Код
<?php 
/**
* @version      5.0.0 15.09.2018
* @author       MAXXmarketing GmbH
* @package      Jshopping
* [member=126442]copyright[/member]    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

use Joomla\CMS\Factory;

defined('_JEXEC') or die();

$app = Factory::getApplication();
$params = $app->getParams();

print $this->_tmp_category_html_start;
?>
<?php if ($params->get('show_page_heading')) : ?>
<h1><?php print $params->get('page_heading');?></h1>
<?php else: ?>
<h1><?php print $this->category->name;?></h1>
<?php endif; ?>
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

ukrart

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Попробуйте так:
Код
<?php 
/**
* @version      5.0.0 15.09.2018
* @author       MAXXmarketing GmbH
* @package      Jshopping
* [member=126442]copyright[/member]    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

use Joomla\CMS\Factory;

defined('_JEXEC') or die();

$app = Factory::getApplication();
$params = $app->getParams();

print $this->_tmp_category_html_start;
?>
<?php if ($params->get('show_page_heading')) : ?>
<h1><?php print $params->get('page_heading');?></h1>
<?php else: ?>
<h1><?php print $this->category->name;?></h1>
<?php endif; ?>

Class "Factory" not found

Я вообще-то это использую на странице Корзины, потому без <?php else: ?>. Но должно же и там выволить заголовок пункта меню? А то вообще никакого заголовка нет

UPD. Сорри, пропустил строку. Ошибки нет, но заголовок меню не выводит.

UPD. Если прописать поле Заголовок страницы в пункте меню, то выводит.

Спасибо!
« Последнее редактирование: 04.12.2024, 12:58:40 от ukrart »
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Я вообще-то это использую на странице Корзины
На странице корзины можно заголовок выводить только для "красоты". Для индексации это бесполезно. Страница корзины не должна индексироваться! Важно для SEO!
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В описании категории не работает плагин Jshortcodes

Автор SLV

Ответов: 1
Просмотров: 1303
Последний ответ 09.09.2024, 17:35:29
от kit2m2
Сортировка товаров внутри категории

Автор oslyabya

Ответов: 1
Просмотров: 1421
Последний ответ 02.08.2024, 22:06:39
от nevigen
[Решено] Не отображать краткое описание товара вместо полного на стр.товара

Автор goga_pgasovav

Ответов: 7
Просмотров: 1738
Последний ответ 30.01.2023, 15:31:24
от kit2m2
Сравнить общее количество товаров категории с количеством на странице

Автор goga_pgasovav

Ответов: 6
Просмотров: 1441
Последний ответ 25.01.2023, 20:12:58
от goga_pgasovav
Получить код верхней категории?

Автор mag_num83

Ответов: 5
Просмотров: 1061
Последний ответ 16.12.2022, 16:27:58
от kit2m2