Новости 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 Ответов
  • 1671 Просмотров
*

frenzy

  • Захожу иногда
  • 63
  • 1 / 0
Нашел тему: http://joomlaforum.ru/index.php?topic=128413.0
Но проблема в том, что если поменять site.ru/templates/system/html/modules.php, то это будет глобальное изменение, а мне нужно, чтобы заголовки некоторых модулей были h3, а некторых h2.
Подскажите пожалуйста, как можно так сделать?
Есть плохая идея захардкодить if, который будет проверять по суффиксу и в зависимости от этого формировать заголовок, но ведь так делать не очень хорошо.
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Но проблема в том, что если поменять site.ru/templates/system/html/modules.php, то это будет глобальное изменение

Так вы изменяйте не в системном шаблоне, а просто скопируйте этот файл в шаблон по умолчанию...
...
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Есть плохая идея захардкодить if, который будет проверять по суффиксу и в зависимости от этого формировать заголовок, но ведь так делать не очень хорошо.
Почему не хорошо? И как хорошо тогда в вашем понимании? Зайдите например в шаблон beez5 и посмотрите как там стиль для модуля формируется. В шаблоне задается стиль и уровень для заголовков(beezDivision и headerLevel):
Код: html4strict
<jdoc:include type="modules" name="position-X" style="beezDivision" headerLevel="3" />
в templates\beez5\html\modules.php задается функция для стиля beezDivision:
Код: php
function modChrome_beezDivision($module, $params, $attribs) {
   $headerLevel = isset($attribs['headerLevel'])? (int) $attribs['headerLevel'] : 3; //уровень для заголовков из атрибута
   ...//какой-то там еще HTML
   <?php if ($module->showtitle) { ?> <h<?php echo $headerLevel; ?>> ... //сюрприз! в зависимости от headerlevel формируется <hx> тег заголовка
   ...
}
Разработчики видимо сделали не хорошо раз так жестко захордкодили заголовки) Я все же рекомендую вам делать аналогичным образом. Только $headerLevel брать не из атрибутов а из параметров модуля. А они все лежат в $params.
интернет-блог: http://websiteprog.ru
*

frenzy

  • Захожу иногда
  • 63
  • 1 / 0
Так вы изменяйте не в системном шаблоне, а просто скопируйте этот файл в шаблон по умолчанию...
Что значит не в системном шаблоне? Вопрос же чтоб в одном и том же шаблоне заголовок модуля можно было выводить в h2 и h3. куда именно нужно этот файл скопировать в конкретный шабло? Спрашиваю ради интереса, т.к. проблемы это не решает.

zomby6888, плохо это потому, что... блин, как объяснить... Костыль получается, работающий в зависиомсте от получаемых пользовательских данных из базы. А в твоем примере вроде как  headerLevel прописан так же жестко в шаблоне. Т.е. из админки на него не повлиять. Впрочем это вариант: в index.php для отдельных позиций назначить так же
Код
<jdoc:include type="modules" name="topRight" style="xhtml" headerLevel="3" />
- или другие атрибуты
и соответветственно в modules.php дописать такие же проверки. Вроде это же встроенный функционал и нигде больше правок не надо?

Впрочем я вычитал другйо хитрый вариант: создается альтернативный макет вывода. В моем случае:
Код
site.ru\templates\template\html\mod_custom\header2.php
и внутри дописывается перед <div...
Код
<h2><?php echo $module->title; ?></h2>
Ну а в админке соответственно опция "скрыть заголовок". Этот вариант более универсален в плане того, что на одну позацию можно вывести и h2 и h3 и что еще захочешь, а если нужно просто скрыть заголовок, то выбирается стандартынй макет.

