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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Всем привет!
Возникла необходимость сделать подписку на новые комментарии, во встроенном компоненте комментариев JoomShopping.
т.е. без использования сторонних расширений.

Интересует не само письмо и прочие кнопки, а именно функция отправки письма, при добавлении нового комментария.
По такому же принципу хочу реализовать письмо об изменении цены товара.
Функция сохранения комментария-отзыва
Код
function reviewsave()
Находится в сайт\components\com_jshopping\controllers\product.php

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

Версия Jshopping - 4.x
« Последнее редактирование: 04.08.2014, 00:13:22 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #2 : 04.08.2014, 14:38:43 »
)))) А, там есть типа "отписаться от рассылки" в письме?

Уведомление пользователю приходит после публикации админа, или как только оставлен?)
« Последнее редактирование: 04.08.2014, 14:54:05 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Подписка на комментарии в JoomShopping?
« Ответ #3 : 04.08.2014, 15:05:31 »
может просто JComments поставить? там все это есть и даже больше :)
JComments - если нужно принципиально хранить данные у себя
или любой сторонний сервис, который легко интегрируется в магазин, - в них тоже все эти дела настраиваются
« Последнее редактирование: 04.08.2014, 15:11:01 от ELLE »
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #4 : 04.08.2014, 20:08:40 »
Итак, в файле сайт\components\com_jshopping\controllers\product.php как указывалось ранее, добавил
Код
mail(email@email.ru, "тема", "текст");
Работает, но, естественно письмо идет сразу, до одобрения или публикации.

Пошел в админку, посмотрел какая функция отвечает за публикацию отзыва это
\administrator\components\com_jshopping\controllers\reviews.php
там три функции подряд начиная со строки 173:
Публикация
Код
    function publish(){
        $this->_publish(1);
        $this->setRedirect("index.php?option=com_jshopping&controller=reviews");
    }
Отключение
Код
    function unpublish(){
        $this->_publish(0);
        $this->setRedirect("index.php?option=com_jshopping&controller=reviews");
    }
И основная, которая публикует или отключает отзыв после определения параметра flag в первых двух.
Код
    function _publish($flag) {
        $jshopConfig = JSFactory::getConfig();
        $db = JFactory::getDBO();
        $cid = JRequest::getVar('cid');
        JPluginHelper::importPlugin('jshoppingadmin');
        $dispatcher = JDispatcher::getInstance();
        $dispatcher->trigger( 'onBeforePublishReview', array(&$cid, &$flag) );
        foreach ($cid as $key => $value) {
            $query = "UPDATE `#__jshopping_products_reviews` SET `publish` = '".$db->escape($flag)."' WHERE `review_id` = '".$db->escape($value)."'";
            $db->setQuery($query);
            $db->query();
            $review = JTable::getInstance('review', 'jshop');
            $review->load($value);
            $product = JTable::getInstance('product', 'jshop');
            $product->load($review->product_id);
            $product->loadAverageRating();
            $product->loadReviewsCount();
            $product->loadQuestCount();
            $product->store();
            #unset($product);
            unset($review);
        }
       
        $dispatcher->trigger('onAfterPublishReview', array(&$cid, &$flag) );
    }
Добавил отправку письма в цикл foreach, сначало в первую функцию, потом в третью, разница в том что в первой письма отправляются только при публикации, а втретьем идут и при отключении комментария.

Условие сделал такое, как уже сказал добавил в цикл который выше():
Код
	$query = "SELECT * FROM teyzk_jshopping_products_reviews WHERE subscribe=product_id"; // сравнение двух полей
$db->setQuery($query);
$list = $db->loadObjectList();
foreach ($list as $item) {
mail($item->user_email, "Тема письма", "текст");
}
Долго думал как сделать "кому отправлять", в итоге решил сделать условием совпадение номера подписки и номера товара.

Но, помогите перехватить переменную "номера товара" для которого публикуется отзыв, а то письмо отправляется все подписчикам на уведомления.

Переменная $cid в третьем коде, перехватывается из параметра url из админки при публикации как я понял, и передает id самого отзыва.


Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #5 : 04.08.2014, 20:22:35 »
ну так делайте запрос к #__jshopping_products_reviews, в котором вытащить product_id для нужного review_id
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #6 : 04.08.2014, 21:33:39 »
Спасибо! Что проникся в информацию..) Я пока обдумывал условия, видимо у меня перегрузилась "буферная память"..)))

Так как после твоего совета я минут 10 не мог понять что даст мне id товара и куда его надо вставлять..))

Все работает..)

Код:
Код
			//получение id товара по номеру отзыва
$query="SELECT product_id FROM teyzk_jshopping_products_reviews WHERE review_id='".$db->escape($value)."'";
$db->setQuery($query);
$prod_id=$db->loadResult();

