Новости Joomla

Вышли релизы безопасности Joomla 6.1.3 и Joomla 5.4.8

Релиз безопасности Joomla 6.1.3 и Joomla 5.4.8

Проект Joomla! рад сообщить о выходе Joomla 6.1.3 и Joomla 5.4.8. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Возник вопрос. Как сделать чтобы на кнопке "в корзину" после добавления товара отображалось в корзине?
Первое что пришло в голову это лезть в таблицу session и получать от туда данные.
А дальше по условию, если совпадает то 1, если нет то 2.

Есть какие нибудь другие варианты, менее примитивные, через js и jquery например?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #1 : 16.08.2014, 20:15:19 »
т.е. такое решение вам кажется слишком легким, и вы хотите усложнить?

Спойлер
[свернуть]
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #2 : 16.08.2014, 20:47:36 »
О, юмор..) Ценю..) Картинку сохранил..))
Итак, к делу, я тут напилил AJAX добавление в корзину (на основе AJAX поиска), т.е. мне нужно обновлять динамически. (хотя можно в функцию добавить SELECT или еще как то).

Но, в контроллере cart, в function add есть такой код:
Код
       $session =JFactory::getSession();
       $back_value = array('pid'=>$product_id, 'attr'=>$jshop_attr_id, 'freeattr'=>$freeattribut,'qty'=>$quantity);
       $session->set('product_back_value', $back_value);
Но, никак не получается получить данные из массива, показывает что пустой. (ну или я...) Вроде все варианты перепробовал..
Код
        $dannie = $session->get('product_back_value' ,$back_value);
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #3 : 16.08.2014, 22:29:59 »
не, я так больше не играю... вот с вами всегда так :) про AJAX добавление нельзя было сразу написать? это ж принципиальные моменты. откуда мне знать, в какой момент времени вам нужна проверка на наличие в корзине? вы или все описывайте, или тогда на сайт экстрасенсов :)

никак не получается получить данные из массива, показывает что пустой

ну видимо потому что
Цитата: \components\com_jshopping\controllers\product.php function display
$session->set('product_back_value',array());

не могу в принципе понять, зачем его получать
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #4 : 17.08.2014, 00:07:52 »
Цитировать
про AJAX добавление нельзя было сразу написать?
Ну да. Я обычно стараюсь полностью все объяснять, но тут получилось так, что корзина вышла немного позже, через час...)

Цитировать
не могу в принципе понять, зачем его получать
подумал потому что он в session (session'ы бывают разные) сохраняет id товара, pid=>product_id, плюс типа минус 1 запрос к бд и меньше нагрузка.

Цитировать
ну видимо потому что \components\com_jshopping\controllers\product.php function display
Код
$session->set('product_back_value',array());
Я не понял причины..))

Т.е. если получить данные, то можно добавить функцию в cart.php, ну или в другую, и она будет вызываться сразу после добавления товара, получая при этом свежие данные.
« Последнее редактирование: 17.08.2014, 00:50:01 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #5 : 17.08.2014, 10:37:10 »
Но, никак не получается получить данные из массива, показывает что пустой.
Я посмотрел выше
Код: php-brief
if (!$cart->add($product_id, $quantity, $jshop_attr_id, $freeattribut)){
            if ($ajax){
                print getMessageJson();
                die();
            }
            $session =JFactory::getSession();
            $back_value = array('pid'=>$product_id, 'attr'=>$jshop_attr_id, 'freeattr'=>$freeattribut,'qty'=>$quantity);
            $session->set('product_back_value', $back_value);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$category_id.'&product_id='.$product_id,1,1));
            return 0;
        }
