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

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Отключить кеш модуля
« : 14.08.2017, 16:28:28 »
Есть небольшой самописный модуль в Joomla 3.7.4 С настройках системы выбрано стандартное кешированние.
В модуле параметры выбора кеша прописаны. Какой код нужно написать для отключения кеша?

*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #1 : 16.08.2017, 19:20:40 »
В админке есть кнопка очистки кеша. По аналогии.
Какой код можно прописать для модуля, чтобы после отправки данных очищался кеш?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Отключить кеш модуля
« Ответ #2 : 16.08.2017, 19:25:48 »
честно говоря не очень понятно что нужно сделать? вы хотите сбросить весь кеш? после отправки чего именно?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #3 : 16.08.2017, 20:35:15 »
после вставки данных в базу добавить очистку кеша.
« Последнее редактирование: 19.08.2017, 15:24:11 от alpha_ru »
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #4 : 19.08.2017, 15:34:36 »

Отключил плагин кеша, все равно модуль не работает. В настройках выбрано Стандартное кеширование.
Что нужно сделать, чтобы модуль не кешировался?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #5 : 19.08.2017, 15:48:25 »
Цитировать
В модуле параметры выбора кеша прописаны. Какой код нужно написать для отключения кеша?
Что значит в модуле параметры кеша прописаны?
в xml модуля, в секции config должна быть опция:
Код
<field name="cache" type="list" label="COM_MODULES_FIELD_CACHING_LABEL"
       description="COM_MODULES_FIELD_CACHING_DESC" default="1">
<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
<option value="1">JGLOBAL_USE_GLOBAL</option>
</field>
а дальше в админке в параметрах модуля поставить опцию в отключено и всё, модуль кешироватся не будет!
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #6 : 19.08.2017, 16:14:06 »

в xml модуля все прописано и время:
Код
<field
name="cache_time"
type="text"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
description="COM_MODULES_FIELD_CACHE_TIME_DESC"
default="900"
/>
Результата нет. 
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #7 : 19.08.2017, 16:34:26 »
Результата нет. 
Хотя да припоминаю есть баг, что даже если вырублено кеширование для модуля он всё равно кешируется в какой то отдельный файл где все модули скопом валяются..
Пофиксить это врядли получится, можно попробовать брать содержимое модуля аяксом...
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #8 : 23.08.2017, 21:51:58 »
Частично разобрался в проблеме. Если модуль выводится в стандартную позицию шаблона, то работает корректно. Если модуль выводится в статье, то кешируется намертво и изменение данных происходит только после чистки кеша.
Предпочтительный вариант - размещение модуля в статье. Что можно предпринять в этом случае?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #9 : 24.08.2017, 10:08:41 »
о. Если модуль выводится в статье, то кешируется намертво и изменение данных происходит только после чистки кеша.
Потому что в статье кешируется всё )

Предпочтительный вариант - размещение модуля в статье. Что можно предпринять в этом случае?
ставите что то типа на выводе модуля:
Код
<div class="ajax-wrapper" data-load="index.php?option=com_ajax&module=module_name&format=raw&Itemid=<?= JFactory::getApplication()->input->getInt( 'Itemid' ); ?>"></div>

В скриптах делаете что то типа:
Код
jQuery(document).ready(function ($) {
$('.ajax-wrapper').each(function () {
$(this).load($(this).data('load'));
        });
});

Ну и короче загружаете содержимое модуля аяксом, и плевать будет модулю на кеширование )
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #10 : 24.08.2017, 10:56:53 »
Ну ещё не понятно что за модуль, вполне возможно можно сбрасывать кеш материала программно..
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #11 : 25.08.2017, 13:14:00 »
вполне возможно можно сбрасывать кеш материала программно..
Интересный вариант. Можете подробнее раскрыть идею?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #12 : 25.08.2017, 14:48:40 »
Интересный вариант. Можете подробнее раскрыть идею?
ну если у вас например делается какая то запись для вывода модулем то при добавлении всего можно програмно очистить кеш com_content примерно так наверно:
Код
$conf = JFactory::getConfig();
$cache = JCache::getInstance( 'callback', [
'defaultgroup' => 'com_content',
'cachebase' => $conf->get( 'cache_path', JPATH_SITE . '/cache' ),
'result' => true
] );
$cache->clean();
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #13 : 25.08.2017, 16:11:09 »
можно програмно очистить кеш com_content примерно так наверно:
К сожалению не получается. Очистка кеша - удаление папки com_content или ее содержимого. Этого не происходит. Только из админки чистится кеш.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Отключить кеш модуля
« Ответ #14 : 25.08.2017, 18:59:13 »
все получается. а если не получается, и надо именно удалить папку - удалите папку
Код
JFolder::delete(путь к каталогу);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #15 : 25.08.2017, 20:29:33 »
К сожалению не получается. Очистка кеша - удаление папки com_content или ее содержимого. Этого не происходит. Только из админки чистится кеш.
Возможно неправильно вызываете или не там где надо дергаете!
Ну и на 100% в коде я тоже не уверен просто, просто такие вещи делают с помощью связки компонент->модель, а не модулем!
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #16 : 26.08.2017, 13:27:48 »
Нашёл пример кода удаления файлов из папки:
Спойлер
[свернуть]
Не могу внедрить.
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Отключить кеш модуля
« Ответ #17 : 26.08.2017, 14:09:20 »
Я думаю тут нету телепатов, почему у вас не получается внедрить, давайте больше информации.
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #18 : 26.08.2017, 14:17:54 »
В методе helper:
Спойлер
[свернуть]
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Отключить кеш модуля
« Ответ #19 : 26.08.2017, 15:11:17 »
Я думаю путь как минимум должен быть абсолютным
*

alpha_ru

  • Захожу иногда
  • 86
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #20 : 26.08.2017, 15:27:17 »
Изменил на
Код
$path = 'http://localhost/site/cache/com_content/';
и наконец появилась страница ошибки:
Цитировать
0 - syntax error, unexpected end of file, expecting function (T_FUNCTION)
но сам файл кеша из папки удалился!
Что можно предпринять.

*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Отключить кеш модуля
« Ответ #21 : 26.08.2017, 17:20:58 »
Лол ...  'http://localhost/site/cache/com_content/' это относительный путь!
абсолютный это: $path = JPATH_ROOT . '/cache/com_content/';

И код должен быть такой:
jimport( 'joomla.filesystem.folder' );
if ( JFolder::exists( JPATH_ROOT . '/cache/com_content/' ) ) JFolder::delete( JPATH_ROOT . '/cache/com_content/' );
И ошибка у вас потому что вы не закрыли кавычку фигурную!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор all_zer

Ответов: 3
Просмотров: 121
Последний ответ 15.11.2025, 16:20:01
от all_zer
Дублируются дивы у модуля mod_custom

Автор timofe

Ответов: 0
Просмотров: 778
Последний ответ 07.09.2024, 13:19:48
от timofe
Вывод содержимого модуля mod_custom без html разметки

Автор goga_pgasovav

Ответов: 3
Просмотров: 1214
Последний ответ 07.06.2024, 11:15:50
от goga_pgasovav
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 1466
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 1041
Последний ответ 17.05.2023, 09:35:23
от Театрал