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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Доброго времени вам!

Может кто-то сталкивался и решал подобное. Быстрый поиск не дал результатов.
Суть: есть свой компонент и модуль к нему. Модуль выводит фильтрацию. Появилась необходимость привязывать модуль к страницам конечных категорий.

Ссылка на категорию это последнее вложение в меню, а отсюда следует, то что все что пойдет дальше этой ссылки будет иметь все привязки модулей.

Так вот в выводе товара этот модуль не нужен. Как избавиться от него? А точнее, от содержимого я избавился, а вот место под модуль все-равно отрезается.

Можно ли это решить не влезая в шаблон?
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
А точнее, от содержимого я избавился
А как именно избавились?

Такое нередко приходится делать. Если не хочется ставить условия в общем шаблоне, то можно в макете самого модуля. Поставить проверку до вывода контента модуля, если его не должно быть, то делать return false; (работает в любом подключаемом пхп-скрипте). А чтоб не было "пустого места" вместо модуля - выводите его без обертки. Для этого в настройках модуля надо выбрать стиль none.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
А как именно избавились?
Вот так в точке входа
Код
// No direct access
defined( '_JEXEC' ) or die;
$app = JFactory::getApplication();
$input = $app->input;
if ($input->get('view','')=='cake') return false;


Попробовал ваш совет со стилем none не помогло
Остается вот такой вывод в любом случае
Код
<div id="sp-left" class="col-sm-3 col-md-3"><div class="sp-column custom-class"></div></div>
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
Остается вот такой вывод в любом случае
Похоже, что это верстка левой колонки из шаблона. В этом случае из модуля ее не вырезать. Там обычно стоит проверка на количество модулей в позиции. А ваш модуль, хоть и не выводит ничего, но засчитывается, что он там есть. Можно изменить проверку на наличие контента в позиции, а не на количество, но это уже изменения в шаблоне.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Нашел вот такое
Код
if ($this->countModules( 'your-module-position' ) && modulesHaveContent( 'your-module-position' )) { /* The code you want */ }

function modulesHaveContent( $position ) { 
    $modules = JModuleHelper::getModules( $position );

    foreach($modules as $module) {
        if (!empty($module->content)) {
            $moduleHasContent = true;
        }
    }

    return $moduleHasContent;
}

Но это в шаблоне... Видимо туда пойдем
Спасибо за помощь +
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
Попробуйте вот такую конструкцию:

Код
if ($this->countModules( 'your-module-position' ) && !empty( $positionContent = trim(JHtml::_('content.prepare', '{loadposition your-module-position}')) )) { echo $positionContent; }

Это предотвратит двойное выполнение модулей. И еще я не уверен, что $module->content будет пустым, если в макете использован return false;
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Попробуйте вот такую конструкцию:

Код
if ($this->countModules( 'your-module-position' ) && !empty( $positionContent = trim(JHtml::_('content.prepare', '{loadposition your-module-position}')) )) { echo $positionContent; }

Это предотвратит двойное выполнение модулей. И еще я не уверен, что $module->content будет пустым, если в макете использован return false;
Огромное спасибо! Ваш код работает в отличии от того что привел я.
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
ну и отлично  *DRINK*
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Спрошу еще в рамках топика. Мой шаблон helix3. Функции шаблона вынесены в системный плагин. Функция лежит в /plugins/system/helix3/core/helix3.php
Класс Helix3, функция countModules($position)

Как правильно переопределить функцию?

Вот такой вот плагин не прокатывает. С переопределением мало я работал пока.
Код
class plgSystemCountmoduleshelix3 extends Helix3
{
//Count Modules
public static function countModules($position)
{
$doc = JFactory::getDocument();
//Дополнительно проверяем содержимое
return (  ( $doc->countModules($position) && !empty( $positionContent = trim(JHtml::_('content.prepare', '{loadposition '.$position.'}')) ) ) or self::hasFeature($position));

}
}
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
В плагин счетчика модулей лучше не встраивать ту конструкцию. Потому что, во-первых, счетчик будет считать неправильно (пустой модуль ведь все равно модуль и должен быть посчитан). А во-вторых, у вас при таком подходе генерация модулей будет происходить дважды - сперва в счетчике, затем в шаблоне.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
В плагин счетчика модулей лучше не встраивать ту конструкцию. Потому что, во-первых, счетчик будет считать неправильно (пустой модуль ведь все равно модуль и должен быть посчитан). А во-вторых, у вас при таком подходе генерация модулей будет происходить дважды - сперва в счетчике, затем в шаблоне.
Это и есть функция шаблона. Он лезет к своим плагинам и там обсчитывает видимо. шаблон - helix3
*

sivers

  • Живу я здесь
  • 2619
  • 363 / 0
Это и есть функция шаблона. Он лезет к своим плагинам и там обсчитывает видимо. шаблон - helix3
Это понятно. Но вот эта штука:
Код
JHtml::_('content.prepare', '{loadposition '.$position.'}')
она запускает обработчик контента (плагин) для подготовки к выводу, который находит в тексте фрагменты {loadposition} и подгружает/выполняет модули этих позиций. Возвращает готовый контент, сгенеренный этими модулями. Его остается только вывести уже. Если делать это внутри функции-счетчика, а счетчик вернет только число модулей (или 0 если контента нет), то потом для вывода контента модулей этой позиции придется еще раз проделать всю работу по генерации контента модулей, только уже вне функции. А некоторые модули при этом бывают ресурсоемкими... Двойное выполнение кода на странице - крайне нежелательно. А тут еще и неизвестно заранее какие модули будут выведены в позицию. Поэтому лучше не использовать такую конструкцию внутри счетчика. В шаблоне можно. И то желательно потом вместо позиции модулей вывести именно то, что вернула функция.

Для вашей же задачи, возможно, подойдет другой способ. Вывести модуль в макете категории (через тот же {loadposition}), а в карточке товара его не выводить. Но это если структура верстки позволяет.
Еще проще - добавить проверку на параметр view и, если обнаружено, что открыта карточка товара, то уменьшать счетчик модулей на 1. Но это будет костыль для конкретной задачи.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Счётчик полей в админке модуля

Автор zeus07

Ответов: 9
Просмотров: 1613
Последний ответ 28.06.2021, 13:40:31
от zeus07
Проблема вызова модели компонента из модуля

Автор platonische

Ответов: 1
Просмотров: 1120
Последний ответ 24.04.2020, 18:32:32
от platonische
Pagination компонента и данные из формы модуля

Автор platonische

Ответов: 4
Просмотров: 1455
Последний ответ 29.01.2020, 11:32:43
от mardok
Доступ к переменной модели из модуля

Автор platonische

Ответов: 18
Просмотров: 2986
Последний ответ 11.01.2020, 22:21:42
от robert
com_ajax использование модуля

Автор Wertos

Ответов: 32
Просмотров: 6576
Последний ответ 24.11.2019, 18:33:57
от CB9T