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

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
Доброго времени суток, уважаемые форумчане
Сотваряю магаз с использованием Joomla 3.8 и VirtueMart 3.2
В процессе данного действа возникла задача реализовать следующий алгоритм покупки в магазине
Есть меню категорий, при переходе на категорию товара открывается карточка единственного товара в данной категории
А нужно чтобы при нажатии на пункт меню категории товара, товар автоматический добавлялся в корзину и открывалась сама корзина
То есть убрать из алгоритма покупки открытие  карточки товара

Как я понял для реализации этого нужно формировать ссылку на корзину с параметрами  нужного товара в качестве передаваемых корзине переменных
и вид ее должен быть примерно следующий
Код
'index.php?option=com_virtuemart&view=cart&virtuemart_product_id[]='.$product->virtuemart_product_id.'&pname='.$product->product_name.'&pid='.$product->virtuemart_product_id.'&Itemid='.$itemId
Но как я не старался  открывается страница корзины а товар не добавляется, думаю что я посылаю что то лишнее или чегото не хватает ^-^

Стандартно ссылка формируется примерно тут в файле addtocart.php

Код
		<form method="post" class="product js-recalculate" action="<?php echo JRoute::_ ('index.php?option=com_virtuemart',false); ?>" autocomplete="off" >
<div class="vm-customfields-wrap">
<?php
if(!empty($rowHeights['customfields'])) {
foreach($positions as $pos){
echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$product,'position'=>$pos));
}
} ?>
</div>
<?php
if (!VmConfig::get('use_as_catalog', 0)  ) {
echo shopFunctionsF::renderVmSubLayout('addtocartbar',array('product'=>$product));
} ?>
<input type="hidden" name="option" value="com_virtuemart"/>
<input type="hidden" name="view" value="cart"/>
<input type="hidden" name="virtuemart_product_id[]" value="<?php echo $product->virtuemart_product_id ?>"/>
<input type="hidden" name="pname" value="<?php echo $product->product_name ?>"/>
<input type="hidden" name="pid" value="<?php echo $product->virtuemart_product_id ?>"/>
<?php


$itemId=vRequest::getInt('Itemid',false);
if($itemId){
    //$pach = JRoute::_ ('index.php?option=com_virtuemart&view=cart');
echo '<input type="hidden" name="Itemid" value="'.$itemId.'"/>';

} ?>
</form>


Я новичок в php , да и с Joomla работаю не долгое время, поэтому может где то что то не до понял или  неправильно что то делаю
Прошу вашей помощи в решении данной задачи
заметил что создал тему в корневом разделе приношу извинение за невнимательность  , если можно перенесите тему в раздел модификации и хаки
« Последнее редактирование: 20.12.2018, 18:11:41 от Mr_rundin »
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Так добавьте кнопку в корзину в товары категории
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
Это не совсем то что нужно, на главной у меня нет витрины категорий
есть меню  каждый пункт соответствует определенной категории,  у которых имеются подкатегории 
нужно сделать так, что бы когда в меню в выпадающем меню нажимаешь на подкатегорию,
товар который в ней находится попадал в корзину
шаблон корзины у меня  выглядит как карточка товара  там показано изображение товара описание и прямо на этой странице можно заполнить доп поля  и подтвердить заказ 
если покупатель зарегистрирован, то  покупка происходит в два клика с главной страницы
(точнее хочется что бы так было)
как бы все более мение готово осталось только  решить вопрос с добавлением товара
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Тогда только смотреть
Иначе не совсем понятно как данные товара передаются
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

robert

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

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
В принципе можно: пункт меню сделать внешним URL'ом с ID товара и нужными параметрами. С какими - надо посмотреть, давно не трогал ВМ.
Именно в этом ключе и надо смотреть
Просто надо именно смотреть ко с кнопки на конкретном товаре
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
А как можно посмотреть что передается модулю при нажатии на кнопку добавить в корзину
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
вид ее должен быть примерно следующий
Код
'index.php?option=com_virtuemart&view=cart&virtuemart_product_id[]='.$product->virtuemart_product_id.'&pname='.$product->product_name.'&pid='.$product->virtuemart_product_id.'&Itemid='.$itemId
Это код, а как на деле ссылка получилась?
И, если правильно помню, то там еще должны быть параметры "task=add" и "quantity".
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
Всем огромное спасибо заработало))
пока делаю так
Код
echo("<script>location.href='index.php?option=com_virtuemart&view=cart&virtuemart_product_id[]=$product->virtuemart_product_id&pname=$product->product_name&pid=$product->virtuemart_product_id&task=add&quantity=2&Itemid=$itemId'</script>");
*

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
Пока вписал эту строку в карточке товара в самом конце 
ну и как бы происходит перенаправление
нужно как-то избавится от карточки товара, пока незнаю как буду пробовать
Сделал пункт меню с типом внешней ссылки и теперь сразу все добавляется )))
Но хочу еще зделать чтоб  чтоб добовляемое количество автоматически пересчитывалось относительно минимальной суммы заказа ну это можно реализовать и в самой корзине  переменную минсуммы разделить на цену и получим количество Спасибо еще раз всем за помощь)
« Последнее редактирование: 21.12.2018, 18:31:06 от Mr_rundin »
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Нет категории, нет карточки товара... Зачем вам VM?
Веб-разработка: заказ. Только новая разработка.
*

Mr_rundin

  • Новичок
  • 9
  • 0 / 0
Ну есть корзина и страницы оплаты 
Карточка  как бы есть она встроена в корзину (страницу оформления заказа)
ну и витрину категорий тоже верну возможно
Возможно если бы я обладал  достаточно хорошими знаниями php, js и сайто-строения в общем, то тогда он мне и не был нужен,
 а так я нашел более менее  описанный компонент  с кучей примеров и модификаций, слегка изменил,
помучелся конечно,  но в итоге получил то что хотел)))
« Последнее редактирование: 21.12.2018, 21:08:48 от Mr_rundin »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться