Дмитрий Суворов
С нами с 01 августа 2013; Место в рейтинге пользователей: #185[pdoTools] 2.7.0 - улучшения Fenom
Привет, друзья!
Для обновления доступна новая версия pdoTools, в которой обновлён сам Fenom, добавлена пара функций, а также исправлена одна серьёзная недоработка.
А теперь подробнее.
Для обновления доступна новая версия pdoTools, в которой обновлён сам Fenom, добавлена пара функций, а также исправлена одна серьёзная недоработка.
А теперь подробнее.
Критическая уязвимость в MODX Revolution
Сильно в детали лезть не буду, просто скажу, что сейчас любой MODX Revo сайт потенциально уязвим. Дыра позволяет выполнить SQL-инъекции, в том числе с созданием на сайте привилегированных пользователей.
Базовые методы противодействия: подмена дефолтных системных папок (особенно connectors) и, главное — смена префикса таблиц. Так как далеко не все это делают, то можно сказать, большинство сайтов в зоне опасности. Кто хочет ощутить это на себе, может в комментах написать ссылку на сайт.
Если кто на уже рабочем сайте хочет префиксы сменить, я описывал метод здесь.
P.S. И еще заповедь: не пускайте никого в админку, даже с самыми минимальными правами. Это практически 100% гарантия взлома при желании.
Базовые методы противодействия: подмена дефолтных системных папок (особенно connectors) и, главное — смена префикса таблиц. Так как далеко не все это делают, то можно сказать, большинство сайтов в зоне опасности. Кто хочет ощутить это на себе, может в комментах написать ссылку на сайт.
Если кто на уже рабочем сайте хочет префиксы сменить, я описывал метод здесь.
P.S. И еще заповедь: не пускайте никого в админку, даже с самыми минимальными правами. Это практически 100% гарантия взлома при желании.
Подключение к базе данных из сниппета
Первый раз пытаюсь самостоятельно обратиться к базе данных через сниппет.
Выдает ошибку
$result = dbquery('SELECT name FROM test_table WHERE id="1"');
if (dbrows($result) != '') {
$data = dbarray($result);
$name =$data['name'];
echo $name;
}
Выдает ошибку
Fatal error: Call to undefined function dbquery() in /home/адрес сайта/core/cache/includes/elements/modsnippet/51.include.cache.php on line 2
Как сделать расширеный поиск
ДД! Подскажите как сделать и с чем подобие поиска как тут xn--80abwaa1a3aj3c.xn--80adxhks/
Копал в сторону msearch2 но так и не разобрался
Копал в сторону msearch2 но так и не разобрался
Создание плагина товара
Привет всем!
Я новичок в ModX. Делаю свой первый интернет-магазин на ModX Revo, решил использовать miniShop2. Первая трудность возникла при добавлении нового свойства товара с помощью плагина товара. С инструкцией ознакомился docs.modx.pro/components/minishop2/development/plug-ins-products.
Что я сделал? Я создал контроллер плагина, сохранил его в index.php и положил его в папку с названием своего плагина: core/components/minishop2/plugins/msplvolume
Содержание файла index.php:
Потом я добавил поле в таблицу:
Теперь я пытаюсь получить значение volume и вывести его на странице продукта.
Я по примеру вывода свойства weight, добавил в чанк msProduct.content следующий код:
Я новичок в ModX. Делаю свой первый интернет-магазин на ModX Revo, решил использовать miniShop2. Первая трудность возникла при добавлении нового свойства товара с помощью плагина товара. С инструкцией ознакомился docs.modx.pro/components/minishop2/development/plug-ins-products.
Что я сделал? Я создал контроллер плагина, сохранил его в index.php и положил его в папку с названием своего плагина: core/components/minishop2/plugins/msplvolume
Содержание файла index.php:
<?php
return array(
'map' => array(
'msProductData' => require_once 'msproductdata.inc.php',
),
'manager' => array(
'msProductData' => MODX_ASSETS_URL . 'components/msplvolume/msproductdata.js',
),
);
Пока меня не интересует массив manager (расширение админки), поэтому, я создал только один файл msproductdata.inc.php. В нем я написал, что хочу расширить модель данных продукта, добавив одно целочисленное поле volume. Вот код:<?php
return array(
'fields' => array(
'volume' => 0,
),
'fieldMeta' => array(
'volume' => array(
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => true,
'default' => 0,
),
),
);
Файл msproductdata.inc.php я сохранил в той же папке что и index.php.Потом я добавил поле в таблицу:
ALTER TABLE `modx_ms2_products` ADD `volume` INT NULL DEFAULT NULL;
Как я понял на этом процесс закончен. Дальше miniShop2 и ModX все сделает сами.Теперь я пытаюсь получить значение volume и вывести его на странице продукта.
Я по примеру вывода свойства weight, добавил в чанк msProduct.content следующий код:
<div class="form-group">
<label class="col-sm-2 control-label">Объем: </label>
<div class="col-sm-3">
<label class="checkbox">[[+volume]] мл.</label>
</div>
</div>
В итоге объем не выводится. Подскажите, пожалуйста, что я делаю не так? Массовый импорт модификации продуктов [miniShop2]
В поддержке задали вопрос как можно массово добавлять модификации для продуктов (разные цены для разных размеров, артикулы уникальны для каждого размера).
Ниже привожу пример…
Ниже привожу пример…
Подскажи как добавить класс
Доброе время суток!
Подскажите пожалуйста, как добавить css класc товару, у которого стоит галочка популярный товар или новый? Притом классы должны быть разные
Подскажите пожалуйста, как добавить css класc товару, у которого стоит галочка популярный товар или новый? Притом классы должны быть разные
Вывод thumb определенного размера на fenom
Здравствуйте, подскажите, как вывести превью в списке товаров с определенным размером через fenom в чанке tpl.msProducts.row, вывод по старинке
[[+360x270]]
работает, но если выводить через fenom вот так <img src="{$thumb}" alt="{$pagetitle}" title="{$pagetitle}"/>
то выводится картинка 120x90, хотя в настройках источников приписано [{"w":210,"h":180,"q":90,"zc":"0","bg":"FFF"},{"w":120,"h":90,"q":90,"zc":"0","bg":"FFF"},
{"w":360,"h":270,"q":90,"zc":"0","bg":"FFF"}
]
Вот и не могу понять синтаксис fenom для вывода определенного размера.Загрузка заказов ms2, Tikets на стартовой странице
При сравнении «специализированных» cms для интернет магазинов и minishop заметил общую тенденцию у первых выводить при входе в админку список заказов. После недолгой переписки с замечательным исполнителем Павлом Гвоздем возникло такое замечательное и гениальное по простоте решение:
заходим в настройки системы, далее в фильтре по ключу отыскиваем 2 значения:
1. welcome_action меняем с welcome на mgr/orders
2. welcome_namespace с core на minishop2
и вуаля на чистом клиенте отображается список заказов, очень удобно
заходим в настройки системы, далее в фильтре по ключу отыскиваем 2 значения:
1. welcome_action меняем с welcome на mgr/orders
2. welcome_namespace с core на minishop2
и вуаля на чистом клиенте отображается список заказов, очень удобно
Добавление своих полей в форму заказа [обновлено]
При разработке нескольких проектов, возникала необходимость в получении дополнительных данных от покупателей, а полей в miniShop2 ограниченное количество. Поиск готового решения результата не дал, поэтому предлагаю свой вариант.
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее
Решение обновлено, убраны правки исходного кода минишопа, теперь при обновлении ничего не затрется, изменены ключи у полей
Решалось это следующим образом:
1. Добавлялись необходимые поля, для примера взяты тип плательщика, название организации и инн.
2. Добавлялся плагин срабатывающий при сохранении заказа и при подключении js минишопа в админке.
3. Редактировались настройки и записи словарей.
Более подробно далее