//получение всех подписчиков полученного id товара
$query = "SELECT * FROM teyzk_jshopping_products_reviews WHERE subscribe=publish_type and product_id='$prod_id'";
$db->setQuery($query);
$list = $db->loadObjectList();

// отправка писем всем подписчикам этого товара
foreach ($list as $item) {
mail($item->user_email, "тема", "сообщение");
}
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #7 : 05.08.2014, 02:06:40 »
Сделал отписку от комментариев, добавив в письмо ссылку с параметрами.
Но, в обработчике вот такая схема подключения, можно ли сделать как то по joom'овски через $db = JFactory::getDBO();?
Файлы расположены в корне.
Код
<?php
   $prod_id = $_POST['product_id'];
   $link = mysql_connect('localhost', 'root', '') or die('Ошибка: Не удалось подключится к серверу БД.'.mysql_error($link));
   mysql_select_db('im', $link) or die('Не удалось подключиться к базе данных. '.mysql_error($link));
   $sql = "UPDATE teyzk_jshopping_products_reviews SET subscribe=0 WHERE subscribe='$prod_id;'";
   if(!mysql_query($sql))
   {echo '<p>Не вышло</p>';}
   else {echo '<p>Вышло</p>';}
?>
В принципе не обязательно, но безопасность как в таком случае..?

UPD Добавил проверку по email, а то так получается что отпишутся все пользователи которые подписались на этот товар.
« Последнее редактирование: 05.08.2014, 03:57:18 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #8 : 05.08.2014, 09:18:47 »
можно ли сделать как то по joom'овски через $db = JFactory::getDBO();?

у практически любого компонента есть возможность расширения его возможностей. в частности, в ЖШ можно создать свой \components\com_jshopping\controllers\mycontroller.php, метод, например, unsubscribe которого будет вызываться как site.com/index.php?option=com_jshopping&controller=mycontroller&task=unsubscribe
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #9 : 05.08.2014, 18:37:47 »
Хотел поместить туда простую функцию, для пробы, пишет ошибка - класс JshoppingControllertest не найден в jshopping.php строка 18

Но, в jshopping.php название класса заносится в переменную. Так где его типа "зарегистрировать" (мой класс) чтоли, чтоб определялся?

Или можно самый простой образец "mycontroller.php" с вытекающими..?
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #10 : 05.08.2014, 20:20:28 »
Цитировать
класс JshoppingControllertest не найден

имя файла контроллера не соответствует имени класса в этом контроллере.

mycontroller.php -> class JshoppingControllerMycontroller extends JControllerLegacy{
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #11 : 05.08.2014, 22:10:19 »
Названия то я скорректировал. Потом даже проскользнула мысль что класс mycontroller.php обязателен..))))

Оказываетcя после названия функции круглые скобки забыл (). И там всякие ошибки, и синтакс и тивариэйбл..
Спасибо, что заставил второй разок попробывать, я уже подумал что это либо очень сложно, либо где то ошибка. (В таких случаях мало кто думает что сам тупой..))))

И еще момент, как сделать, чпу url?

Максимум что у меня получилось это redirect на http://localhost/im/shop/unsubscribe.html там ниче не работает. Правил роутер, jshop_menu_list_item, и еще какие то файлы. Не выходит. Секрет есть?

Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #12 : 05.08.2014, 22:16:02 »
секрета нет. есть обычные правила роутинга :) вот только с какой целью для ссылки на аннулирование подписки делать чпу ?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #13 : 05.08.2014, 22:37:12 »
Хотя-бы для того чтобы знать на будущее.

Ведь каждый шаг это + к опыту, и самое главное к возможностям..
Ведь к пример раньше я знал только if и else, а сейчас знаю и unset  ^-^

UPD - И чтобы в адресе небыло com_jshopping..)
« Последнее редактирование: 05.08.2014, 22:45:51 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #14 : 06.08.2014, 09:21:30 »
Код: php
echo SEFLink('index.php?option=com_jshopping&controller=mycontroller&task=unsubscribe',0,1)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Подписка на комментарии в JoomShopping?
« Ответ #15 : 06.08.2014, 10:09:40 »
Либо создать скрытый пункт меню, тогда можно сделать ссылку красивее: http://localhost/unsubscribe.html :)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #16 : 07.08.2014, 18:46:46 »
В общем ничего не вышло.
Файл mycomponent.php
Код
defined..
jimport..
class JshoppingControllerMycomponent extends JControllerLegacy{
function unsubscribe(){
echo "Проверка<br>"
echo SEFLink('index.php?option=com_jshopping&controller=mycomponent&task=unsubscribe',0,1); // просто проверка ссылки - выводится
$this->setRedirect( SEFLink('index.php?option=com_jshopping&controller=mycomponent&task=unsubscribe',0,1));
}
}

