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

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
я дописываю одни компонент и стоит задача вывести информацию о авторе объявления. по дефолту у меня есть id этого автора. имя, почту можно вытянуть из $user. а полная информация о пользователе записывается в $contact, то есть телефон, адрес, сайт и т.п.
как получить к ней доступ? id то разные у $user и $contact
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Под user и contact имеются в виду jos_users и jos_contact, я правильно понял?
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Тогда вопрос к вам - если вы писали расширение, то по какому принципу вы вводите данные в таблицу jos_contact, такой таблицы по дефолту нет, то есть вы ее создавали?
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
я не сам пишу расширение, а дописываю jea (joomla estate agency). но данные в jos_contact_details я ввел в админке: создал несколько пользователей, и в компоненте контактов ввел нужную информацию и привязал контакты к созданным ранее юзерам. все, информация уже в базе. теперь вопрос как ее оттуда достать и вывести в нужном компоненте?
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Ааааа, так бы и сказали что это таблица jos_contact_details, а то непонятно же. В этой таблице есть ячейка user_id - к ней и привязывайтесь
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
не выходит.
получается у меня есть id юзера - это переменная created_by. из нее я получаю доступ к jos_users, вот таким путем:

  <?php if (is_numeric($this->row->created_by)): ?>
        <?php $agent =& JFactory::getUser($this->row->created_by); ?>

и далее могу вывести информацию которая хранится в юзерс, а это имя, почта. а нужная мне информация уже записана в jos_contact_details. я так понимаю мне нужно переформулировать запрос чтобы брать информацию из jos_contact_details. но как это сделать? ))
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Сделать запрос в БД в таблицу jos_contact_details и указать по какому параметру выбирать оттуда строку - по user_id, который равен вашей переменной $this->row->created_by
Поищите в сети - там есть указания как делаются такие запросы.
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
нагуглил один пример:
       
$db =& JFactory::getDBO();
$sql = "SELECT * FROM  #__contact_details";
$result =  $db->loadResultArray(5);
foreach ($result as  $row)
{
echo($row."<br>");
}

но он почему-то опять таки берет данные из jos_users. вобще не могу понять чего это, я же указал в какой ветке искать
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
$result =  $db->loadResultArray(5);
Не могу понять что за 5 в скобках
$result =  $db->loadResultArray();
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
5 строка таблицы. тоесть именно это форма выводит 5й параметр таблицы jos_users, а именно переменную группы пользователя. но почему именно юзерс, я не понимаю. даже если удалить строку поиска $sql = "SELECT * FROM  #__contact_details"; всеравно в итоге выводится переменный из юзерс

может я неправильно запрос написал?
*

nixsystem

  • Захожу иногда
  • 207
  • 10 / 0
Если в таблицах jos_users и jos_contact_details есть данные принадлежащие одному объекту (в данном случае пользователю) то толжно быть поле по которому эти данные связаны (связь один ко многим). Вот по этому полю можно вытащить.
Если этой связи между таблицами нет - то никак это не вытащить, потому что невозможно будет установить какому user'у из jos_users какой contact из jos_contact_details соответствует.

За эту связь как раз и отвечает поле user_id. Чтобы получить искомые данные нужно выполнить следующий запрос
Код: sql
SELECT * FROM  #__contact_details WHERE user_id = 48
В контексте Joomla это будет выглядеть так
Код: php
//$user_id - содержит id нужного пользователя полученный из jos_users
$db = JFactory::getDBO();
$sql = "SELECT * FROM  #__contact_details WHERE user_id = ".$user_id;
$result =  $db->loadResultArray;
foreach ($result as  $row)
{
echo($row."<br>");
}
Этот код построчно выведет все контакты пользователя, если такой контакт не один.
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Да, а я совсем не заметил что у вас WHERE отсутствует, прошу извинить, еще опыта маловато. :)
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
спасибо, код работает, но всеравно информация берется из jos_users и поле "$sql = "SELECT * FROM  #__contact_details WHERE user_id = ".$user_id;" воообще игнорируется. даже без него выдается тот же результат, из джос_юзерс.

как можно проследить как работает запрос? или может это у меня на странице где-то ошибка? или компонент изначально кривой?
*

nixsystem

  • Захожу иногда
  • 207
  • 10 / 0
Конкретный пример запроса и кода его сопровождающего приведите пожалуйста, тогда будет видно что откуда - куда и почему.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
$db = JFactory::getDBO();
$sql = "SELECT * FROM  #__contact_details WHERE user_id = ".$user_id;
$db->setQuery($sql);
$result =  $db->loadResultArray;
foreach ($result as  $row)
{
var_dump($row);
}
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
именно с $db->setQuery($sql); выдает ошибку Warning: Invalid argument supplied for foreach()
еще у одного человека та же самая беда с этим компонентом. я делаю вывод, значит где-то есть какой-то глобальный параметр, который задает этот путь по умолчанию, откуда берутся потом данные (в данном случае это джос_юзерс). придется перелопатить весь компонент.
на что обратить внимание? я прав в теории о глобальном параметре?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Да какой параметр. sql-запрос неправильный. Не вытаскивает данные из базы. Почему сам выясняй. Отладь запрос на чем нибудь. Инструментов для этого куча.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
подскажи пожалуйста, как отладить, что за инструменты?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
$db = &JFactory::getDBO();
 $db->setQuery('SELECT * FROM #__contact_details WHERE user_id = '.$user_id);
 $article_id = $db->loadObjectList();
 или
 $article_id = $db->loadResultArray();

Надеюсь не ошибся
*

Aventurier

  • Захожу иногда
  • 127
  • 16 / 0
Кстати, может я упустил, откуда взялась переменная $user_id ? У вас вроде $this->row->created_by
*

chikvito

  • Захожу иногда
  • 60
  • 2 / 0
отладка и вправду помогла, у меня два лишних пробела было в запросе))))

Код
$db->setQuery('SELECT * FROM #__contact_details WHERE user_id = '.$user_id);

а нужно было
Код
 user_id='.$user_id);

всем спасибо за помощь)))
« Последнее редактирование: 03.04.2012, 04:59:53 от chikvito »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

модуль Newsflash: как вывести дату?

Автор joomloid

Ответов: 5
Просмотров: 12611
Последний ответ 03.04.2019, 12:25:27
от pH43
Как вывести все категории всех разделов на одной странице?

Автор genius

Ответов: 4
Просмотров: 6631
Последний ответ 22.01.2019, 08:38:30
от genius
Как вывести список новых статьи?

Автор maxo127

Ответов: 4
Просмотров: 4857
Последний ответ 16.06.2018, 02:44:50
от maxo127
Вопрос о правильности разметки тегами на странице

Автор dpy1995

Ответов: 10
Просмотров: 9032
Последний ответ 09.01.2018, 12:49:25
от kungurskiy
Появление элемента на странице которого не должно быть - откуда?

Автор sergey113

Ответов: 1
Просмотров: 3119
Последний ответ 29.03.2016, 02:08:24
от sergey113