Новости Joomla

Вышли релизы безопасности Joomla 6.1.4 и Joomla 5.4.9

Релиз безопасности Joomla 6.1.4 и Joomla 5.4.9

Проект Joomla! рад сообщить о выходе Joomla 6.1.4 и Joomla 5.4.9. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

JoomShift - компонент переноса контента между Joomla сайтами.

‍ JoomShift - компонент переноса контента между Joomla сайтами.

JoomShift - компонент переноса контента между Joomla сайтами.Он позволяет экспортировать модули, меню, материалы, категории, пользовательские поля и пользователей в виде переносимых JSON/ZIP-файлов, а затем импортировать их в любую другую установку Joomla.

Возможности компонента:- Модули — полная настройка, назначение пунктов меню, позиционирование и содержимое SP Page Builder.
-Меню — иерархия родительских/дочерних элементов, типы элементов, ссылки, уровни доступа и параметры. Отсутствующие типы меню создаются автоматически, а элементы, указывающие на неустановленные компоненты, пропускаются с предупреждением.
-Статьи и категории — контент, метаданные, изображения и иерархия категорий.
-Пользовательские поля — группы полей, определения, ограничения по категориям и значения (включая поля с несколькими значениями) — экспортируются и автоматически создаются заново на целевом сайте.
-Пользователи — данные профиля, назначения групп и хэши паролей, чтобы учетные записи работали сразу после импорта.
-Кросс-версииJoomla - компонент адаптируется к различиям в схеме базы данных между версиями Joomla.
-Создан для крупных сайтов — постраничные списки (20/50/100/250строк) и автоматический пакетный экспорт для сайтов с более чем 500 элементами, поэтому он продолжает работать на обычном хостинге.
-Опция перезаписи — обновляет совпадающие элементы при повторном импорте вместо создания дубликатов.
-Drag-n-drop импорт с подробным отчетом о том, что было импортировано, обновлено или пропущено, и почему.

На момент написания заметки для скачивания необходима регистрация/логин на сайте разработчика.

-Joomla Extensions Directory-Страница расширения#joomla#расширения

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

Модуль joomLab JS Ajax Cart позволит организовать в Вашем интернет-магазине на компоненте JoomShopping удобную AJAX корзину с возможностью добавлять товары и изменять их количество без перезагрузки страницы.

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

В модуле предусмотрено 2 макета дизайна для Bootstrap и UIkit и максимальная кастомизация для переопределения макетов в шаблон.Демо расширенияСтраница расширения

Видео в Telegram

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

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

  • Живу я здесь
  • 2629
  • 363 / 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
Просмотров: 8334
Последний ответ 24.05.2023, 14:24:30
от Gleb72
Ошибка шаблона yooutheme florence

Автор Agreton

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

Автор Rebarun

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

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

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

Автор Eevvggeennyy

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