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

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Доброго времени суток
Столкнулся с проблемой " если включен плагин "Профиль пользователя" он в базу вносит данные в ковычках
а потом мненадо вывести их и они опять же выводятся в ковычках
подскажите может кто знает где вставляются эти ковычки в плагине Профиль пользователя
я так подозреваю что гдето в файле /plugins/user/profile/profile.php
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Вывод полей из Профиль пользователя ?

да оно только там его всё же немного по другому сделали
написали свои запросы в базу и там определённая сортировка
ну вот проблема в том что в базу данные вносятся в "" кавычках, а потом когда делается вывод они так же и выводятся
+ ещё есть проблема там есть поле отвечающее за регион страны по нему сортеруют и если его брать из базы в ковычках то не получается отсортировать правильно
По этому решили что лучше там где данные добавляются в базу не вносились в "" кавычках,
вот и вопрос где добавляются "" ?
Спасибо
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Немного не поняли. Я же привел пример как убрать кавычки.
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.
Или тогда показывайте свою часть кода. Что имеете и что нужно получить на выходе
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Немного не поняли. Я же привел пример как убрать кавычки.
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.
Или тогда показывайте свою часть кода. Что имеете и что нужно получить на выходе

Изначально я делал по вашему примеру но потом понадобилось отсортировать по статусу, для этого попросили помощи у другова программиста и вот что он сделал
Код
<?php 

    header("Content-Type: text/html; charset=utf-8");

    include  $_SERVER['DOCUMENT_ROOT'] ."/components/com_irb_selects/connect.php" ;
// Функция сортировки массива
function array_msort($array, $cols) {
    $colarr = array();
    foreach ($cols as $col => $order) {
        $colarr[$col] = array();
        foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
    }
    $eval = 'array_multisort(';
    foreach ($cols as $col => $order) {
        $eval .= '$colarr[\''.$col.'\'],'.$order.',';
    }
    $eval = substr($eval,0,-1).');';
    eval($eval);
    $ret = array();
    foreach ($colarr as $col => $arr) {
        foreach ($arr as $k => $v) {
            $k = substr($k,1);
            if (!isset($ret[$k])) $ret[$k] = $array[$k];
            $ret[$k][$col] = $array[$k][$col];
        }
    }
    return $ret;
}

