Stan Ezersky
С нами с 18 февраля 2014; Место в рейтинге пользователей: #29[addData] Добавление дополнительных данных
Компонент addData для MODX позволяет добавлять дополнительные данные к ресурсу. Если взять магазин, для примера, то к товару можно легко добавлять требуемые характеристики. При желании эти характеристики можно сгруппировать и дать описание каждой характеристики, который будет отображаться в Popover при наведении (используется Bootstrap3).
Обновление стоимости доставки в админке
Бывает иногда необходимо изменить способ доставки и стоимость доставки у ранее созданного заказа. И хотелось бы чтобы это выглядело так.
Приступим :)
Приступим :)
AjaxForm не срабатывает валидация Checbox
Добрый день!
Чекбокс выглядит так:
<input type=«checkbox» name=«iagree[]» id=«iagree» value=«I agree that:»
[[!+fi.iagree:FormItIsChecked=`I agree that:`]]>
Я соглашаюсь с тем что:
В вызове снипета есть необходимый параметр:
&validate=`
iagree:required`
делал и так:
&validate=`
iagree[]:required`
Есть и другие поля для валидации. Они валидируются, а чекбокс нет.
И класс не присваивается, и форма улетает без поставленной галки.
Гуглил, яндексил, да всё бестолку((
Заодно, если знатоки AjaxForm подскажут как слать два письма с разными tpl (одно мне, другое тому, кто форму заполнил, о том, что его заявка успешно ушла) — буду крайне признателен
И еще как добавить в случае ошибки валидации чекбокса рядом с ним сообщение.
У меня там рядом с ним вот такая конструкция есть:
[[+fi.error.iagree]]
и в параметрах снипета такая:
&iagree.vTextRequired=`Тык!`
только я хз сработает ли и как вобще надо
И еще мне надо что бы файлы можно было прикреплять только doc, docx и pdf — как это сделать?
Чекбокс выглядит так:
<input type=«checkbox» name=«iagree[]» id=«iagree» value=«I agree that:»
[[!+fi.iagree:FormItIsChecked=`I agree that:`]]>
Я соглашаюсь с тем что:
В вызове снипета есть необходимый параметр:
&validate=`
iagree:required`
делал и так:
&validate=`
iagree[]:required`
Есть и другие поля для валидации. Они валидируются, а чекбокс нет.
И класс не присваивается, и форма улетает без поставленной галки.
Гуглил, яндексил, да всё бестолку((
Заодно, если знатоки AjaxForm подскажут как слать два письма с разными tpl (одно мне, другое тому, кто форму заполнил, о том, что его заявка успешно ушла) — буду крайне признателен
И еще как добавить в случае ошибки валидации чекбокса рядом с ним сообщение.
У меня там рядом с ним вот такая конструкция есть:
[[+fi.error.iagree]]
и в параметрах снипета такая:
&iagree.vTextRequired=`Тык!`
только я хз сработает ли и как вобще надо
И еще мне надо что бы файлы можно было прикреплять только doc, docx и pdf — как это сделать?
Исправить работу ClientConfig + Fenom
Переменные передаваемые в шаблон из ClientConfig, если их выводить феномом вот так
{'название'|option}, {$_modx->config.название}, {$_modx->config['название']}
после очистки кеша или обновления кеша url обнуляются, но происходит это только в контекстах отличных от web. Функции хелперы для MODX
MS2 вывод по разнице price-old_price в процентах
30
Привет!
Переношу эту задачу из раздела вопросы.
Мне нужно вывести товары minisop2 отсортированные по проценту разницы price и old_price
т.е.
Проще говоря, мне нужно работать с этой цифрой, как с ценой.
Как я понимаю и мне подсказывают это число нужно высчитывать и записывать в бд сразу при сохранении товара. В магазине около 1000 товаров, их пересохранять нет желания.
Хотелось бы решение в виде плагина или пошаговой инструкции.
Доступ к сайту не даю.
Готов выслушать Ваши предложения…
Переношу эту задачу из раздела вопросы.
Мне нужно вывести товары minisop2 отсортированные по проценту разницы price и old_price
т.е.
[[!pdoPage?
&element=`msProducts`
&tpl=`tpl`
&sortby=`этот_процент`
&sortdir=`DESC`
]]
для получения этого процента в товаре я использую сниппет [[!procent]]<?php
$price2 = str_replace(" ","",$modx->resource->get('price'));
$old_price2 = str_replace(" ","",$modx->resource->get('old_price'));
$pricevariations = $old_price2 - $price2;
if($old_price2 > 0){
echo '<div class="procent"><span>'.number_format(round(($pricevariations / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
}
чтобы этот же процент получить в категории товаров пришлось сниппет немного изменить<?php
$price2 = str_replace(" ","",empty($price) ? 0 : $price);
$old_price2 = str_replace(" ","",empty($old_price) ? 0 : $old_price);
if($old_price2 > 0){
return '<div class="procent"><span>'.number_format(round((($old_price2 - $price2) / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
}
return '';
и его вызов[[!procent_category? &price=`[[+price]]` &old_price=`[[+old_price]]`]]
Это работает. Но теперь нужно сделать вывод товара отсортированного по возрастанию или убыванию по этому проценту и, например, не показывать товары, где процент меньше 10%.Проще говоря, мне нужно работать с этой цифрой, как с ценой.
Как я понимаю и мне подсказывают это число нужно высчитывать и записывать в бд сразу при сохранении товара. В магазине около 1000 товаров, их пересохранять нет желания.
Хотелось бы решение в виде плагина или пошаговой инструкции.
Доступ к сайту не даю.
Готов выслушать Ваши предложения…
cacheRegenerator. Авторегенерация кеша страниц
Сегодня публикую маленький, но очень полезный компонент (надеюсь в течение дня будет одобрен в modstore.pro). Сейчас это всего один плагин. Задача его состоит в том, чтобы сразу после сохранения документа выполнять регенерацию этой страницы, чтобы даже при первом заходе посетителя, документ уже был в кеше и отдавался быстрее.
Пара вопросов по miniShop2
- Подскажите, как сделать, чтобы из поля Вес не вырезались символы? — нужно чтобы была возможность указывать вес через слеш.
- Как указать для самовывоза доп.стоимость -15%? Сейчас можно либо число указать с минусом, либо положительное число в процентах. Но нужно, чтобы, когда пользователь выбирает самовывоз — цена уменьшалась на 15%.
Контакты Покупателя на email менеджеру
Как сделать чтобы менеджеру на почту приходила вся информация о покупателе и выбранном способе оплаты/доставки при отправке нового заказа?
Что нужно исправить в чанках:
tpl.msEmail
tpl.msEmail.new.manager
Это я прочитал:
docs.modx.pro/components/minishop2/update
Ранее это были плейсхолдеры:
[[+address.receiver]] — Покупатель
[[+address.phone]] — Телефон
[[+user.email]] — Почта
[[+address.index]] — Индекс
[[+address.region]] — Область
[[+address.city]] — Город
[[+address.street]] — Улица
[[+address.building]] — Дом
[[+address.room]] — Квартира
[[+delivery.name]] — Способ доставки
[[+payment.name]] — Тип оплаты
[[+address.comment]] — Комментрарий
А как их сейчас это делается в Fenom?
Спасибо.
Что нужно исправить в чанках:
tpl.msEmail
tpl.msEmail.new.manager
Это я прочитал:
docs.modx.pro/components/minishop2/update
Ранее это были плейсхолдеры:
[[+address.receiver]] — Покупатель
[[+address.phone]] — Телефон
[[+user.email]] — Почта
[[+address.index]] — Индекс
[[+address.region]] — Область
[[+address.city]] — Город
[[+address.street]] — Улица
[[+address.building]] — Дом
[[+address.room]] — Квартира
[[+delivery.name]] — Способ доставки
[[+payment.name]] — Тип оплаты
[[+address.comment]] — Комментрарий
А как их сейчас это делается в Fenom?
Спасибо.
Fenom + pdoMenu и динамический parent
Добрый вечер,
можете подсказать, почему не работает такой вывод?
можете подсказать, почему не работает такой вывод?
<ul class="subcategories">
{$_modx->runSnippet('!pdoMenu', [
'parents' => '{if $_modx->resource.parent|in:[10,20,30]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}',
'showHidden' => '0',
'level' => '1',
'tplOuter' => '@INLINE {$wrapper}',
'tpl' => '@INLINE <li{$classes}><a href="{$link}" {$attributes}>{$menutitle}</a>{$wrapper}</li>',
'showLog' => 0
])}
</ul>
но так работает:<ul class="subcategories">
[[!pdoMenu?
&parents=`{if $_modx->resource.parent|in:[23,27,24,26,25,29,30,28]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}`
&showHidden=`0`
&level=`1`
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
]]
</ul>