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

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Обновление поста 21.11.2014, рецепты ниже не будут работать на J1.5, J1.6, J1.7. Только для последних версий J2.5 и J3.x

По мотивам - Различные условия в шаблонах

Варианты вызова модуля в шаблонах компонента Jshop
как вызвать модуль, например, в шаблоне категории или товара, 3 способа:

1. Вывод конкретного модуля, на примере модуля меток
Спойлер
[свернуть]

2. Вывод любого (всех) модулей, опубликованных в конкретной позиции - bottom
Спойлер
[свернуть]

3. Еще вариант вызова модулей по позиции
Спойлер
[свернуть]

Различные условия в шаблоне Joomla (templates/ВАШ_Шаблон/index.php)

1. Получаем необходимые параметры

Перед составлением условий, рекомендую - отключить SEF, тогда будет видно в URL какие у вас параметры

Код: php
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', '');
$controller = $input->getCmd('controller', '');

$option определяет компонент, в нашем случае $option это 'com_jshopping'
$controller работает уже внутри компонента - это может быть 'category', 'product', 'cart' и другое; все это можете узнать отключив SEF в настройках и посмотрев чему равен $controller (в адресной строке) на интересующих вас страницах.

Логические операторы
(для совсем новичков, чтоб вы сами могли составлять условия)
[spoiler title=логические операторы]
==  РАВНО
напр. - $controller == 'product' (показать в товарах)
!=  НЕ РАВНО!
напр. - $controller != 'product' (НЕ показывать в товарах)
&&  И
напр. - $controller == 'category' && $controller == 'product' (и в категориях и в товарах)[/spoiler]

Примеры для шаблона Joomla (templates/ВАШ_Шаблон/index.php)

1. Компонент Jshop установлен как главный пункт меню (для красивых ссылок, допустим), но не хотим выводить его на главной
Код: php
<?php if (JURI::current()!= JURI::base()):?> //само условие
<jdoc:include type="component" /> //непосредственно вывод компонента
<?php endif;?>

2. Позицию модуля не показывать в корзине и при оформлении заказа
Код: php
<?php if ( $option == 'com_jshopping' && $controller != 'cart' && $controller != 'checkout' ) : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>

3. Показать модуль только в категории, у которой ID=5
Спойлер
[свернуть]

Различные условия в шаблонах компонента Joomshopping

