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

maxakagaret

  • Новичок
  • 9
  • 0 / 0
Приветствую собратьев разработчиков.
На днях решил попробовать свои силы в создании собственного простенького модуля - слайдер статей. Все элементарно, модуль берет все статьи из заданной категории и выводит по 3, с пагинаторами сверху и снизу. Javascript-ом производится переключение страниц. Что-то вроде LOF article slider. Проблем не возникло.
Потом я решил использовать AJAX. При клике на пагинаторе посылается ajax-запрос на сервер, берутся только нужные статьи, например, в количестве 3 штук. И в итоге отображаются на странице. Все делается с помощью Mootools.
Код javascript:
Спойлер
[свернуть]

Код обработчика запроса:
Спойлер
[свернуть]
Файл reqest.php читает параметры из $_POST, формирует запрос к БД, получает статьи, формирует вывод.
Если вначале файла имеется "defined('_JEXEC') or die('Restricted access');"
то получаю сообщение "Restricted access". Без нее "Class 'JFactory' not found".
Был бы признателен опытным разработчикам, если бы они ткнули меня носом в мою глупую ошибку неправильного использования AJAX.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Цитировать
Если вначале файла имеется "defined('_JEXEC') or die('Restricted access');"
то получаю сообщение "Restricted access". Без нее "Class 'JFactory' not found".
что есть естественно. Просто к файлу обратиться не достаточно, т.к. фреймворк сам по себе в нем не подключиться)
Нужно
либо подключать фреймворк в этом файле
либо делать через компонент
либо делать через компонент com_ajax, если используется 3.2

Документация по всему можно найти в интернете или на форуме

А вообще оригинальный способ использования пагинации)
Гораздо эффективней и производительней будет использования оператора LIMIT в мускуле
« Последнее редактирование: 25.02.2014, 13:25:42 от SmokerMan »
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
либо подключать фреймворк в этом файле
либо делать через компонент
либо делать через компонент com_ajax, если используется 3.2

Первое предложение, на мой взгляд, оптимальное, именно им и воспользовался, спасибо за подсказку.
Писать компонент для чего-то с функциональностью на уровне модуля на мой взгляд не практично, как и пользоваться встроенной компонентой.

А вообще оригинальный способ использования пагинации)
Гораздо эффективней и производительней будет использования оператора LIMIT в мускуле

Как раз в обработчике ajax-запроса мускул-запрос формируется с использованием LIMIT X, Y

