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

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Подскажите пожалуйста как можно программно авторизоваться на сайте так, чтобы в таблице #__users не обновилось значение последнего визита.
Авторизация собственно происходит таким образом.
Код
$instance = JUser::getInstance();
$instance->load($robotId);

// If _getUser returned an error, then pass it back.
if ($instance instanceof Exception) {
throw new Exception($instance->getMessage(), $instance->getCode());
return false;
}

// If the user is blocked, redirect with an error
if ($instance->get('block') == 1) {
throw new Exception(JText::_('JERROR_NOLOGIN_BLOCKED'), 500);
return false;
}

// Chek the user can login.
if (!$result = $instance->authorise('core.login.admin')){
throw new Exception(JText::_('JERROR_LOGIN_DENIED'), 500);
return false;
}

// Mark the user as logged in
$instance->set('guest', 0);

// Check to see the the session already exists.
JFactory::getApplication()->checkSession();

// Register the needed session variables
$session = JFactory::getSession();
$session->set('user', $instance);

// Create a Database object
$db = JFactory::getDBO();

// Update the user related fields for the Joomla sessions table.
$db->setQuery(
'UPDATE '.$db->quoteName('#__session').
'   SET '.$db->quoteName('guest') .'='.$db->quote($instance->get('guest')).',' .
'     '.$db->quoteName('username') .'='.$db->quote($instance->get('username')).',' .
'     '.$db->quoteName('userid') .'='.$db->quote((int) $instance->get('id')).
' WHERE '.$db->quoteName('session_id') .'='.$db->quote($session->getId())
);
$db->query();
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Скорее всего никак, лично я предлагаю перед авторизацией, запомнить время последнего визита, после сделать запрос что бы поставить это время обратно...
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Гы-гы-гы... ;D
Все таки победил.
Правда нужно сделать лирическое отступление. Этот скрипт используется только для программной обработки данных кроном, иначе нужно делать то, что предложил Instaan*DRINK*

Так вот, что сделано. Для начала, выкидываем из приведенного кода обновление таблицы сессии (#__session). Зачем нам светить нашего робота в списке последних авторизованных пользователей? Нам это не надо.
Затем, после проведения необходимых операций вместо стандартной схемы выхода пользователя из системы аля...
Код: php
JFactory::getApplication()->logout($robotId);
делаем следующее:
Код: php-brief
		// kill user
$session->set('user', null);
// kill session
$session->destroy();

И конечно, если скрипт отдает какие-то данные, то в начале скрипта нужно добавить буфферизацию вывода,
Код: php
ob_start();
чтобы при убивании сессии не иметь проблем с заголовками.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться