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

Valent777

  • Новичок
  • 2
  • 0 / 0
Здравствуйте! Есть магазин на JoomShopping. Подскажите, пожалуйста, как вывести в карточке товара все категории, к которым он принадлежит. И также я не могу найти массив куда JoomShopping заносит все ID этих категорий.

Правки делаю в файле: product_default.php

код - <?php echo $this->category_id ?> выводит только ID текущей категории.

Заранее благодарю!
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Есть готовый плагин, который выводит все категории товара не только в карточке товара, но и списке товаров. Стоит 2000р. Писать в личку или Скайп.

Спойлер
[свернуть]
« Последнее редактирование: 07.04.2022, 21:01:08 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Если не устраивает готовое решение, то в product_default.php нет информации о всех категориях товара, только о текущей (об одной категории).
В зависимости через какую категорию зашли в товар, та и будет показываться. Вернее только её ID.

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

Valent777

  • Новичок
  • 2
  • 0 / 0
Благодарю за варианты! Действительно, в коде этого файла я ничего подобного не нашел в принципе. Но я хочу вызвать искомый массив в этом файле и потом уже работать с ним.
Ну и готовое решение, если его брать, мне все равно нужно будет нужно лишь для того, чтобы увидеть что и откуда вызывается )
*

kit2m2

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

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

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Ну и готовое решение, если его брать, мне все равно нужно будет нужно лишь для того, чтобы увидеть что и откуда вызывается )
Готовое расширение, на то и готовое, что поставил, настроил и получил результат, который хотел...  и в код не нужно лезть. Ну может еще стили-css подправил под себя...

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

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Доработал свой плагин - «Все категории товара»
Спойлер
[свернуть]
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Еще доработал свой плагин - «Все категории товара»... Добавил дополнительный функционал
Спойлер
[свернуть]
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

ВикторПро

  • Новичок
  • 1
  • 0 / 0
*

newalex

  • Захожу иногда
  • 94
  • 5 / 0
Почитал о плагине. Но мне это не подходит. Но есть вопрос как получить название категории в скроллер товаров .
При этом запрос типа
Код
$pcat=$this->product->product_categories;
не проходит. Т.к. в модуле нет объекта this.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
При этом запрос типа
Код
$pcat=$this->product->product_categories;
не проходит. Т.к. в модуле нет объекта this.
Это не запрос а присвоение! Знак "=" - Это присвоение значения, в данном случае переменной $pcat присвоено значение $this->product->product_categories
Но есть вопрос как получить название категории в скроллер товаров
Встречный вопрос: Зачем в контроллере товаров получать название категории? В контроллере товаров есть ID категории этого достаточно. По ID можно получить название.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

newalex

  • Захожу иногда
  • 94
  • 5 / 0
Вот код как выводиться в слайдере данные для товаров:
Код
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');

$doc = JFactory::getDocument();
$doc->addScript('modules/mod_vina_carousel_jshopping/assets/js/owl.carousel.js', 'text/javascript');
$doc->addStyleSheet('modules/mod_vina_carousel_jshopping/assets/css/owl.carousel.css');
$doc->addStyleSheet('modules/mod_vina_carousel_jshopping/assets/css/owl.theme.css');
?>
<style type="text/css">
#vina-carousel-jshopping<?php echo $module->id; ?> {
width: <?php echo $moduleWidth; ?>;
height: <?php echo $moduleHeight; ?>;
margin: <?php echo $moduleMargin; ?>;
padding: <?php echo $modulePadding; ?>;
<?php echo ($bgImage != '')? "background: url({$bgImage}) repeat scroll 0 0;" : ''; ?>
<?php echo ($isBgColor)? "background-color: {$bgColor};" : '';?>
overflow: hidden;
}
#vina-carousel-jshopping<?php echo $module->id; ?> .item {
<?php echo ($isItemBgColor)? "background-color: {$itemBgColor};" : ""; ?>;
color: <?php echo $itemTextColor; ?>;
padding: <?php echo $itemPadding; ?>;
margin: <?php echo $itemMargin; ?>;
}
#vina-carousel-jshopping<?php echo $module->id; ?> .item a {
color: <?php echo $itemLinkColor; ?>;
}
</style>
<div id="vina-carousel-jshopping<?php echo $module->id; ?>" class="vina-carousel-jshopping owl-carousel">
<?php
foreach($items as $key => $item) :
$pid    = $item->product_id;
$cid    = $item->category_id;
$image = ($item->product_name_image)? $item->product_name_image : $noimage;
$image = $jshopConfig->image_product_live_path . '/' . $image;
$image = ($resizeImage)? $timthumb . "&src=" . $image : $image;
$title = $item->name;
$intro = $item->short_description;
$price = formatprice($item->product_price);
$oprice = formatprice($item->product_old_price);
$link  = $item->product_link;
$buy    = JRoute::_("index.php?option=com_jshopping&controller=cart&task=add&category_id=$cid&product_id=$pid");
$label = $item->_label_image;
$rate  = $item->average_rating;
$count = $item->reviews_count;
?>
<div class="item">
<!-- Image Block -->
<?php if($showImage) : ?>
<div class="image-block">
<a href="<?php echo $link; ?>" title="<?php echo $title; ?>">
<img src="<?php echo $image; ?>" alt="<?php echo $title; ?>" title="<?php echo $title; ?>" />
<?php if($showLabel && $item->label_id): ?>
<div class="plabel">
<?php if($label): ?>
<img src="<?php print $label; ?>" alt="<?php print htmlspecialchars($item->_label_name); ?>" />
<?php else : ?>
<span class="label-name"><?php print $item->_label_name;?></span>
<?php endif; ?>
</div>
<?php endif; ?>
</a>
</div>
<?php endif; ?>

<!-- Text Block -->
<?php if($showTitle || $showIntro || $showPrice) : ?>
<div class="text-block">
<!-- Title Block -->
<?php if($showTitle) :?>
<h3 class="title">
<a href="<?php echo $link; ?>" title="<?php echo $title; ?>"><?php echo $title; ?></a>
</h3>
<?php endif; ?>

<?php if($showRateReview): ?>
<div class="info">
<span class="pull-left"><?php print showMarkStar($rate); ?></span>
<span class="pull-right"><?php print sprintf(_JSHOP_X_COMENTAR, $count);?></span>
</div>
<?php endif; ?>

<!-- Intro text Block -->
<?php if($showIntro && !empty($intro)) : ?>
<div class="introtext"><?php echo $intro; ?></div>
<?php endif; ?>

<!-- Price/add to cart Block -->
<?php if($showPrice) : ?>
<div class="price-block">
<strong><?php echo JTEXT::_('Price'); ?>:</strong> <span><?php if($item->product_old_price > 0): ?><i><?php echo $oprice; ?></i> <?php endif; ?><?php echo $price; ?></span>

<a class="addtocart pull-right" href="<?php echo $buy; ?>" title="<?php echo $title; ?>">
<?php echo JText::_('VINA_ADD2CART'); ?>
</a>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
$("#vina-carousel-jshopping<?php echo $module->id; ?>").owlCarousel({
items : <?php echo $itemsVisible; ?>,
        itemsDesktop : <?php echo $itemsDesktop; ?>,
        itemsDesktopSmall : <?php echo $itemsDesktopSmall; ?>,
        itemsTablet : <?php echo $itemsTablet; ?>,
        itemsTabletSmall : <?php echo $itemsTabletSmall; ?>,
        itemsMobile : <?php echo $itemsMobile; ?>,
        singleItem : <?php echo ($singleItem)? 'true' : 'false'; ?>,
        itemsScaleUp : <?php echo ($itemsScaleUp)? 'true' : 'false'; ?>,

        slideSpeed : <?php echo $slideSpeed; ?>,
        paginationSpeed : <?php echo $paginationSpeed; ?>,
        rewindSpeed : <?php echo $rewindSpeed; ?>,

        autoPlay : <?php echo ($autoPlay)? 'true' : 'false'; ?>,
        stopOnHover : <?php echo ($stopOnHover)? 'true' : 'false'; ?>,

        navigation : <?php echo ($navigation)? 'true' : 'false'; ?>,
        rewindNav : <?php echo ($rewindNav)? 'true' : 'false'; ?>,
        scrollPerPage : <?php echo ($scrollPerPage)? 'true' : 'false'; ?>,

        pagination : <?php echo ($pagination)? 'true' : 'false'; ?>,
        paginationNumbers : <?php echo ($paginationNumbers)? 'true' : 'false'; ?>,

        responsive : <?php echo ($responsive)? 'true' : 'false'; ?>,
        autoHeight : <?php echo ($autoHeight)? 'true' : 'false'; ?>,
        mouseDrag : <?php echo ($mouseDrag)? 'true' : 'false'; ?>,
        touchDrag : <?php echo ($touchDrag)? 'true' : 'false'; ?>,
});
});
</script>
Не могу понять как вывести еще и имя или даже имена категориий к которым принадлежит конкретный товар. Хотя ID категории есть.  Есть ли у вас идея? Это модуль от mod_vina_carousel_jshopping. Могу прислать и сам модуль.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Не могу понять как вывести еще и имя или даже имена категорий к которым принадлежит конкретный товар. Хотя ID категории есть.
Если есть ID категории товара, то название нужно получать запросом в базу данных. Чтобы получить ID всех категорий товара, нужно также делать запрос в базу, модуле скорее всего только одна категория (первая).
Это модуль от mod_vina_carousel_jshopping. Могу прислать и сам модуль.
Модуль присылать не нужно, он платный, вот разработчик - https://vinagecko.com/joomla-modules/item/100-product-carousel-for-jshopping

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

Плагин уведомлений о заказах в телеграмм для JoomShopping

Автор thevaca

Ответов: 0
Просмотров: 84
Последний ответ 10.11.2025, 14:11:40
от thevaca
WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 26
Просмотров: 35995
Последний ответ 14.10.2025, 12:54:56
от sergeytolkachyov
Не работает lightbox в JoomShopping

Автор d13v555

Ответов: 6
Просмотров: 1311
Последний ответ 08.10.2025, 15:34:46
от kit2m2
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 765
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Товар - файл. Как ограничить добавление в корзину только 1 шт?

Автор SLV

Ответов: 15
Просмотров: 2510
Последний ответ 24.07.2025, 11:34:21
от SLV