Новости 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

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 28 Ответов
  • 13701 Просмотров
*

vlom

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Кто подскажет где в вирте можно изменить способ формирования номера заказа?
Сейчас выглядит так 522b025 а мне скажем надо сделать такого вида 000356
что бы в номере содержались исключительно цифры и номера шли по порядку
*

vlom

  • Осваиваюсь на форуме
  • 37
  • 2 / 0
Re: Человеческий номер заказа
« Ответ #1 : 24.04.2012, 13:47:21 »
решил таки эту проблему, хоть и пришлось пол дня потратить
решение такое, открываем файл /administartor/components/com_virtumarte/models/order.php
ищем метод generateOrderNumber
и меням его содержимое на
Код
    	$db = JFactory::getDBO();
        $q = 'SELECT `order_number`
        FROM #__virtuemart_orders
        ORDER BY `order_number` DESC
        LIMIT 1';
        $db->setQuery($q);
        $data = $db->loadAssoc();
        $a = (int)$data['order_number'] + 1;
        echo $a;
        return $a;
*

xilgiz

  • Захожу иногда
  • 129
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #2 : 22.06.2012, 15:11:53 »
У меня там есть только orders.php
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Человеческий номер заказа
« Ответ #3 : 18.07.2012, 13:34:22 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!
*

glutton

  • Захожу иногда
  • 54
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #4 : 01.11.2012, 23:39:49 »
а как ноль убрать в начале?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Человеческий номер заказа
« Ответ #5 : 01.11.2012, 23:46:57 »
а как ноль убрать в начале?
удалить заказы предыдущие
сделать, чтобы последний был цифровым ну и на крайний случай добавить строку
$_orderData->order_number=ltrim($_orderData->order_number, '0');
*

Dr.House

  • Новичок
  • 6
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #6 : 06.11.2012, 15:31:11 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!
а как сделать, что бы за номер заказа брал id заказа? заранее спасибо!
*

glutton

  • Захожу иногда
  • 54
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #7 : 08.11.2012, 01:08:26 »
Файл administrator/components/com_virtuemart/models/orders.php
заменяем строку $_orderData->order_number =''; (у меня 565 была, версия 2.08) на
$_orderData->order_number = $this->generateOrderNumber($_usr->get('id'),0,$_orderData->virtuemart_vendor_id);
Радуемся и наслаждаемся  yes!

Вот такую ошибку стало выдавать после подтверждения заказа:
Код
Warning: substr() expects parameter 3 to be long, string given in /administrator/components/com_virtuemart/models/orders.php on line 1128

Что бы это могло быть?
Я как раз недавно добавил напрямую в базу данных 3 (три) разных продавца (vendors) - может, как раз с этим связано?
« Последнее редактирование: 08.11.2012, 01:13:50 от glutton »
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #8 : 26.11.2012, 14:34:08 »
Прошу помощи - как сбросить ID заказов ?
Сейчас после тестирования ID заказа идет наприер 179, а номер заказа 068. очень нужно уровнять, кто знает что делать ?
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #9 : 01.12.2012, 19:49:47 »
Я себе сделал, что бы за id заказа шла дата. Например: 54011212, где 54 - id заказа, 011212 - день/месяц и год. В итоге функуия выглядит так
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #10 : 01.12.2012, 19:54:42 »
id и номер заказа несколько разные вещи вообще-то
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #11 : 03.12.2012, 09:31:46 »
id и номер заказа несколько разные вещи вообще-то
Естественно, а я разве утверждал обратное?
*

aivalab

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #12 : 03.12.2012, 09:54:03 »
Естественно, а я разве утверждал обратное?
наверное не так понял.
не подскажите, как мне все-таки уровнять эти два значения ?
*

mixfix83

  • Новичок
  • 5
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #13 : 03.12.2012, 22:53:25 »
Цитировать
не подскажите, как мне все-таки уровнять эти два значения ?
А вот я не знаю, но если бы была такая у меня необходимость копал бы в базе данных
*

twister2013

  • Захожу иногда
  • 91
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #14 : 10.09.2013, 11:01:45 »
Уважаемые любители VirtueMart!
Подскажите пожалуйста, у меня используется плагин для распечатки счета после оформления заказа, номер счета там выглядит так:
Код
СЧЕТ № <?php echo $InvId ?>
Номер заказа я сделал как написал Fedor Vlasenko . А как бы мне этот номер заказа вставить  вместо номера счета. Заранее спасибо

Решил сам. Как удалить пост не пойму
« Последнее редактирование: 12.09.2013, 14:15:33 от twister2013 »
*

bankinobi

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #15 : 14.09.2013, 19:22:05 »
Решил сам. Как удалить пост не пойму
А и не надо ничего удалять, лучше напишите ваше решение проблемы)
*

twister2013

  • Захожу иногда
  • 91
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #16 : 17.09.2013, 11:18:18 »
А и не надо ничего удалять, лучше напишите ваше решение проблемы)
заменил virtuemart_order_id на order_number
*

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Re: Человеческий номер заказа
« Ответ #17 : 28.09.2013, 02:00:03 »
В данный момент у меня функция выглядит следующим образом:
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = date('Ymd').($data['virtuemart_order_id']+1);
return (int)$order_id;
}
и она выдаёт номер заказа типа 201309281, где 2013 - год, 09 - месяц, 28 - текущий день месяца, 1 - $data['virtuemart_order_id']...
Как мне получить номер заказа типа 20130928-00001
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Человеческий номер заказа
« Ответ #18 : 07.10.2013, 14:21:21 »
а вот можно с этого
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}
чтоб было
не 212071013
а вот так  212-07,10,13
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Re: Человеческий номер заказа
« Ответ #19 : 15.07.2014, 13:50:44 »
а как сделать чтобы номера заказов начинались с цифры 1 , следущий 2 и т.д.?
*

MMONSTERR

  • Захожу иногда
  • 59
  • 3 / 0
Re: Человеческий номер заказа
« Ответ #20 : 11.08.2014, 17:39:30 »
Да простят меня программисты. Или улучшат мой код, я сделал так:

В administrator/components/com_virtuemart/models/orders.php, я добавил в самый конец функции generateOrderNumber следующее:
Код
$_SESSION['mm_vm_order_id'] = $data;
return $data;

А в templates\ВАШ_ШАБЛОН\html\com_virtuemart\cart\order_done.php

Код
$db =& JFactory::getDBO();
$___id_order = mysql_fetch_assoc(mysql_query("SELECT `virtuemart_order_id` FROM `".$db->getPrefix()."virtuemart_orders` WHERE
`order_number` = '".$_SESSION['mm_vm_order_id']."' LIMIT 1;"));
echo 'Номер заказа: '.$___id_order['virtuemart_order_id'];
*

Messir

  • Давно я тут
  • 532
  • 73 / 0
  • могу укусить:)
Re: Человеческий номер заказа
« Ответ #21 : 18.08.2014, 12:52:45 »
Может кому пригодится... На просторах инета нашел плагин. И код не надо ковырять и номер заказа можно хоть как-то в божеский вид привести...
*

bankinobi

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #22 : 07.09.2014, 21:16:08 »
Может кому пригодится... На просторах инета нашел плагин. И код не надо ковырять и номер заказа можно хоть как-то в божеский вид привести...
За плагин спасибо, решил разом головняк)
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Человеческий номер заказа
« Ответ #23 : 28.10.2014, 09:23:53 »
На 4-том шаге оформления стал выдавать вот такую ошибку
Цитировать
Couldn't create order
No order created
и номер заказа стал какой-то странный
был такой (2124231014)  при том что ID заказа (2124) и дата (23-10-14)
до ошибки стал выводить
2-1 а ID заказа нормальный 2150 по порядку
дальше стал вообще не понятно что выводить
2147483647-2014-10-28- а ID заказа 2154
в /administartor/components/com_virtumarte/models/order.php
строки 1313 / 1321
Код
		static public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
    $db = JFactory::getDBO();
    $q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
    $db->setQuery($q);
    $data = $db->loadAssoc();
    $order_id = ($data['virtuemart_order_id']+1).date("dmy");
    return (int)$order_id;
}
*

Dobreff

  • Захожу иногда
  • 214
  • 10 / 4
Re: Человеческий номер заказа
« Ответ #24 : 28.04.2015, 10:23:08 »
Я себе сделал, что бы за id заказа шла дата. Например: 54011212, где 54 - id заказа, 011212 - день/месяц и год. В итоге функуия выглядит так
Код
public function generateOrderNumber($uid = 0,$length=10, $virtuemart_vendor_id=1)
{
$db = JFactory::getDBO();
$q = 'SELECT `virtuemart_order_id` FROM #__virtuemart_orders ORDER BY `virtuemart_order_id` DESC LIMIT 1';
$db->setQuery($q);
$data = $db->loadAssoc();
$order_id = ($data['virtuemart_order_id']+1).date("dmy");
return (int)$order_id;
}

Отлично! Супер! Работает.
*

Carapax

  • Новичок
  • 6
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #25 : 03.10.2015, 09:43:58 »
В VM3 эта функция помечена как устаревшая, вместо нее используется genStdOrderNumber (если кому-то интересно). Расположена там же, на одну позицию выше.
*

rony1111

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #26 : 04.12.2015, 16:11:10 »
Нашла классный модуль (бесплатный). У меня все работает, сделала номер под требования разных курьерок https://www.genius-webdesign.com/joomla-extensions/63-genius-order-numbering-for-virtuemart-2
Joomla 2.5
*

SLAVJAN

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #27 : 25.04.2018, 16:45:27 »
Да простят меня программисты. Или улучшат мой код, я сделал так:

В administrator/components/com_virtuemart/models/orders.php, я добавил в самый конец функции generateOrderNumber следующее:
Код
$_SESSION['mm_vm_order_id'] = $data;

большое человеческое спасибо! пригодилось.
*

SLAVJAN

  • Новичок
  • 3
  • 0 / 0
Re: Человеческий номер заказа
« Ответ #28 : 25.04.2018, 16:45:54 »
В VM3 эта функция помечена как устаревшая, вместо нее используется genStdOrderNumber (если кому-то интересно). Расположена там же, на одну позицию выше.
очень пригодилось Ваше уточнение :) спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать подтверждение заказа J3, VM3?

Автор Bakston

Ответов: 1
Просмотров: 1126
Последний ответ 26.02.2018, 19:15:54
от draff
Описание статуса заказа в письмо клиенту

Автор antony2606

Ответов: 0
Просмотров: 1187
Последний ответ 20.11.2017, 03:20:16
от antony2606
Форма оформления заказа + Корзина. Всё в одном модальном окне на VirtueMart 2

Автор Strikerus

Ответов: 0
Просмотров: 1781
Последний ответ 19.04.2017, 08:13:30
от Strikerus
МОДУЛЬ - Корзина товаров с оформлением заказа на любой странице

Автор WooSuuP

Ответов: 10
Просмотров: 3024
Последний ответ 12.04.2016, 16:39:10
от WooSuuP
При оформление заказа на сумму выше N числа, появляется блок

Автор psg-2301

Ответов: 1
Просмотров: 924
Последний ответ 27.11.2015, 13:32:06
от nikola_blin