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

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
Как это сделать?
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
сейчас на сайте как? Используете стандартный модуль доставки VirtueMart?
*

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
сейчас на сайте как? Используете стандартный модуль доставки VirtueMart?
Нет, это не модуль. Способ доставки выбирается на странице оформления заказа, за это отвечает файл select_shipment.php, который находится по пути com_virtuemart/cart

Вот содержание файла:

Код
<?php
/**
 *
 * Template for the shipment selection
 *
 * @package VirtueMart
 * @subpackage Cart
 * @author Max Milbers
 *
 * @link https://virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: cart.php 2400 2010-05-11 19:30:47Z milbo $
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');


if (VmConfig::get('oncheckout_show_steps', 1)) {
echo '<div class="checkoutStep" id="checkoutStep2">' . vmText::_('COM_VIRTUEMART_USER_FORM_CART_STEP2'). '</div>';
}

if ($this->layoutName!='default') {
$headerLevel = 1;
if($this->cart->getInCheckOut()){
$buttonclass = 'button vm-button-correct';
} else {
$buttonclass = 'default';
}
?>
<form method="post" id="shipmentForm" name="chooseShipmentRate" action="<?php echo JRoute::_('index.php'); ?>" class="form-validate">
<?php
} else {
$headerLevel = 3;
$buttonclass = 'vm-button-correct';
}

if($this->cart->virtuemart_shipmentmethod_id){
echo '<h'.$headerLevel.' class="vm-shipment-header-selected">'.vmText::_('COM_VIRTUEMART_CART_SELECTED_SHIPMENT_SELECT').'</h'.$headerLevel.'>';
} else {
echo '<h'.$headerLevel.' class="vm-shipment-header-select">'.vmText::_('COM_VIRTUEMART_CART_SELECT_SHIPMENT').'</h'.$headerLevel.'>';
}


?>

<div class="buttonBar-right">
<?php $dynUpdate = '';
if( VmConfig::get('oncheckout_ajax',false)) {
$dynUpdate=' data-dynamic-update="1" ';
} ?>
<button name="updatecart" class="<?php echo $buttonclass ?>" type="submit" <?php echo $dynUpdate ?> ><?php echo vmText::_('COM_VIRTUEMART_SAVE'); ?></button>

<?php   if ($this->layoutName!='default') { ?>
<button class="<?php echo $buttonclass ?>" type="reset" onClick="window.location.href='<?php echo JRoute::_('index.php?option=com_virtuemart&view=cart&task=cancel'); ?>'" ><?php echo vmText::_('COM_VIRTUEMART_CANCEL'); ?></button>
<?php  } ?>
</div>

<?php
if ($this->found_shipment_method ) {

echo '<fieldset class="vm-payment-shipment-select vm-shipment-select">';
// if only one Shipment , should be checked by default
foreach ($this->shipments_shipment_rates as $shipment_shipment_rates) {
if (is_array($shipment_shipment_rates)) {
foreach ($shipment_shipment_rates as $shipment_shipment_rate) {
echo '<div class="vm-shipment-plugin-single">'.$shipment_shipment_rate.'</div>';
}
}
}
echo '</fieldset>';
} else {
echo '<h'.$headerLevel.'>'.$this->shipment_not_found_text.'</h'.$headerLevel.'>';
}


if ($this->layoutName!='default') {
?> <input type="hidden" name="option" value="com_virtuemart" />
<input type="hidden" name="view" value="cart" />
<input type="hidden" name="task" value="updatecart" />
<input type="hidden" name="controller" value="cart" />
</form>
<?php
}
?>


*

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
Неужели никто не сталкивался с подобной задачей? Способов доставки очень много и не удобно, когда выбор идет через инпуты, высота корзины сильно увеличивается? Так как способы доставки вывести выпадающим списком?
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Igoritaly

  • Давно я тут
  • 659
  • 2 / 0
Вам не это надо?
http://joomlaforum.ru/index.php?topic=223014.0

Там слишком в лес, файлы из administrator задействуются. Мне нужен простой вариант, хоть модальное окно, лишь бы все спрятать и показывать по необходимости.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести категории с фото и подкатегориями?

Автор sergspb

Ответов: 0
Просмотров: 2536
Последний ответ 18.05.2022, 15:01:55
от sergspb
Как вывести модуль в витрине VirtueMart?

Автор Дмитрий_76

Ответов: 1
Просмотров: 2916
Последний ответ 09.02.2020, 10:06:17
от AlexB
Название способа доставки сбивается

Автор Orfei

Ответов: 3
Просмотров: 2815
Последний ответ 03.12.2019, 16:59:44
от draff
Как вывести количество позиций (а не товаров) в корзине?

Автор SABON

Ответов: 1
Просмотров: 1456
Последний ответ 14.11.2018, 11:30:43
от rsn
Настройки доставки

Автор Fedotov.frs

Ответов: 4
Просмотров: 994
Последний ответ 07.02.2018, 15:14:40
от draff