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

CaHeK_pk

  • Захожу иногда
  • 114
  • 2 / 0
День добрый, задался разработкой дополнительных функций для вирт2, по ходу разработки потребовалось создание новой таблицы "#__virtuemart_product_settings" и соответственно связки ее с virtuemart_product_id.
Создал новый файл в папке "tables", добавил классы получения данной таблицы, но вывод данных через "$this->product->нужное_поле" не получается, что для этого нужно сделать, можете помочь, заранее благодарю.
какие файлы есть:
product_settings.php - папка tables, класс "TableProduct_settings"
product.php - папка "models"
*

CaHeK_pk

  • Захожу иногда
  • 114
  • 2 / 0
вроде что-то получилось.
но выдает ошибки:
Спойлер
[свернуть]
что по файлам.
product.php

view.html.php
Код: php
// Добавил settings 
public function loadProductSettings($productId,$quantity,$virtuemart_shoppergroup_ids,$front){

$db = JFactory::getDbo();
$this->_nullDate = $db->getNullDate();
$jnow = JFactory::getDate();
$this->_now = $jnow->toMySQL();

//$productId = $this->_id===0? $product->virtuemart_product_id:$this->_id;
//$productId = $product->virtuemart_product_id===0? $this->_id:$product->virtuemart_product_id;
$q = 'SELECT * FROM `#__virtuemart_product_settings` WHERE `virtuemart_product_id` = "'.$productId.'" ';
$q .= ' ORDER BY `virtuemart_settings_id` DESC';

$db->setQuery($q);
$settings = $db->loadAssocList();
$err = $db->getErrorMsg();
if(!empty($err)){
vmError('getProductSingle '.$err);
} else {
if($settings and count($settings)==0){
vmdebug('getProductSingle getSettings query',$q);
}

}
return $settings;
}
932 public function getProductSettings(&$product,$quantity,$virtuemart_shoppergroup_ids,$front,$loop=false){

934 $product->virtuemart_settings_id = null;
935 $product->show_preorder = null;
936 $product->link_1 = null;
.. $product->load_image = null;
.. $product->show_save = null;
939 $product->nill = null;


$productId = $product->virtuemart_product_id===0? $this->_id:$product->virtuemart_product_id;
943 $product->settings = $this->loadProductSettings($productId,$quantity,$virtuemart_shoppergroup_ids,$front);
$i = 0;
$runtime = microtime (TRUE) - $this->starttime;
$product_parent_id = $product->product_parent_id;
}
//

Код: php
//добавил после
$mf_model = VmModel::getModel('manufacturer');
$manufacturers = $mf_model->getManufacturerDropdown($product->virtuemart_manufacturer_id);
$this->assignRef('manufacturers', $manufacturers);
//загрузка settings
$settings = $model->getProductPrices($virtuemart_product_id,false);
$this->assignRef('settings', $settings);
« Последнее редактирование: 10.10.2015, 16:21:03 от CaHeK_pk »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
"$this->product->нужное_поле" не получается

Для этого надо записать в эту переменную что нибудь...

Ты же сам  указал что результат SQL запроса будет в переменной $settings
Код
$settings = $db->loadAssocList();
Ну а что бы выводить это все видом
Код
->нужное_поле
Надо сделать вот так...
Код
$settings = $db->loadAssocList();
$this->product = $settings[0];

вроде что-то получилось.
но выдает ошибки:

Надо полный код этих файлов....
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

CaHeK_pk

  • Захожу иногда
  • 114
  • 2 / 0
Для этого надо записать в эту переменную что нибудь...

Ты же сам  указал что результат SQL запроса будет в переменной $settings
Код
$settings = $db->loadAssocList();
Ну а что бы выводить это все видом
Код
->нужное_поле
Надо сделать вот так...
Код
$settings = $db->loadAssocList();
$this->product = $settings[0];

Надо полный код этих файлов....
http://mykamtour.ru/product.rar
тут лежит архив 3х файлов.
дело в том что пытался запихнуть все действия в работу файлов отвечающие за product, поэтому старался сделать так что бы вид вызова был как указал в первом сообщении
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление значения поля, заполняемого покупателем в тему письма о заказе

Автор aleks_yug

Ответов: 9
Просмотров: 1271
Последний ответ 29.02.2020, 13:46:19
от rsn
VirtueMart 3.4.2 product neighbours не корректо работают

Автор Esmarmix

Ответов: 4
Просмотров: 940
Последний ответ 26.05.2019, 17:52:53
от Esmarmix
В авторизованной зоне скрыть edit product VirtueMart 2 - права shopper

Автор SusaninIvan

Ответов: 0
Просмотров: 795
Последний ответ 04.07.2017, 01:15:55
от SusaninIvan
Добавление постраничной навигации к списку подкатегорий

Автор usmdamir

Ответов: 3
Просмотров: 988
Последний ответ 26.04.2017, 18:49:11
от Strikerus
Связка 1с 8.3 ут 2.3 и Joomla 3.4.8 VirtueMart 3.0.12

Автор One

Ответов: 0
Просмотров: 1070
Последний ответ 14.06.2016, 10:47:26
от One