Как ни странно, но способ родился из практических нужд. Точнее из требований ББ (цитата "И чтобы вот тут вот статьи можно было переключать типа как Flash ну знаешь там с таким затуханием а потом снова так растухает. И чтоб и сверху и снизу можно было щелкать" (оригинальная орфография и пунктуация сохранены))  :dry:
Вот последнее то как раз и вынудило самому браться за код, ибо в готовых модулях такого способа навигации найти не смог, а переписывать чужой джава код, переработанный компрессором не захотелось.
А потом пришла идея с аяксом.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Цитировать
Писать компонент для чего-то с функциональностью на уровне модуля на мой взгляд не практично, как и пользоваться встроенной компонентой.
Ну да, а фреймворк подключать офигенно практично ;) Имхо, встроенный компонент как раз таки самый практичный вариант. А если завтра один из файлов фреймворка перенесут, что делать будете?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Как раз в обработчике ajax-запроса мускул-запрос формируется с использованием LIMIT X, Y
возможно я слепой, но где в этом запросе LIMIT?
        $requestQuery = "SELECT * FROM #__content WHERE state=1 AND catid='".$catID."' ORDER BY created ASC";
        $db->setQuery($requestQuery);
        $requestResult = $db->loadObjectList();
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
Ну да, а фреймворк подключать офигенно практично ;) Имхо, встроенный компонент как раз таки самый практичный вариант. А если завтра один из файлов фреймворка перенесут, что делать будете?
Хороший вопрос. Подумаю над этим. Тем более что столкнулся с подобной ситуацией, используя пакет roksproket. При переходе на J! 3.2.2 c 3.2.1 (как раз в день выхода 3.2.2) получил веселое падение всего сайта. Тыкнул на кнопку обновления не подумав =)
Кстати, должен заметить, что столкнулся с некоторыми трудностями в использовании com_ajax - в позиции модуля отображается страница сайта с пустым модулем. Конечно, скорее всего сделал что-то неправильно, хотя следовал инструкции.
возможно я слепой, но где в этом запросе LIMIT?
Нет, вы не слепой. Просто на тот момент я нацелен был именно на реализацию функциональности аякса, потому просто скопипастил "классический" запрос. Кстати, столкнулся со странной проблемой - мне не удалось сформировать запрос на получения конкретных полей, если среди них присутствует fulltext статьи. Текст ошибки говорит, что в мускул запросе ошибка после fulltext. Убираю fulltext из запроса - все нормально, пишу звездочку - тоже все нормально, при этом в полученном массиве [fulltext] имеется.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Цитировать
Кстати, должен заметить, что столкнулся с некоторыми трудностями в использовании com_ajax - в позиции модуля отображается страница сайта с пустым модулем. Конечно, скорее всего сделал что-то неправильно, хотя следовал инструкции.
http://ссылка вырезана, так как домен распространяет вирусы/blog/joomla/ajax-v-joomla-3-2
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
http://ссылка вырезана, так как домен распространяет вирусы/blog/joomla/ajax-v-joomla-3-2
Вот именно этим и пользовался. И скачивал пример, и делал все как там, и получал именно тот результат, о котором писал раньше.
Кстати, подумал добавить поддержку отображения материалов из К2 и задался вопросом - а есть ли для К2 аналогия функции
ContentHelperRoute::getArticleRoute($requestResult[$i]->id, $requestResult[$i]->catid)?

*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вопрос по К2 не в тему.

Цитировать
в позиции модуля отображается страница сайта с пустым модулем.
Эмм... А инфа точно приходит с запроса? Если вывести результат запроса через print_r() в хелпере, модуль все равно пустой?
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
Эмм... А инфа точно приходит с запроса? Если вывести результат запроса через print_r() в хелпере, модуль все равно пустой?
Нашел ошибку - неправильно класс в хелпере назвал.
Можно вернуться к обсуждению практичности подключения фрэймворка. Но ведь и компонент завтра могут удалить, разве нет? Или изменить специфику его использования.
« Последнее редактирование: 26.02.2014, 17:29:13 от maxakagaret »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
Re: Вопрос об использовании AJAX в модуле
« Ответ #11 : 26.02.2014, 18:05:47 »
Могут, но это теперь уже маловероятно.
А если смотреть с точки зрения нагрузки на сервер? Какой способ более ресурсоемкий - подгрузка фреймворка или использование компоненты?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

maxakagaret

  • Новичок
  • 9
  • 0 / 0
Re: Вопрос об использовании AJAX в модуле
« Ответ #13 : 26.02.2014, 18:16:17 »
Большое спасибо за все ответы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Подключение сторонних библиотек в модуле J4

Автор denism300

Ответов: 6
Просмотров: 1206
Последний ответ 30.12.2022, 19:58:09
от denism300
Вопрос на засыпку

Автор Aleks.Denezh

Ответов: 5
Просмотров: 1406
Последний ответ 10.03.2019, 23:15:22
от Aleks.Denezh
Рекурсия в модуле

Автор alpha_ru

Ответов: 19
Просмотров: 2326
Последний ответ 20.07.2017, 19:25:11
от passer
Дополнительное поле в модуле

Автор paskal

Ответов: 21
Просмотров: 3091
Последний ответ 27.08.2016, 00:59:55
от robert
СЕСИЯ при AJAX запросе к php файлу

Автор avantyrist

Ответов: 15
Просмотров: 3405
Последний ответ 20.12.2015, 14:13:43
от robert