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

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Не могу отключить кэширование модуля корзины Joomshopping.
В некоторых модулях есть такие настройки, а в некоторых нет.
Может есть возможность сделать это как-то программно?

В базе пробовал прописывать напрямую параметры: "cache":"0" - это не помогает.
Модуль подключаю через <jdoc:include type="modules" name="cart" style="none" />

Сайт: ecotraffic.ru
Joomla 3.7.5
Joomshopping 4.16.2
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
посмотрите в xml того модуля, в котором есть опция отключения кеширования, как сделано field name="cache". и добавьте в xml модуля корзины точно также. но откровенно говоря вам это навряд ли поможет.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Это не помогло...
Скорее всего, остается единственный вариант, который не очень хочется делать - подгружать корзину и список желаний через Ajax после загрузки страницы. Но делать надо - у меня включение кэша сокращает время отклика на 0,8-1 сек.
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Кешируете плагином?
*

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Да
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Та же проблема, сам воюю, скорее всего только аякс.
*

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Приведу пример для корзины (модуль mod_jshopping_cart_ext), может кому-то полезно будет.

Создаем файл:
/templates/ваш_шаблон/html/mod_jshopping_cart_ext/default_ajax.php

Который полностью копирует файл:
/templates/ваш_шаблон/html/mod_jshopping_cart_ext/default.php

Далее, в файл default_ajax.php подключаем библиотеки Joomla и Joomshopping:

Код
<?php 
/* Подключаем framework joomla */
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__).'/../../../..' );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$app = JFactory::getApplication('site')->initialise();

/* Подключаем framework joomshopping */
require_once (JPATH_BASE.'/components/com_jshopping/lib/factory.php');
require_once (JPATH_BASE.'/components/com_jshopping/lib/jtableauto.php');
require_once (JPATH_BASE.'/components/com_jshopping/tables/config.php');
require_once (JPATH_BASE.'/components/com_jshopping/lib/functions.php');
require_once (JPATH_BASE.'/components/com_jshopping/lib/multilangfield.php');

/* Эта часть копируется из расположенного в папке /modules/mod_jshopping_cart_ext/mod_jshopping_cart_ext.php */
JSFactory::loadCssFiles();
JSFactory::loadLanguageFile();
$jshopConfig = JSFactory::getConfig();
JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_jshopping/models');

$cart = JModelLegacy::getInstance('cart', 'jshop');
$cart->load("cart");
?>
/*Дальше будет стандартный код модуля */
....


В шаблон страниц:

Код
jQuery(document).ready(function(){
    jQuery.ajax({
            type: "POST",
            url: "/templates/ваш_шаблон/html/mod_jshopping_cart_ext/default_ajax.php",
            success: function(msg){
               jQuery("#custom_cart").html(msg);
            }
         });
});

И далее по аналогии с другими модулями.

На сколько я понял ускорение загрузки страниц дает именно плагин Joomla: Система - Кэш, но он записывает страницу полностью, поэтому если есть данные, которые могут отличаться у разных пользователей, то только через ajax.
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Зачем вам кеширование для магазина??
Тем более в статику... я понимаю еще можно использовать мемкеш... но кешировать в файлы зачем магазин?
Ничего толком этим шагом вы не добиваетесь... лишь увеличиваете нагрузку на дисковую подсистему.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Зачем вам кеширование для магазина??
Тем более в статику... я понимаю еще можно использовать мемкеш... но кешировать в файлы зачем магазин?
Ничего толком этим шагом вы не добиваетесь... лишь увеличиваете нагрузку на дисковую подсистему.

Вы правы - это неправильно и неудобно. Но это самый быстрый и дешевый способ проверить влияние скорости загрузки сайта на seo позиции. Если эксперимент будет удачным, то будем думать в сторону выделенного сервера, грамотной его настройки и оптимизации кода. Если будет неудачным, то просто выключу его.

Но по факту:

Кэш отключен - сайт грузится за 2,8-3,4 сек, отклик 1-1,2 сек
Кэш включен - сайт грузится за 1,4-2 сек, отклик 0,1-0,3 сек

Получается скорость загрузки сайта увеличивается в полтора-два раза!

По поводу нагрузки на дисковую подсистему. Не совсем понял, что вы имеете ввиду. Если это место на диске, то для сайта в 1000 страниц хватит 100-200 мб. Не так много..
*

dmitry_stas

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

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Зачем вам кеширование для магазина??
Тем более в статику... я понимаю еще можно использовать мемкеш... но кешировать в файлы зачем магазин?
Ничего толком этим шагом вы не добиваетесь... лишь увеличиваете нагрузку на дисковую подсистему.
Почему нет, если страницы магазина  - это статика?
Да и кеш можно хранить не только на  диске, а используя редис или мемкэш в оперативке.
*

dmitry_stas

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

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Оказывается нужно сначала поискать проблему в интернете, т.к. есть готовое решение, да еще бесплатное.
https://extensions.joomla.org/extension/jotcache/

Исключил кэш по позициям
Исключил кэш по контроллеру (корзины, оформление, сравнение и т.д.)

Я не знаю как это плагин работает, но загрузка такая же быстрая как при обычном системном плагине.

Вот статьи полезные по настройке:
https://aleksius.com/joomla/rasshireniya/jotcache
https://aleksius.com/joomla/rasshireniya/kesh-dzhumla
*

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
как это - статика? взять, например, товар - как минимум отзывы - уже не статика. вывод системных сообщений - не статика. куда копни - не статика

Странно, но системные сообщения работали при обычном системном плагине кэша. Насчет отзывов да..
*

dmitry_stas

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
так они будут работать. вопрос в том, что они на какой то странице закешироваться могут, и будут всем показываться.
Не раскрывайте сюжет следующего сезона - интригу надо подогревать :).
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

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

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
как это - статика? взять, например, товар - как минимум отзывы - уже не статика. вывод системных сообщений - не статика. куда копни - не статика
А если только изображение, описание и цена, нету отзывов, сортировок и фильтров?
*

dmitry_stas

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

s-h-e-f-f

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
а в следующем сезоне - сортировки. по цене, по популярности, по наименованию :) кому как повезло :)

А можно еще несколько сезонов вперед? Пока не критично.

1. Сейчас невозможно вывести системное сообщение на странице не посетив ее предварительно, поэтому в кэш попадает всегда страница без системного сообщения.

2. Через JotCache отключил кэширование фильтра - работает!

3. Отзывы - подгружаю сторонним плагином на js.

4. Сортировки - не критично, т.к. по метрике ими пользуются менее 1% посетителей + перекиширование, вообщем шанс что пользователь попадет не на свою сортировку очень низкая.
*

dmitry_stas

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

как из Стиль модуля - none, убрать custom

Автор all_zer

Ответов: 3
Просмотров: 126
Последний ответ 15.11.2025, 16:20:01
от all_zer
Joomla 3 не пускает в админку (просто перезагружается страница) (гуглил, нашёл решение, не помогло)

Автор lifelover2b

Ответов: 11
Просмотров: 4888
Последний ответ 05.06.2025, 04:48:29
от andrey222
По поводу сессий Joomla 3

Автор azm1n

Ответов: 0
Просмотров: 1278
Последний ответ 25.05.2025, 09:26:17
от azm1n
Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 1641
Последний ответ 09.05.2025, 12:39:18
от azm1n
Вывести поля профиля Joomla

Автор romagromov

Ответов: 11
Просмотров: 2843
Последний ответ 28.04.2025, 10:25:44
от sivers