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

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Здравствуйте, помогите допилить плагин. Необходимо после регистрации нового пользователя отправить данные на другой сайт по апи.

Собственно файлик

Цитировать
<?php defined( '_JEXEC' ) or die( 'Restricted access' );
//получаем данные нового пользователя
if($isNew){
   $user = JFactory::getUser();
        $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;

   //отправляем данные
$request = '
&first_name="$first_name"
&email_address="$email_address"
&phone="$phone"
$url = 'http://site.ru/api/';
$sendSpot($url, $request);
   }

function sendSpot($url, $data) {
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $url);
             curl_setopt($ch, CURLOPT_FAILONERROR, 1);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             curl_setopt($ch, CURLOPT_TIMEOUT, 7);
             curl_setopt($ch, CURLOPT_POST, 1);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

             $result = curl_exec($ch);

             curl_close($ch);

             return $result;
            }
« Последнее редактирование: 06.10.2016, 14:51:06 от makslm »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #1 : 04.10.2016, 11:09:23 »
Так а в чем конкретно помочь? Откуда мы знаем, что там за API, в каком формате они принимают данные.
Да и пароль вы собрались в открытом виде передавать или в виде хеша (что для стороннего сайта будет бессмысленно)?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #2 : 04.10.2016, 11:16:16 »
/api?key=[your_key]&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com
данные передаются в таком виде, нужно выполнить такой запрос и данные запишутся.. необходима отправка только серверно, что б не видно было в адресной строке
« Последнее редактирование: 06.10.2016, 14:51:44 от makslm »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #3 : 04.10.2016, 11:19:18 »
Я бы сделал переход по сформированной ссылке с указанными параметрами через AJAX в момент выполнения скрипта
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #4 : 04.10.2016, 11:21:54 »
Я бы сделал переход по сформированной ссылке с указанными параметрами через AJAX в момент выполнения скрипта
это будет на стороне клиента, и он должен остатся на сайте, а данные уйти
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #5 : 04.10.2016, 11:46:16 »
это будет на стороне клиента, и он должен остатся на сайте, а данные уйти
ну так я про то и говорю, запрос уйдет, мы остаемся на сайте клиента, еще если тот сайт дает ответ на полученные данные можно сказать клиенту о результатах обработки
Код: javascript
$.ajax({
        type: 'POST',
        url: 'http://site.com/back.php/affiliate/externalSorce/api?key=[your_key]&method=createLead&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com',
        data: '',
        cache: false,
        success: function(response){
          alert(response);
        }
});
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании модуля
« Ответ #6 : 04.10.2016, 12:06:55 »
А причем тут вообще модуль? если тут плагин нужен. Что такое $isNew
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #7 : 04.10.2016, 12:09:33 »
ну так я про то и говорю, запрос уйдет, мы остаемся на сайте клиента, еще если тот сайт дает ответ на полученные данные можно сказать клиенту о результатах обработки
Код: javascript
$.ajax({
        type: 'POST',
        url: 'http://site.com/back.php/affiliate/externalSorce/api?key=[your_key]&method=createLead&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com',
        data: '',
        cache: false,
        success: function(response){
          alert(response);
        }
});

по идеи подходит, а как скрыть ключ что б скрипте не видно было?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #8 : 04.10.2016, 12:21:52 »
а как скрыть ключ что б скрипте не видно было?
в данном случае никак
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #9 : 04.10.2016, 12:30:51 »
А причем тут вообще модуль? если тут плагин нужен. Что такое $isNew
верно подметили.. смешал все в кучу, необходим плагин..

function onUserAfterSave( $data, $isNew, $result, $error ){
if($isNew){$user = JFactory::getUser();
   $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;}
}
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #10 : 04.10.2016, 13:53:08 »
Если мне память не из
верно подметили.. смешал все в кучу, необходим плагин..

function onUserAfterSave( $data, $isNew, $result, $error ){
if($isNew){$user = JFactory::getUser();
   $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;}
}
В первых в плагине $user = JFactory::getUser(); вы получие юзера которых сохранял, а учитывая isNew Получитите либо админа либо гостя. Далее стандартная функция выглядит так
Код: php
public function onUserAfterSave($user, $isnew, $success, $msg)
А данные пользователя получаться так
Код: php
   $first_name = $user['name'];
   $email_address = $user['email'];
насчет телефона хз.
Далее помино "проверки" isNew проверяйте  $success