JS не юзаю, но по-моему product_back_value в сессии остается пустым, если:
1. параметр AJAX задан
или
2. товар успешно добавляется
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #6 : 17.08.2014, 14:03:51 »
я просто не могу понять, зачем из сессии пытаться получить product_back_value, если из сессии надо получить товары в корзине? и проверить потом, есть ли текущий товар в корзине.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #7 : 17.08.2014, 14:34:27 »
я просто не могу понять, зачем из сессии пытаться получить product_back_value
- товар, который НЕ попал в корзину?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #8 : 17.08.2014, 14:58:00 »
ну... да, возможно конечно... но исходя из названия темы - смысл? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #9 : 17.08.2014, 16:19:36 »
Хорошо, я вас понял, как можно тогда из SESSION вытащить, там же несколько срок полноэкранного текста выходит?
Делать функцию которая обрезает все ненужное...?
Просто многие компоненты используют session, не ужели все они так режут всегда..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #10 : 17.08.2014, 16:52:42 »
Хорошо, я вас понял, как можно тогда из SESSION вытащить, там же несколько срок полноэкранного текста выходит?
Делать функцию которая обрезает все ненужное...?
Просто многие компоненты используют session, не ужели все они так режут всегда..
Как вытащить - $session->get(), вы же знаете.
Не понял: какая функция и что должна обрезать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #11 : 17.08.2014, 18:40:47 »
во-первых, сессия - это массив, и резать - это я так понимаю про строки, а к значениям массива можно обращаться напрямую

во-вторых, для работы с сессий в Joomla, как уже сказал robert, есть своя обертка JSession со своими методами и другими полезностями. почитайте про нее.

ну а в -третьих, для корзины разработчики вообще в принципе модель придумали :)

Код: php
$cart = JModelLegacy::getInstance('cart', 'jshop');
$cart->load();
print_r($cart->products);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #12 : 18.08.2014, 04:38:11 »
У меня не получилось автоматическое создание массива со всеми product_id (подскажите), поэтому сделал так, в принципе хватит;D... но это после перезагрузки страницы будет работать:
Код
$cart = JModelLegacy::getInstance('cart', 'jshop');
$cart->load();
$prover = array($cart->products[1][product_id], $cart->products[2][product_id], $cart->products[3][product_id], $cart->products[4][product_id]);
if (in_array($this->product->product_id, $prover)) {
    echo "в корзине";
}
else {
echo "в корзину";
}


А после клика, будет удаляться кнопка и подставляться другая через js..
Код
$(".click_buy").parent().prepend("<a href='/im/shop/cart/add.html?category_id=1&amp;product_id=8' class=in_cart'>в корзине</a>");
$(".click_buy.button_buy").remove();

А после перезагрузки уже php будет работать..)

Шутим, не стесняемся..))
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #13 : 18.08.2014, 08:43:00 »
та а че шутить? норм практически. вопрос только - если при добавлении ошибка будет какая-либо (например, нет столько количества). кнопка все равно сменится, а не должна бы... а по поводу массива со всеми product_id - то можно так:
Код: php
$inCart = false;
foreach ($cart->products as $prod) {
if ($this->product->product_id == $prod['product_id']) {
$inCart = true;
break;
}
}
if ($inCart) {
echo "в корзине";
} else {
...
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #14 : 18.08.2014, 09:01:40 »
Спасибо, сейчас попробую..)
Там после запроса есть success, внутри вставил, поэтому думаю что только при добавлении все таки..

А вообще, "нет в наличии", как по мне так это глупая опция, не буду полностью (могу долго нудно и часами..))), но, так клиент уйдет не сделав заказа, а в другом случае, можно предложить скидку на аналогичный или скидку и подождать..))

P.S. 300-й мой будет..))


« Последнее редактирование: 18.08.2014, 09:14:55 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скидка + итоговая сумма в корзине

Автор Simply

Ответов: 14
Просмотров: 2069
Последний ответ 15.03.2023, 18:43:59
от kit2m2
Как переустановить аддон руками если нет архива первоначального?

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 986
Последний ответ 21.11.2022, 14:24:46
от kit2m2
Выбор города если на сайте несколько продавцов уже (joomshopping)

Автор McCafferty

Ответов: 4
Просмотров: 1241
Последний ответ 21.09.2022, 10:45:09
от kit2m2
Количество товара в корзине в мега-меню [решено]

Автор jesus

Ответов: 13
Просмотров: 2589
Последний ответ 08.10.2021, 21:42:27
от Mister Shadow
Автообновление суммы в корзине от количество товаров

Автор V1RTUS

Ответов: 4
Просмотров: 3029
Последний ответ 30.06.2021, 21:32:09
от driverXP