Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 1932 Просмотров
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Возник вопрос. Как сделать чтобы на кнопке "в корзину" после добавления товара отображалось в корзине?
Первое что пришло в голову это лезть в таблицу session и получать от туда данные.
А дальше по условию, если совпадает то 1, если нет то 2.

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #1 : 16.08.2014, 20:15:19 »
т.е. такое решение вам кажется слишком легким, и вы хотите усложнить?

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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #2 : 16.08.2014, 20:47:36 »
О, юмор..) Ценю..) Картинку сохранил..))
Итак, к делу, я тут напилил AJAX добавление в корзину (на основе AJAX поиска), т.е. мне нужно обновлять динамически. (хотя можно в функцию добавить SELECT или еще как то).

Но, в контроллере cart, в function add есть такой код:
Код
       $session =JFactory::getSession();
       $back_value = array('pid'=>$product_id, 'attr'=>$jshop_attr_id, 'freeattr'=>$freeattribut,'qty'=>$quantity);
       $session->set('product_back_value', $back_value);
Но, никак не получается получить данные из массива, показывает что пустой. (ну или я...) Вроде все варианты перепробовал..
Код
        $dannie = $session->get('product_back_value' ,$back_value);
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #3 : 16.08.2014, 22:29:59 »
не, я так больше не играю... вот с вами всегда так :) про AJAX добавление нельзя было сразу написать? это ж принципиальные моменты. откуда мне знать, в какой момент времени вам нужна проверка на наличие в корзине? вы или все описывайте, или тогда на сайт экстрасенсов :)

никак не получается получить данные из массива, показывает что пустой

ну видимо потому что
Цитата: \components\com_jshopping\controllers\product.php function display
$session->set('product_back_value',array());

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

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #4 : 17.08.2014, 00:07:52 »
Цитировать
про AJAX добавление нельзя было сразу написать?
Ну да. Я обычно стараюсь полностью все объяснять, но тут получилось так, что корзина вышла немного позже, через час...)

Цитировать
не могу в принципе понять, зачем его получать
подумал потому что он в session (session'ы бывают разные) сохраняет id товара, pid=>product_id, плюс типа минус 1 запрос к бд и меньше нагрузка.

Цитировать
ну видимо потому что \components\com_jshopping\controllers\product.php function display
Код
$session->set('product_back_value',array());
Я не понял причины..))

Т.е. если получить данные, то можно добавить функцию в cart.php, ну или в другую, и она будет вызываться сразу после добавления товара, получая при этом свежие данные.
« Последнее редактирование: 17.08.2014, 00:50:01 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #5 : 17.08.2014, 10:37:10 »
Но, никак не получается получить данные из массива, показывает что пустой.
Я посмотрел выше
Код: php-brief
if (!$cart->add($product_id, $quantity, $jshop_attr_id, $freeattribut)){
            if ($ajax){
                print getMessageJson();
                die();
            }
            $session =JFactory::getSession();
            $back_value = array('pid'=>$product_id, 'attr'=>$jshop_attr_id, 'freeattr'=>$freeattribut,'qty'=>$quantity);
            $session->set('product_back_value', $back_value);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$category_id.'&product_id='.$product_id,1,1));
            return 0;
        }
JS не юзаю, но по-моему product_back_value в сессии остается пустым, если:
1. параметр AJAX задан
или
2. товар успешно добавляется
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #6 : 17.08.2014, 14:03:51 »
я просто не могу понять, зачем из сессии пытаться получить product_back_value, если из сессии надо получить товары в корзине? и проверить потом, есть ли текущий товар в корзине.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #7 : 17.08.2014, 14:34:27 »
я просто не могу понять, зачем из сессии пытаться получить product_back_value
- товар, который НЕ попал в корзину?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #8 : 17.08.2014, 14:58:00 »
ну... да, возможно конечно... но исходя из названия темы - смысл? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #9 : 17.08.2014, 16:19:36 »
Хорошо, я вас понял, как можно тогда из SESSION вытащить, там же несколько срок полноэкранного текста выходит?
Делать функцию которая обрезает все ненужное...?
Просто многие компоненты используют session, не ужели все они так режут всегда..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Если в корзине, то.. В корзине..)
« Ответ #10 : 17.08.2014, 16:52:42 »
Хорошо, я вас понял, как можно тогда из SESSION вытащить, там же несколько срок полноэкранного текста выходит?
Делать функцию которая обрезает все ненужное...?
Просто многие компоненты используют session, не ужели все они так режут всегда..
Как вытащить - $session->get(), вы же знаете.
Не понял: какая функция и что должна обрезать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #11 : 17.08.2014, 18:40:47 »
во-первых, сессия - это массив, и резать - это я так понимаю про строки, а к значениям массива можно обращаться напрямую