P.S. Что характерно мне пригодилось больше решение zomby6888, т.к. выяснилось, что проще поменять заголовки у других модулей, а в тех модулях почему-то небыло предусмотрено альтернативных шаблонов в админке, но они как раз все на одну позицию выводились.
« Последнее редактирование: 23.09.2014, 18:18:13 от frenzy »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Костыль получается, работающий в зависиомсте от получаемых пользовательских данных из базы. А в твоем примере вроде как  headerLevel прописан так же жестко в шаблоне. Т.е. из админки на него не повлиять.
Вы невнимательно читаете, вам  вовсе необязательно headerlevel получать из атрибута. Все что вам требуется это добавить соответствующий парметр в XML файле модуля (назовете его headerlevel например). В шаблоне прописать:
Код: php
<jdoc:include type="modules" name="topRight" style="сustom"/>
Далее создать в шаблоне в папке HTML файл modules.php с таким примерно содержимым:
Код: php
defined('_JEXEC') or die;

function modChrome_custom($module, $params) {
   $headerlevel = $params->get('headerLevel');
   echo "<h$headerlevel>".$module->title."</h$headerlevel>".$module->content;
}

Впрочем я вычитал другйо хитрый вариант
Вот это больше напоминает костыль. Будет работать только для mod_custom к тому же. Используя параметр $module->showtitle можно создать и более универсальное решение заменив в моем примере строку $headerlevel = $params->get('headerLevel'); на $headerlevel = $module->showtitle ? 2 : 3;
« Последнее редактирование: 23.09.2014, 18:30:52 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

frenzy

  • Захожу иногда
  • 63
  • 1 / 0
zomby6888, что озачает ? 2 : 3; ? Так же из админки же можно выставить showtitle только в 0 и 1 - получается админку нужно будет пилить. Или у форм создания в админке тоже есть шаблоны?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Это конструкция означает что если $module->showtitle отличен от нуля то в $headerlevel будет присвоено 2, в противном случае будет присвоено 3. Соответственно для стиля custom уровень заголовка будет <h2> или <h3> в зависимости от параметра "показывать заголовок". IMHO не самое логически правильное решение, я его привел как аналогию предыдущему и оно не требует доп. параметров в админку модуля добавлять.

По мне так лучше добавить какой нибудь парметр в модуль ну или на основе какого нибудь другого парметра headerlevel формировать. По тому же суффиксу например. Например если суффикс будет headerlevel-x (x-это уровень):
Код: php
...
function modChrome_custom($module, $params) {
    $sfx = htmlspecialchars($params->get('moduleclass_sfx'));;
    $classes = explode(' ', $sfx);
    foreach( $classes as $classname )
    {
          if ( strpos($classname, 'headerlevel')!== false ) {
               $headerlevel = array_pop(explode('-', $classname));
          }
    }  
    echo "<h$headerlevel>".$module->title."</h$headerlevel>".$module->content;
}
...
Чуть больше кода но зато можно использовать гибридные суффиксы например: "classname1  headerlevel-2"
« Последнее редактирование: 24.09.2014, 15:38:11 от zomby6888 »
интернет-блог: http://websiteprog.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать что бы заголовки статей на сайте были в теге <h1>?

Автор MultiMatrix83

Ответов: 10
Просмотров: 5438
Последний ответ 27.04.2022, 15:56:45
от MultiMatrix83
Сделать отступ справа и слева для баннера

Автор MultiMatrix83

Ответов: 9
Просмотров: 1916
Последний ответ 19.08.2019, 16:55:43
от MultiMatrix83
Управление модулем из другого модуля

Автор capvic

Ответов: 7
Просмотров: 1701
Последний ответ 27.05.2019, 11:46:21
от capvic
Можно ли извлечь материалы из бэкапа?

Автор Cherr23

Ответов: 3
Просмотров: 3407
Последний ответ 14.12.2018, 07:09:04
от lexxbry
Как сделать так чтобы данные о клике на кнопку переходили в Метрику?

Автор dan4ik

Ответов: 3
Просмотров: 2757
Последний ответ 30.11.2018, 09:38:33
от Geinado