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

popoff17

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Здравствуйте!
В компоненте отправляю данные из формы. отправляю ajax'ом, т.е. получается, мне нужно вызвать отдельный файл, который будет работать с бд
я еще плохо знаком с "внутренностями" Joomla, потому пользуюсь примерами. Сделал так:
Код
<?
//код из index.php
define('_JEXEC', 1);
require_once 'includes/defines.php';
require_once 'includes/framework.php';
//код из примера в инете
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('user_id', 'profile_type', 'profile_value', 'ordering'));
$query->from('#__user_profiles');
$query->where('profile_type LIKE \'custom.%\'');
$query->order('ordering ASC');
$db->setQuery($query);
$results = $db->loadObjectList();
?>

но при вызове этого файла (site.ru/test.php) я вижу лишь сообщение:
No configuration file found and no installation code available. Exiting...

т.е. вопрос по сути: какие файлы нужно подключить к отдельному файлу, чтобы работать из него с БД и/или отправкой почты?
и как указать пути к этим файлам, если мой файл (test.php) будет лежать в папке компонента?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Что-то Вы усложняете - вам не нужен отдельный файл! Если Вы пишите свой компонент, то просто добавьте этот код в метод модели (без всяких там require_once), а вызов этого метода в контроллер.

ajax-запрос -> controller -> модель -> controller
*

popoff17

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Что-то Вы усложняете - вам не нужен отдельный файл! Если Вы пишите свой компонент, то просто добавьте этот код в метод модели (без всяких там require_once), а вызов этого метода в контроллер.

ajax-запрос -> controller -> модель -> controller

спасибо за ответ. я просто еще не разобрался как работает модель и контроллер (тут можно надо мной посмеяться :) ) и сделал просто вьювер с одной только страницей. думал аяксом вызвать файл будет проще в моем случае...
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Ну а как Вы компонент делаете? Что-то не пойму... У Вас в компоненте только представление с формой и все?
*

popoff17

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Ну а как Вы компонент делаете? Что-то не пойму... У Вас в компоненте только представление с формой и все?

да. я не понял сразу как используется модель и как контроллер переключает задачи, когда есть таск ($_GET['task']="mail"), потому из примера убрал модель оставив только точку входа, контроллер и представление, в котором содержится форма. думал в форме submit заменить на button и вызывать функцию, которая будет отправлять форму аяксом...

Давайте я вопрос изменю тогда, если вы не против мне подсказать как правильно было бы сделать?

взять за пример Вашу статью: http://joomlablog.ru/dokumentatsiya/dlya-razrabotchika/sozdanie-komponenta-dlya-joomla-2-5/225-chast-2-dobavlenie-mvc-i-logirovaniya

т.е. есть контроллер, он пустой, по умолчанию  (если нет таска, как я понял) выполняет просто отображение представления.. и т.д.
я же правильно понял - если появляется таск, то контроллер должен вызвать другое представление, соответственно другую модель и т.д.?
как тогда обработать таск? и как должен быть написан action в форме? так, например: action="?task=mail" ?

мой компонент если отличается от вашего примера - то наверное парой-тройкой строк. я тут его выложил: http://yadi.sk/d/wzpJ7KddJaeXR

или я вообще все поперепутал?((
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Да не, все правильно. Например, в форме Вы делаете:

Код: javascript
jQuery.ajax({
    type: 'POST',
    url: 'index.php?option=com_helloworld&task=profiles.getList&format=raw&' . JUtility::getToken(). '=1'
    data: {// тут данные},
    success: function(data){
               // тут что-то там делаем если все ок
    }
});

Обратите внимание на task=profiles.getList - вот так и передается вызов контроллера и его задача. То есть в нашем случае получается контроллер profiles и задача getList. Тогда в контроллере profiles создаете метод getList() в котром подключаете модель и забираете из неё данные:

Код: php
public function getList()
{
JSession::checkToken('request') or jexit('Invalid Token');

$model = $this->getModel();
$result = $model->getProfilesList();

        // дальше что-то делаем с результатом
}
*

popoff17

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Например, .............
вот более-менее теперь понял что к чему, буду пробовать. Спасибо большое!!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как в JS работать с параметрами XML-файла?

Автор Vasisdas

Ответов: 8
Просмотров: 1410
Последний ответ 13.09.2019, 10:32:10
от beliyadm
СЕСИЯ при AJAX запросе к php файлу

Автор avantyrist

Ответов: 15
Просмотров: 3403
Последний ответ 20.12.2015, 14:13:43
от robert
Отправка файла на email

Автор Charlottas

Ответов: 5
Просмотров: 1523
Последний ответ 30.11.2014, 13:14:41
от Charlottas
Модуль обратной связи AJAX

Автор AlekVolsk

Ответов: 61
Просмотров: 5789
Последний ответ 07.09.2014, 13:22:35
от AlekVolsk
[Решено] Русский язык в AJAX.php

Автор Hishchnik

Ответов: 15
Просмотров: 2645
Последний ответ 10.06.2014, 19:03:34
от Hishchnik