Теперь работа с api
Во превых дайте ссылку на документацию api ни кто тут от вас не просит писать на форуме секретный ключ.
Во вторых у всех человеческих сервисов с api есть примеры реализации на php.
В третьих.
У любого сервиса есть защиты от спама, лимит и т.д. Поэтому вам надо исключить запросы к api от ботов (можете считать что ваш сайт мега защищен от реги ботов, но все равно доп. проверка не помешает). Как вариант завести таблицу где будут хранится email или другой идентификатор уже отправленных данных. К примеру если вы удалите юзера, то email можно использовать повторно, а если хранить в данные в топ таблице, хоть она прибавит веса, но зато будет защита и сервис вас не заблокирует. Про подобные защиты пишут все сервисы и сайты предоставляющие апи. Ваша обязанность контролировать сколько и какие запросы вы отправляете.
Закончили с проверкой переходим к отправке.
Материалов по данной теме тьма, пользуйтесь поиском. Зависит от того что вы получить к примеру можно использовать file_get_contents() а для формирования параметров запроса http_build_query()

Это максимум чем можно помочь. Если только не писать весь код за вас.

P.S судя знаний php у вас явно маловато *(без обид). Обратитесь в коммерческий раздел или хотя бы возьмите за основу тот же дефолтный contactcreator
« Последнее редактирование: 04.10.2016, 14:16:13 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #11 : 05.10.2016, 14:35:06 »
Цитировать
<?php
defined('_JEXEC') or die;
class PlgUserNewLead extends JPlugin
{
   protected $autoloadLanguage = true;
   public function onUserAfterSave($user, $isnew, $success, $msg)
   {
      if (!$success)
      {
         return false;
      }
      if (!$isnew)
      {
         return false;
      }
      $user_id = (int) $user['id'];
      if (empty($user_id))
      {
         return false;
      }
      if ($isNew) {
         $first_name = $user['username']
         $email_address = $user['email'];
         }
         
      if( $curl = curl_init() ) {
      curl_setopt($curl, CURLOPT_URL, 'http://site.ru/api?key=xxx&method=createLead&first_name='$first_name'&last_name=last_name&email_address='$email_address');
      $out = curl_exec($curl);
      echo $out;
      curl_close($curl);
   }
Должно работать?  !
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #12 : 05.10.2016, 14:40:39 »
Должно работать?  !
В логике промхнулся.  if ($isNew) надо не на данные пользователя, а на отправку
« Последнее редактирование: 05.10.2016, 14:58:41 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #13 : 06.10.2016, 09:56:08 »
Вроди как разобрался с этим, установил плагин...
....
if ($isNew) {
         $file = file_get_contents('site.ru');
   }
При получении данных с site.ru, на site.ru я это увижу..

Не работает( Его нужно дополнительно подключать в регистрации?
Если да, можно пример пожалуйста?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #14 : 06.10.2016, 10:45:15 »
Вроди как разобрался с этим, установил плагин...
....
if ($isNew) {
         $file = file_get_contents('site.ru');
   }
При получении данных с site.ru, на site.ru я это увижу..

Не работает( Его нужно дополнительно подключать в регистрации?
Если да, можно пример пожалуйста?

Поймите если вы хотите чтобы вам помогли с апи то нужна ссылка на документацию этого апи. А лучше всего в коммерческий раздел
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #15 : 06.10.2016, 10:50:47 »
вопрос с апи сейчас не актуален
 $file = file_get_contents('site.ru'); работает, проверял отдельно созданным файлом..

код плагина упростил.. что б сразу отправка была при if new

я должен сам научится и понять)
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #16 : 06.10.2016, 15:48:06 »
 ! HELP даже так не работает(
Цитировать
<?
class plgUserNewlead extends JPlugin {
function onUserAfterSave ($user, $isnew)
   {
         
      if ($isnew)
         {
      $fp = fopen("11.txt", "a");

fwrite($fp, "123123123123213"."\r\n");

fclose($fp);
         }
   }

Для теста создал файл 1.php
<?php
$fp = fopen("11.txt", "a");
fwrite($fp, "123123123123213"."\r\n");
fclose($fp);
?>
- работает, записало цифры в файл
}
« Последнее редактирование: 06.10.2016, 15:56:43 от makslm »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод отладочной информации системного плагина

Автор effrit

Ответов: 23
Просмотров: 2279
Последний ответ 02.10.2018, 10:24:46
от effrit
Объясните как работает MVC Override с помощью плагина Joomla!

Автор kens1n

Ответов: 8
Просмотров: 2340
Последний ответ 09.10.2016, 11:00:25
от robert
Нужна помощь по PHP

Автор pahtab

Ответов: 2
Просмотров: 1572
Последний ответ 26.03.2016, 08:12:43
от b2z
Продолжая тему разработки контент плагина, сорянчик))

Автор IvanTopor

Ответов: 7
Просмотров: 1468
Последний ответ 26.02.2016, 16:27:18
от b2z
[Решено] Создание контент плагина

Автор IvanTopor

Ответов: 4
Просмотров: 2219
Последний ответ 26.02.2016, 13:10:37
от IvanTopor