во-вторых, для работы с сессий в Joomla, как уже сказал robert, есть своя обертка JSession со своими методами и другими полезностями. почитайте про нее.

ну а в -третьих, для корзины разработчики вообще в принципе модель придумали :)

Код: php
$cart = JModelLegacy::getInstance('cart', 'jshop');
$cart->load();
print_r($cart->products);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #12 : 18.08.2014, 04:38:11 »
У меня не получилось автоматическое создание массива со всеми product_id (подскажите), поэтому сделал так, в принципе хватит;D... но это после перезагрузки страницы будет работать:
Код
$cart = JModelLegacy::getInstance('cart', 'jshop');
$cart->load();
$prover = array($cart->products[1][product_id], $cart->products[2][product_id], $cart->products[3][product_id], $cart->products[4][product_id]);
if (in_array($this->product->product_id, $prover)) {
    echo "в корзине";
}
else {
echo "в корзину";
}


А после клика, будет удаляться кнопка и подставляться другая через js..
Код
$(".click_buy").parent().prepend("<a href='/im/shop/cart/add.html?category_id=1&amp;product_id=8' class=in_cart'>в корзине</a>");
$(".click_buy.button_buy").remove();

А после перезагрузки уже php будет работать..)

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Если в корзине, то.. В корзине..)
« Ответ #13 : 18.08.2014, 08:43:00 »
та а че шутить? норм практически. вопрос только - если при добавлении ошибка будет какая-либо (например, нет столько количества). кнопка все равно сменится, а не должна бы... а по поводу массива со всеми product_id - то можно так:
Код: php
$inCart = false;
foreach ($cart->products as $prod) {
if ($this->product->product_id == $prod['product_id']) {
$inCart = true;
break;
}
}
if ($inCart) {
echo "в корзине";
} else {
...
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Если в корзине, то.. В корзине..)
« Ответ #14 : 18.08.2014, 09:01:40 »
Спасибо, сейчас попробую..)
Там после запроса есть success, внутри вставил, поэтому думаю что только при добавлении все таки..

А вообще, "нет в наличии", как по мне так это глупая опция, не буду полностью (могу долго нудно и часами..))), но, так клиент уйдет не сделав заказа, а в другом случае, можно предложить скидку на аналогичный или скидку и подождать..))

P.S. 300-й мой будет..))


« Последнее редактирование: 18.08.2014, 09:14:55 от shurakana »
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скидка + итоговая сумма в корзине

Автор Simply

Ответов: 14
Просмотров: 1533
Последний ответ 15.03.2023, 18:43:59
от kit2m2
Как переустановить аддон руками если нет архива первоначального?

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 747
Последний ответ 21.11.2022, 14:24:46
от kit2m2
Выбор города если на сайте несколько продавцов уже (joomshopping)

Автор McCafferty

Ответов: 4
Просмотров: 809
Последний ответ 21.09.2022, 10:45:09
от kit2m2
Количество товара в корзине в мега-меню [решено]

Автор jesus

Ответов: 13
Просмотров: 2087
Последний ответ 08.10.2021, 21:42:27
от Mister Shadow
Автообновление суммы в корзине от количество товаров

Автор V1RTUS

Ответов: 4
Просмотров: 2683
Последний ответ 30.06.2021, 21:32:09
от driverXP