// Функция вывода компаний
function region($country_id) {
    // Берем список Айдишников Клиентов, подходящих условию региона, лимит я убрал (а вдруг их больше 30?)
$res = mysql_query("SELECT * FROM `joss_user_profiles`
WHERE `profile_value` = ".$country_id, IRB_CONNECT );
// Пока есть Айдишники Клиентов, выполняем цикл
$counter = 0;
while($row = mysql_fetch_assoc($res)) {

// Определим название Клиента (Лимит тут не нужен, а если и нужен то не на 30 позиций а на одну)
$sqlcompany = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.company'", IRB_CONNECT );
// Пока есть имя - Кладем его в массив
while($rowcompany = mysql_fetch_assoc($sqlcompany)) {
// Декодируем
$name22=json_decode('"'.$rowcompany['profile_value'].'"');
$name11 = ($name22 ? $name22 : ($rowcompany['profile_value']) );
$clients[$counter]['name'] = $name11;
}

// Определим адрес Клиента (по лимиту то же самое что и выше)
$sqladres = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.address1'", IRB_CONNECT );
// Пока есть адрес - Кладем его в массив
while($rowadres = mysql_fetch_assoc($sqladres)) {
// Декодируем
$adres22=json_decode('"'.$rowadres['profile_value'].'"');
$adres11 = ($adres22 ? $adres22 : ($rowadres['profile_value']) );
$clients[$counter]['adres'] = $adres11;
}

// Определим телефон Клиента (лимит)
$sqlphone = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.phone'", IRB_CONNECT );
// Пока есть телефон - Кладем его в массив
while($rowphone = mysql_fetch_assoc($sqlphone)) {
$clients[$counter]['phone'] = $rowphone['profile_value'];
}

// Определим почту Клиента (лимит)
$sqlemail = mysql_query("SELECT `email` FROM `joss_users`
WHERE `id` = ".$row['user_id'], IRB_CONNECT );
// Пока есть почта - Кладем ее в массив
while($row2 = mysql_fetch_assoc($sqlemail)) {
$clients[$counter]['email'] = $row2['email'];
}

// Определим сайт Клиента (лимит)
$sqlwebsite= mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.website'", IRB_CONNECT );
// Пока есть сайт - Кладем ее в массив
while($rowwebsite = mysql_fetch_assoc($sqlwebsite)) {
$clients[$counter]['site'] = $rowwebsite['profile_value'];
}

// Определим статус Клиента
$sqlstatus= mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.status'", IRB_CONNECT );
// Пока есть сайт - Кладем ее в массив
while($rowstatus = mysql_fetch_assoc($sqlstatus)) {
$clients[$counter]['status'] = $rowstatus['profile_value'];
}
$counter++;
} // Закончили цикл
// Сортируем массив
$new_clients = array_msort($clients, array('status'=>SORT_ASC, 'name'=>SORT_ASC));
// Формируем вывод данных
$select .= "<div class='clients-list'>";
foreach ($new_clients as $item) {
if($item['status']==1) {
$status_class = "gold";
} elseif ($item['status']==2) {
$status_class = "silver";
} else {
$status_class = "";
}
$select .= "<div class='clients-item ".$status_class."'>";
if($item['name']) {
$select .= "<p><strong style=\"line-height: 25px;\">".$item['name']."</strong></p>";
}
if($item['adres']) {
$select .= "<p>Адрес: ".$item['adres']."</p>";
}
if($item['phone']) {
$select .= "<p>Телефон: ".$item['phone']."</p>";
}
if($item['email']) {
$select .= "<p>E-mail: ".$item['email']."</p>";
}
if($item['site'] !='' AND $item['site'] != 'NULL') {
$select .= "<p>Сайт: ".$item['site']."</p>";
}
$select .= "</div>";
// Плюс добаить картинку статуса в зависомотси от значения $item['status']...
}
$select .= "</div>";
    return  $select;

}
if(!empty($_POST['country_id']))
echo region($_POST['country_id']);
if(!empty($_POST['region_id']))
echo city1($_POST['region_id']);
?>


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

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Что такое статус?

http://www.agentplus.com.ua/partners#tabs1
вот сайт на котором это всё делается, там выпадающий список
если например выбрать Одесскую область то покажутся все пользователи этой области и там у одного есть статус Золотой
у этих пользователей я просто в базе по удалял "" кавычки и по этому они нормально выводятся НО теперь когда добавляешь новых они добавляются в "" кавычках
Варианта 2
1) что бы в базу поля добавлялись без "" кавычек или
2) переписывать запрос что бы он понимал что данные в "" кавычках - запрос по выводу приведён выше туда мы передаём ИД региона и он выбирает всех пользователей из этого региона
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.

я так понял эта вещь убирает кавычки в нутри переменной,
но а если там название фирмы  "ООО "Тест"" - и мне надо что бы выводилось только ООО "тест"  ? он же и эти кавычки уберёт я так понимаю
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Код: php-brief
echo trim($text, '"');
Так и не объяснил куда и как дополнительное поле статус вставил

Код
	$new_clients = array_msort($clients, array('status'=>SORT_ASC, 'name'=>SORT_ASC));
// Формируем вывод данных
$select .= "<div class='clients-list'>";
foreach ($new_clients as $item) {
if($item['status']==1) {
$status_class = "gold";
} elseif ($item['status']==2) {
$status_class = "silver";
} else {
$status_class = "";
}

Статус это дополнительное поле, по которому мы дополнительно сортируем
1 выводится у кого статус золото
2 серебро
3 все остальные
прикол в том что значение статуса тоже "" из за этого не получается отсортировать
Сейчас попробую выводить значения как ты написал с помощью trim
но такой вопрос а если он в начале и в конце не находит этого символа то нечего не удаляет правильно ?
Спасибо что помогаешь !
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
И ещё это всё что ты говоришь убирает при выводе из базы, а можно что бы они вообще не вносились в базу как то сделать ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод информации в личный кабинет пользователя

Автор zndm

Ответов: 17
Просмотров: 7878
Последний ответ 22.09.2022, 18:51:44
от beliyadm
Материалы пользователя (контакта)

Автор katerina37

Ответов: 5
Просмотров: 2385
Последний ответ 18.02.2022, 11:53:02
от katerina37
Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 68
Просмотров: 234973
Последний ответ 08.01.2021, 13:41:45
от artemnaum
Определение города пользователя по IP

Автор ria_andy

Ответов: 8
Просмотров: 8035
Последний ответ 05.12.2019, 15:20:40
от nikolaevevge
Как убрать index.php из ссылки в Joomla 2.5.4

Автор Sielena

Ответов: 56
Просмотров: 50518
Последний ответ 25.02.2019, 20:09:43
от zorlyglaiz