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

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Добрый день!
Ситуация такая: по умолчанию в aiContactSafe существует автозаполнение поля на имя пользователя Joomla и Емайл пользователя Joomla

Хочу туда добавить еще Адрес1, который располагается в дополнительных сведениях о профиле.
Нашел в файлике  administrator\components\com_aicontactsafe\views\fields\view.html.php  код
Код: php-brief
// Joomla User name
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_NAME');
$txtSelect->type = 'UN';
$select_combo[] = $txtSelect;
// Joomla User email
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_EMAIL');
$txtSelect->type = 'UE';
$select_combo[] = $txtSelect;
добавил по образу и подобию
Код: php-brief
               // Joomla User address1 - ЭТОТ РАЗДЕЛ ДОБАВИЛ САМ
$txtSelect = new stdClass;
$txtSelect->name = JText::_('COM_AICONTACTSAFE_JOOMLA_USER_ADDRESS');
$txtSelect->type = 'UA';
$select_combo[] = $txtSelect;
         
Нашел в файлике components\com_aicontactsafe\views\message\view.html.php  код
Код: php-brief
if ($this->_user_id > 0 && strlen(trim($field->auto_fill)) > 0) {
switch($field->auto_fill) {
case 'UN' :
$postData_field_value = $joomla_user_name;
break;
case 'UE' :
$postData_field_value = $joomla_user_email;
break;
case 'UA' :
$postData_field_value = $joomla_user_address1;
break;
}
}
 

и добавил требуемый адрес

в этом же файле есть код
Код: php-brief
// get user informations
if ($this->_user_id > 0) {
$user = & JFactory::getUser();
$joomla_user_name = $user->get('name');
$joomla_user_email = $user->get('email');
$joomla_user_address1 = $user->get('profile.address1');   // добавил АДРЕС1
}

понимаю что так нельзя, т.к такого поля в таблице USERS нет, а нужно обратиться к таблице user_profiles и по ID пользователя выщемить Адрес1

Уважаемые, подскажите как это сделать!

Спасибо.
« Последнее редактирование: 12.12.2012, 08:24:02 от AL_ALEX »
*

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Re: Автозаполнение полей
« Ответ #2 : 26.06.2012, 12:01:25 »
Гляньте эту тему
Отобразить данные из профиля пользователя.

благодарю за оперативность!

получился следующий код:
Код: php-brief
$db = JFactory::getDbo();
$db->setQuery(
'SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '.(int) JFactory::getUser()->id." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering'
);
$results = $db->loadRowList();

$profile = array();
foreach ($results as $v)
{
$k = str_replace('profile.', '', $v[0]);
$profile[$k] = json_decode($v[1], true);
}

print_r($profile); // для проверки

$joomla_user_address1 = $profile['address1'];

Но есть магия! если в значении например адреса профиля пользователя содержаться только цифры то все работает! если же встречается пробел или любая другая буква, то поле остается пустым  :(
« Последнее редактирование: 26.06.2012, 12:47:20 от SmilingBull »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Автозаполнение полей
« Ответ #3 : 26.06.2012, 12:18:06 »
Код: php-brief
<?php
$db = JFactory::getDbo();
$db->setQuery(
'SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '.(int) JFactory::getUser()->id." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering'
);
$results = $db->loadRowList();
$profile = array();
foreach ($results as $v)
{
$k = str_replace('profile.', '', $v[0]);
$profile[$k] = json_decode($v[1], true);
if ($profile[$k] === null)
{
$profile[$k] = $v[1];
}
}
$joomla_user_address1 = $profile['address1'];

?>
$profile['address1'], $profile['address2'], $profile['city'], $profile['region'], $profile['country'], $profile['postal_code'], $profile['phone'], $profile['website'], $profile['favoritebook'], $profile['aboutme'], $profile['dob']
/plugins/user/profile/profile.php
*

SmilingBull

  • Новичок
  • 4
  • 0 / 0
  • и смех, и грех ...
Re: Автозаполнение полей
« Ответ #4 : 26.06.2012, 12:57:05 »
а ларчик просто открывался!

Код: php-brief
	
jimport( 'joomla.user.helper' ); $userProfile = JUserHelper::getProfile();

$joomla_user_address1 = $userProfile->profile[address1];


Спасибо, дяде Федору за науку!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Форма обратной связи как всплывающий модуль?

Автор Лена)

Ответов: 11
Просмотров: 25607
Последний ответ 07.10.2015, 12:52:25
от dennjor
[Решено] aiContactSafe форму в тело страницы

Автор seveNN

Ответов: 30
Просмотров: 29547
Последний ответ 13.05.2014, 21:24:15
от jurassik
[Решено] не отображается CAPTCHA в aiContactSafe

Автор barbadui

Ответов: 48
Просмотров: 46762
Последний ответ 25.09.2013, 11:18:55
от pbrigadir
[Решено] Перестали прикрепляться файлы, показываться captcha, вслывающее окно

Автор siao

Ответов: 0
Просмотров: 5864
Последний ответ 10.09.2013, 10:57:45
от siao
[Решено] Как отправлять на несколько адресатов?

Автор Xolodno

Ответов: 4
Просмотров: 3909
Последний ответ 11.07.2013, 08:18:17
от prostoy