Первым делом переопределяем шаблоны -  всю папку /components/com_jshopping/templates/default/ копируем, переименовываем в com_jshopping и загружаем по адресу /templates/ваш_шаблон/html/*

1. Выводить описание категории только на первой странице (на второй и последующих - описания не будет)
/templates/ваш_шаблон/html/com_jshopping/category/category_default.php
Спойлер
[свернуть]

2. Выводить что угодно в магазине только для авторизованных пользователей
Спойлер
[свернуть]
В основном мануал собран из тех решений что уже встречались на форуме, для вашего удобства - всё в одном месте, довольно подробно, с пояснениями, - поэтому не стесняйтесь - экспериментируйте с условиями :)
« Последнее редактирование: 03.03.2020, 13:37:38 от nevigen »
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #330 : 28.11.2020, 13:42:02 »
И все таки, я думаю, что с помощью Advanced Module Manager PRO можно включить отображение модуля в позиции шаблона ТОЛЬКО на странице списка товаров и больше нигде. Но не знаю как это реализовать...
В принципе, и с вставкой кода тоже не получается: код вставляется в шаблон категории, соответственно и выводится модуль в категории, в позиции component. А надо, чтобы он выводился в позиции шаблона (left).
Правильно будет спросить: как мне включить позицию шаблона только в списке товаров, чтобы это позиция больше нигде не отображалась (ни на главной магазина, на в товарах и т.д.)?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #331 : 29.11.2020, 16:08:13 »
Так что там с модулем ? - Есть или нет ? -
зачем вам модуль ? Вот готовое решение для любого модуля или плагина, только условие изменить для своей задачи.
Убрать модуль в карточке товара JoomShopping
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #332 : 29.11.2020, 21:20:13 »
gartes
Спасибо! gartes уже все сделал сам. С него и решение в форум... ;)
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #333 : 30.11.2020, 09:53:12 »
зачем вам модуль ? Вот готовое решение для любого модуля или плагина, только условие изменить для своей задачи.
Да Уважаемый draff - так я и делал - но потом выползла еще одна трабла !
Когда шаблон видит что в позиции Left - у него опубликован модуль - он для него создает левую колонку - типа span3 и  под контент span9
И даже если модуль ретурнуть по app->input - то блин остается левая колонка !
Пришлось в системном плагине в методе onAfterRender - DomParser - ом - порезать этот блок left а контент блоку бутстрап в 12 поставить .. - И тогда да Все стало Ок !
В общем Lemonez - Доволен результатом ! )
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #334 : 30.11.2020, 12:42:19 »
Пришлось в системном плагине в методе onAfterRender - DomParser - ом - порезать этот блок left а контент блоку бутстрап в 12 поставить .. - И тогда да Все стало Ок !
Странные вы, вместо хака плагина Хеликс [FAQ] Условия вывода модулей в JoomShopping
И теперь при каждом обновлении Джумла, перезапишется  системный плагин, а Хеликс обновляется реже .
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #335 : 30.11.2020, 12:45:13 »
И теперь при каждом обновлении Joomla, перезапишется  системный плагин
Ну у нас он типа свой ! ))
Я про то что это не Joomla плагин !
« Последнее редактирование: 30.11.2020, 12:48:36 от gartes »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #336 : 25.12.2020, 23:30:32 »
Доброе время суток!

Перепробовал многое: и что было озвучено здесь и это Убрать модуль в карточке товара JoomShopping и с других топиков и ... Не получается!

Озвучу сразу вводные данные - шаблон  Vina Veneno (helix Version 2.1.8) \ JS Version 4.9.2
В карточке товара хочу скрыть все что выводится в позиции "Left" а это Меню категорий, Популярные товары и тд

Беру файл шаблона \ index.php \ и размещаю код
\\ index.php?option=com_jshopping&controller=product&task=view&......... \\

За исходник беру
Спойлер
[свернуть]
И понеслась ...
Код
		<?php
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
?>
<?php if ( $option == 'com_jshopping' && $controller != 'product') : ?>
<jdoc:include type="modules" name="left" />
<?php endif; ?>
В результате на страницах товаров без изменений - все на месте \ на странице категории - имею дубль модулей в позиции "Left", которые размещаются либо над шапкой или под футером сайта (тут уж где именно размещу код в файле шаблона index.php 

Вопрос: что не так и где?
Может в файле Helix "\plugins\system\helix\core\helix.php" надо как-то изловчится и записать как-то ... (прошу простить, но прошу показать пример, как необходимо записать?)

Решилась ли проблема у warlocksp ведь ситуация аналогичная?

Заранее благодарен
« Последнее редактирование: 25.12.2020, 23:34:33 от darkghost »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #337 : 26.12.2020, 10:24:22 »
Может в файле Helix "\plugins\system\helix\core\helix.php" надо как-то изловчится и записать как-то ... (прошу простить, но прошу показать пример, как необходимо записать?)
Я применял два варианта в двух местах , но точно не там.
[FAQ] Условия вывода модулей в JoomShopping


*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #338 : 02.01.2021, 11:15:06 »
Я применял два варианта в двух местах , но точно не там.
[FAQ] Условия вывода модулей в JoomShopping
такое наверное сработает только для Helix3, так как для Helix .../plugins/system/helix/layout/ нет указанного файла

Какие еще есть варианты для того, чтобы убрать ...?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #339 : 02.01.2021, 12:49:39 »
акое наверное сработает только для Helix3, так как для Helix .../plugins/system/helix/layout/ нет указанного файла
С 18 строки
Код
// OlegK
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
Там же ниже rows.php с 41 строки уже будет проверка на позицию и карточку товара
Код
 else
    { // OlegK
if($column->settings->name == "left" && ($option == 'com_jshopping' && $controller == 'product')) {
continue;
}
и во втором файле с 17 строки меняем класс на 12 столбцов
Код
// OlegK
if($option == 'com_jshopping' && $controller == 'product') {
$data->settings->className  = "col-lg-12 ";
}
« Последнее редактирование: 02.01.2021, 12:53:30 от draff »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #340 : 02.01.2021, 13:33:59 »
С 18 строки
Код
// OlegK
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option', 'com_jshopping');
$controller = $input->getCmd('controller', 'product');
Там же ниже rows.php с 41 строки уже будет проверка на позицию и карточку товара
........

Извините, может где-то шо то упустил, но в папке -layout- вот такие файлы




На картинке у Вас совсем иной файл, которого нет в папке -layout-

*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #341 : 02.01.2021, 14:03:24 »
Извините, может где-то шо то упустил, но в папке -layout- вот такие файлы
На картинке у Вас совсем иной файл, которого нет в папке -layout-
Судя по дате создания ваших файлов октябрь 2015 год, может быть. У меня свежие версии шаблонов.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: [FAQ] Условия вывода модулей в JoomShopping
« Ответ #342 : 06.10.2021, 21:21:28 »
Может не в этой теме, но ...
Как прописать условие, чтобы выводилось везде, кроме карточки товара?

Есть условие, которое отображает ОпенГраф только на страницах Жууумла
Код
function showPage($x = []){
return array_intersect_assoc($x,  $_REQUEST) === $x;
}
if(showPage(['option'=>'com_content'])):?>
                            <meta property="og:image" ..... 
Если прописать конструкцию типа
Код
 $option == 'com_jshopping' && $controller != 'product' 
то она не срабатывает ибо надо чтобы в карточке товара этого (meta property ... ) не было
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мы починили поиск для JoomShopping

Автор Dimidrol-Pruper

Ответов: 101
Просмотров: 35079
Последний ответ 24.06.2024, 14:20:58
от kit2m2
Плагин - Вывод значения поля из таблицы продуктов в корзине JoomShopping

Автор draff

Ответов: 3
Просмотров: 2414
Последний ответ 26.02.2024, 07:00:01
от kit2m2
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 12104
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] Комплект товаров JoomShopping - конструктор

Автор vgromov

Ответов: 96
Просмотров: 31994
Последний ответ 14.12.2022, 15:21:24
от kit2m2
Функционал сравнение товаров в JoomShopping

Автор falur

Ответов: 53
Просмотров: 15910
Последний ответ 22.08.2022, 09:54:16
от kit2m2