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

CityCat

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
  • Алексей Voronov
Здравствуйте!

Помогите разобраться, я не очень силен в запросах php в БД.

Если у товара нет атрибутов, то при запросе вываливается в ошибку:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3

Посмотрел логи, ругается на файл вывода товара в JoomShopping - product_default.php
Файл в шаблоне, кастомизирован.

Строка, которая глюкавит:

Код
                            ->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');

Как бы сделать так, чтобы если нет атрибутов товара, то он не обрабатывал эту строку, а если есть атрибут, то выводил.

Весь кусок кода из шаблона:

Код
                        <?php
                        $db = JFactory::getDbo();
                        $query = $db->getQuery(true);

                        $query
                            ->select('*')
                            ->from($db->quoteName('#__jshopping_products_attr'))
                            ->where($db->quoteName('product_id'). ' = '. $db->quote($product->product_id));

                        $db->setQuery($query);

                        $productAttrs = $db->loadObjectList();

                        foreach ($productAttrs as $prodAttrs) {
                            foreach ($prodAttrs as $key => $value)
                                if ((strpos($key, 'attr') === 0) && ($value != 0)) {
                                    $attrs[] = substr($key, 5);
                                    $values[] = $value;
                                    $product->options[$prodAttrs->product_attr_id]['attrs'][substr($key, 5)] = $value;
                                }
                            $product->options[$prodAttrs->product_attr_id]['price'] = $prodAttrs->price;
                            $product->options[$prodAttrs->product_attr_id]['manufacturer_code'] = $prodAttrs->manufacturer_code;
                        }

                        $query = $db->getQuery(true);

                        $query
                            ->select($db->quoteName(array('attr_id', 'name_ru-RU', 'description_ru-RU'), array('id', 'name', 'description')))
                            ->from($db->quoteName('#__jshopping_attr'))
[b]                            ->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');[/b]

                        $db->setQuery($query);
                        $attrs = $db->loadObjectList('id');

                        $query = $db->getQuery(true);

                        $query
                            ->select($db->quoteName(array('value_id', 'name_ru-RU'), array('id', 'name')))
                            ->from($db->quoteName(array('#__jshopping_attr_values')))
                            ->where($db->quoteName('value_id'). ' IN (' . implode(',', $values). ')');

                        $db->setQuery($query);
                        $values = $db->loadObjectList('id');
                        ?>

Весь файл в приложении.
Помогите, пожалуйста.
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
Re: Ошибка 1064 - You have an error in your SQL syntax
« Ответ #1 : 04.11.2019, 08:35:48 »
Код
 ->where($db->quoteName('attr_id'). ' IN (\'' . implode('\',\'', $attrs). '\')');
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

a-vikalingvo

  • Захожу иногда
  • 51
  • 7 / 0
Re: Ошибка 1064 - You have an error in your SQL syntax
« Ответ #2 : 04.11.2019, 09:12:19 »
Это -
Код: php
$query
                            ->select($db->quoteName(array('attr_id', 'name_ru-RU', 'description_ru-RU'), array('id', 'name', 'description')))
                            ->from($db->quoteName('#__jshopping_attr'))
[b]                            ->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');[/b]

                        $db->setQuery($query);
                        $attrs = $db->loadObjectList('id');

меняем на это
Код: php
if( count( (array) $attrs ) )
{
$query->select( $db->quoteName( [ 'attr_id' , 'name_ru-RU' , 'description_ru-RU' ] , [ 'id' , 'name' , 'description' ] ) )
         ->from( $db->quoteName( '#__jshopping_attr' ) )
         ->where( $db->quoteName( 'attr_id' ). ' IN (' . implode( ',' , $attrs ). ')' );

$db->setQuery( $query );
$attrs = $db->loadObjectList( 'id' );
}#END IF
но тут еще по моему ошибка в коде в самом
переменная $attrs она же в условии запроса и в нее  же и полученные данные пишутся ....
Наверное так быть не должно !
*

a-vikalingvo

  • Захожу иногда
  • 51
  • 7 / 0
Re: Ошибка 1064 - You have an error in your SQL syntax
« Ответ #3 : 04.11.2019, 09:15:30 »
Код
 ->where($db->quoteName('attr_id'). ' IN (\'' . implode('\',\'', $attrs). '\')');
Та не - это я извиняюсь нее то по моему 
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Ошибка 1064 - You have an error in your SQL syntax
« Ответ #4 : 04.11.2019, 11:21:18 »
Так попробуй
Код
<?php $query->select($db->quoteName(array('attr_id', 'name_ru-RU', 'description_ru-RU'), array('id', 'name', 'description')))
    ->from($db->quoteName('#__jshopping_attr'));
if($attrs) $query->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');
*

a-vikalingvo

  • Захожу иногда
  • 51
  • 7 / 0
Re: Ошибка 1064 - You have an error in your SQL syntax
« Ответ #5 : 05.11.2019, 00:48:29 »
Цитировать
Так попробуй
Да не это неправильно - то он так выгрузит ему всю таблицу ...
если не будет $attrs - Вы же условие выборки просто закрыли - ошибки да не будет но и выберет все строки с таблицы тогда ! ))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка при входе в корзину шаблон jmart

Автор dimiur

Ответов: 5
Просмотров: 4983
Последний ответ 24.05.2023, 14:24:30
от Gleb72
Ошибка шаблона yooutheme florence

Автор Agreton

Ответов: 4
Просмотров: 799
Последний ответ 27.10.2020, 21:01:18
от Agreton
Ошибка при переключении на русский язык

Автор Rebarun

Ответов: 4
Просмотров: 1037
Последний ответ 18.05.2020, 15:09:57
от AlexB
Ошибка в определении устройства (десктоп - планшет)

Автор Алексей Лоскутов

Ответов: 5
Просмотров: 1309
Последний ответ 23.11.2019, 13:36:12
от Алексей Лоскутов
Ошибка "500 JHtmlBehavior::mootools not found"

Автор Eevvggeennyy

Ответов: 50
Просмотров: 27123
Последний ответ 02.08.2019, 10:46:46
от b2z