Когда строка "$this->setRedirect( SEFLink(..." закомментирована доступ есть, и по SEF адресу, и по обычному.

А когда НЕ закомментирована ошибка ".... перенаправляет запрос на этот адрес таким образом, что он никогда не завершится. Ошибка выходит по обоим адресам, SEF и обычному.

Ну оно и понятно, постоянно выполняется запрос..  !
Никакие файлы не редактировал (роутер и пр.) все стандартное.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #17 : 07.08.2014, 19:01:28 »
Цитировать
В общем ничего не вышло.
а что должно было выйти?

Цитировать
Ну оно и понятно, постоянно выполняется запрос
непонятно, если все понятно, то что именно не понятно? естественно, редирект на самого себя дает бесконечный цикл.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #18 : 07.08.2014, 19:09:21 »
Ничего не вышло — всмысле ничего не получается..))

Так как сделать чтобы был однократный редирект?

Т.е. если ссылка такая index.php?option=com_jshopping&controller=mycomponent&task=unsubscribe то выполнять редирект.

если shop/mycomponent/unsubsribe то не выполнять, и все.

Почему в других (стандартных) контроллерах не редиректится постоянно, я не пойму..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #19 : 07.08.2014, 19:20:42 »
в других стандартных контроллерах в принципе не редиректится. какой в вашем случае смысл в редиректе? для чего он?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #20 : 07.08.2014, 19:51:47 »
Чет я вообще ничего не понимаю уже..

Как бы, мне нужно чтобы при запросе site.com/index.php?option=com_jshopping&controller=mycontroller&task=unsubscribe
выводилась SEF ссылка..

Теперь я сам не пойму что мне нужно было.

Т.е. изначально то вся морока была изза этого.

Но компонент то доступен по прямому адресу..
Кароче запутался.. По сути вроде все нормально.. Спасибо.

Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Подписка на комментарии в JoomShopping?
« Ответ #21 : 07.08.2014, 20:29:21 »
насколько я понимаю, вам нужно было не
Цитировать
при запросе site.com/index.php?option=com_jshopping&controller=mycontroller&task=unsubscribe
выводилась SEF ссылка
, а получить SEF ссылку для отмены подписки. по крайней мере речи о редиректах с не-SEF на SEF ранее не было :)

это конечно можно сделать, но собственно зачем? ссылку вида index.php?option=com_jshopping&controller=mycontroller&task=unsubscribe вы нигде светить не будете, в письме у вас будет /mycomponent/unsubsribe, она же будет открываться в браузере. зачем еще выдумывать проблемы себе? хотя по сути сама по себе генерация SEF ссылки для отмены подписки - уже надуманная проблема :) но вы ж сказали, что это для опыта, поэтому я не стал настаивать на обратном :) но по сути - это лишнее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Подписка на комментарии в JoomShopping?
« Ответ #22 : 07.08.2014, 22:23:33 »
Вот вобщем.

subs.php
Код
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');
class JshoppingControllerSubs extends JControllerLegacy{

function unsubscribe(){
  echo "<form action=".SEFLink('index.php?option=com_jshopping&controller=subs&task=ok',0,1)." method='POST'>
<input type='hidden' name='user_email' value=".$_GET['usem'].">
<input type='hidden' name='product_id' value=".$_GET['prid'].">
<input type='submit' value='отписаться'>
</form>";
}

function ok(){
$db=&JFactory::getDBO();
$query="UPDATE teyzk_jshopping_products_reviews SET subscribe=0 WHERE subscribe='$_POST[product_id]' and user_email='$_POST[user_email]'";
                $db->setQuery($query);
                $db->query();
echo "Вы успешно отписались!";
}
}

Все работает..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Finder плагин умного поиска (товары, атрибуты, характеристики)

Автор sergeytolkachyov

Ответов: 1
Просмотров: 3432
Последний ответ 13.08.2026, 14:07:56
от sergeytolkachyov
WT Max bot - JoomShopping

Автор sergeytolkachyov

Ответов: 0
Просмотров: 586
Последний ответ 22.07.2026, 09:43:03
от sergeytolkachyov
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 3
Просмотров: 8507
Последний ответ 01.07.2026, 14:45:12
от sergeytolkachyov
WT JoomShopping Export YML

Автор sergeytolkachyov

Ответов: 0
Просмотров: 958
Последний ответ 01.07.2026, 14:40:29
от sergeytolkachyov
[JoomShopping 5] вывод товаров из дочерних категорий

Автор v42bis

Ответов: 16
Просмотров: 10353
Последний ответ 13.05.2026, 17:26:17
от sergeytolkachyov