Новости Joomla

👩‍💻 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 Гость просматривают эту тему.
  • 8 Ответов
  • 4779 Просмотров
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Здравствуйте
Если в оформлении заказа не сделать выбор Способа оплаты, то страница перезагружается и выводится сообщение - "Пожалуйста, выберите способ оплаты"

За проверку отвечает этот кусок кода:
Код: php
if (!$this->validate_form($d, $thisch)) {
$msg = @unserialize($_SESSION['error_msg']);
if (!empty($vmLogger->_messages) && (is_array($vmLogger->_messages)))
$msg .= '<br />'.end($vmLogger->_messages);
$_SESSION['error_msg'] = serialize($msg.'<br />Пожалуйста, выберите способ оплаты');
return false;
}

Как можно сделать валидацию без перезагрузки страницы?

Пробовал сделать JS. В начале страницы, перед кодом PHP:
Код: javascript
<script type="text/javascript"> 
function checks (obj){
 if (obj.payment_method_id.checked == '') {
 alert ('Пожалуйста, выберите способ оплаты'); return false;}
}
</script>

Не получилось..
« Последнее редактирование: 23.09.2015, 06:05:21 от sashgera »
*

fsv

  • Moderator
  • 2796
  • 414 / 2
Цитировать
В начале страницы, перед кодом PHP:
Функцию вставили. А как ее вызываете?

Обычно на клик по кнопке "заказать" вешается обработчик валидации заполнения полей формы, если true, форма отсылается.
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Функцию вставили. А как ее вызываете?
Вызов добавил в onclick кнопки
Код: html4strict
<input type="submit" class="button_confirm" value="<?php echo $VM_LANG->_('PHPSHOP_ORDER_CONFIRM_MNU')?>" onclick="javascript: return(submitregistration());checks;" id="confirmbtn" />
А как сделать обработчик валидации я не знаю. Поможете?
*

fsv

  • Moderator
  • 2796
  • 414 / 2
У вас уже есть по клику вызов функции submitregistration(). Уберите после нее "чек", в submitregistration() допишите вашу проверку. Насколько помню (давно было), в ней валидация заполнения адресных полей. Плюсом добавляйте в нее и свои поля, по аналогии смотрите, там переменной false присваивается.

Цитировать
А как сделать обработчик валидации я не знаю.
Это второй вариант, возможно, и без него все получится. "Возможно", т.к. там у вас OPC (в др.теме упоминали), плюс что там еще накручено, не знаю. Попробуйте сначала с submitregistration().
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
fsv, submitregistration() нашел только здесь:
(здесь проверка полей адреса)
administrator/components/com_virtuemart/classes/ps_userfield.php
Код: php
function printJS_formValidation( $required_fields, $allfields, $formname = 'adminForm', $functioname='submitregistration', $div_id_postfix = '_div' ) {
global $VM_LANG, $page, $mainframe, $vm_mainframe;

дописал:
Код: php
$field_list = str_replace( "'payment_method_id',", '', $ps_payment_method );

ниже, после проверки email
дописал:
Код: php
if( isset( $ps_payment_method['payment_method_id'] )) {

echo '
function checks (obj){
  if (obj.payment_method_id.checked == \'\') {
  alert (\'Пожалуйста, выберите способ оплаты\'); return false;}
  } ';
}

в итоге - проверка оплаты не работает, что-то сделал не так
« Последнее редактирование: 23.09.2015, 21:25:26 от sashgera »
*

fsv

  • Moderator
  • 2796
  • 414 / 2
Все, что в функции написали, уберите. Попробуйте в ее конце код
Код
// Finish the validation function
    echo '
        if( !isvalid) {
заменить на
Код
// Finish the validation function
    echo '
        if( document.querySelectorAll("input[name=payment_method_id]:checked").length < 1 ){
            alert( "Выберите способ оплаты" );
            return false;
        }
        if( !isvalid) {
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
fsv, большое спасибо!
*

fsv

  • Moderator
  • 2796
  • 414 / 2
лучше обернуть еще одним условием:
Код
if( document.querySelectorAll("input[name=payment_method_id]").length ){
if( document.querySelectorAll("input[name=payment_method_id]:checked").length < 1 ){
alert( "Выберите способ оплаты" );
return false;
}
}
Иначе, если функция используется не только при одностраничном оформлении (или вид оплаты будет только 1), эти изменения будут мешать.
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
fsv, спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Извлечь введеные пользователем данные с страницы с контактами

Автор hdsite

Ответов: 13
Просмотров: 2476
Последний ответ 14.09.2013, 01:28:25
от barboss
Две формы оформления заказа с разными способами оплаты

Автор lada89

Ответов: 1
Просмотров: 1490
Последний ответ 16.10.2012, 12:54:13
от fsv
Иконка способа оплаты

Автор Dimir

Ответов: 0
Просмотров: 1754
Последний ответ 22.09.2012, 01:52:55
от Dimir
Обновление страницы при регестрации/авторизации VirtueMart

Автор zoira

Ответов: 1
Просмотров: 1952
Последний ответ 16.05.2012, 10:21:41
от SnowMan
Способ оплаты через заказ без регистрации!

Автор artefakt

Ответов: 8
Просмотров: 3649
Последний ответ 11.02.2012, 18:32:05
от Edan