Максим
С нами с 21 июля 2016; Место в рейтинге пользователей: #590Выполнить where в pdoPage
как правильно выполнить where
в тв поле city храниться название города — Москва
$_modx->getPlaceholder('sd.city') — тоже хранит название города Москва
в тв поле city храниться название города — Москва
$_modx->getPlaceholder('sd.city') — тоже хранит название города Москва
{'!pdoPage' | snippet : [
'element' => 'pdoResources',
'tpl' => '@FILE tpl/sale.tpl',
'parents' => $_modx->resource.id,
'limit' => 12,
'showHidden' => 1,
'includeTVs' => 'city',
'includeContent' => 1,
'processTVs' => 1,
'templates' => 15,
'tvPrefix' => '',
'where' => '{
"city":"$_modx->getPlaceholder('sd.city')"
}',
'sortby' => 'publishedon',
'sortdir' => 'desc',
]}
Не отображать выключенную модификацию msProductOptions
Как скрыть размер, модификация которого скрыта в админке? сейчас если модификация выключена, размер выводиться, но при переключении размеров цена не меняется, а нужно чтобы и размер не выводился
вызываю сниппет,
вызываю сниппет,
[[!msOptions?
&options=`size`
&tpl=`phytomodule.option`
]]
[[!msProductOptions?
&options=`size`
]]
сам чанк{foreach $options as $name => $values}
<div class="flex-group">
<label for="option_{$name}">{$id | resource: 'wheight'}:</label>
<select name="options[{$name}]" class="input-sm form-control" id="option_{$name}"
{if $constraints[$name]}
data-constraints="{$constraints[$name]| json_encode: 256 | htmlentities}"
{/if}
>
{foreach $values as $value index=$index }
<option value="{$value}"
{if $constraints[$name]}
data-relations="{$relations[$name][$value]| json_encode: 256 | htmlentities}"
{/if}
>{$value}</option>
{/foreach}
</select>
</div>
{/foreach}
вывести товары
подскажите, почему при такой записи
return $modx->getChunk('getTariffs',array('id' => $_POST['id']));
не срабатывает сниппет
return $modx->getChunk('getTariffs',array('id' => $_POST['id']));
не срабатывает сниппет
msProducts
в чанкеgetTariffs
чанк такой<div class="input-group input-group-lg get-tarif">
<span class="input-group-addon">тарифы </span>
<select name="service" id="service" class="form-control">
<option value="0">Выберите тариф s</option>
{'!msProducts' | snippet : [
'tpl' => '@FILE tpl/gettarif.tpl',
'parents' => ,
'depth' => 4,
'limit' => 100,
'includeTVs' => 1,
'includeContent' => 1,
'processTVs' => 1,
'tvPrefix' => '',
'sortby' => 'menuindex',
'sortdir' => 'asc',
]}
</select>
</div>
Расширение файла `` не допускается.
сталкивался кто с такой проблемой? и как решить?
Поле со скидкой
есть плагин для реализации скидки при добавлении товаров в корзину
пока вывожу через сниппет, но при увеличении/уменьшении количества, сумма не меняется без перезагрузки страницы
<?php
if ($modx->event->name == 'msOnBeforeAddToCart') {
if ($modx->user->isAuthenticated()){
//$user = $modx->getObject('modUserProfile', $modx->user->get('id'));
$procent = 0;
$sqlz = $modx->query("SELECT count(id) as count,SUM(cost) as summa FROM `modx_ms2_orders` WHERE user_id=".$modx->user->get('id')." and status=10");
$parentz = $sqlz->fetchAll(PDO::FETCH_ASSOC);
foreach ($parentz as $resz) {
if ($resz['count'] == 0){
$procent = 0;
}else{
$sql = $modx->query("SELECT count(id) as count,SUM(cost) as summa FROM `modx_ms2_orders` WHERE `createdon` >= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) and user_id=".$modx->user->get('id')." and status=10");
$parentu = $sql->fetchAll(PDO::FETCH_ASSOC);
if ($parentu) {
foreach ($parentu as $res) {
if (round($res['summa'],0) < 50000) {
$procent = 0;
}elseif (round($res['summa'],0) >= 50000 && round($res['summa'],0) < 100000){
$procent = 3;
}elseif (round($res['summa'],0) >= 10000 && round($res['summa'],0) < 150000){
$procent = 5;
}elseif (round($res['summa'],0) >= 150000 && round($res['summa'],0) < 200000){
$procent = 8;
}elseif (round($res['summa'],0) >= 200000){
$procent = 10;
}
}
}
}
}
if (/*$user->get('sale')*/$procent > 0){
$old_price = $product->get('price') - ($product->get('price') * ($procent / 100));
$product->set('price', round($old_price, 2));
}
}else{
$modx->event->output('Для покупки товаров, Вам нужно авторизоваться или зарегистрироваться!');
}
}
если мы меняем количество в корзине, то сумма меняется — все ок, а как сделать, чтобы еще показывалась сумма без учета скидки?пока вывожу через сниппет, но при увеличении/уменьшении количества, сумма не меняется без перезагрузки страницы
<span>
{'TotalSale' | snippet : [
'price' => $total.cost
]}
</span>
сниппет$procent = 4;
$sale = (str_replace(' ', '', $price) * 100) / (100 - $procent);
echo round($sale,1);
Контексты
как реализовать, чтобы два контекста свободно отображались на сайте, есть есть главный веб, я создал old и туда запихнул каталог со старым товаром, чтобы не путался в админке, нужно чтобы пользователь переходил на негои попадал в каталог, на данный момент меня перекидывает на главную страницу, хотя в адресной строке урл к каталогу
Страница оплаты заказов
MOdx Компонент
по статье ilyaut.ru/xpdo/add-custom-objects/ создал таблицу, для хранения адресов пользователя
на странице есть форма
на странице есть форма
<form action="" method="post" id="address__form">
<div class="address__name">
<input type="text" name="name_address" id="in_address" placeholder="Название адреса">
<div class="checkbox">
<input type="checkbox" name="address_default" id="ad">
<label for="ad">Сделать основным</label>
</div>
</div>
<div class="address__input">
<input type="text" name="postcode" placeholder="Индекс">
<input type="text" name="city" id="address_city" placeholder="Населенный пункт">
<input type="text" name="street" id="address_street" placeholder="Улица">
<input type="text" name="home" placeholder="Дом">
<input type="text" name="building" placeholder="Корпус">
<input type="text" name="building1" placeholder="Строение">
<input type="text" name="flat" placeholder="Квартира">
</div>
<textarea name="message" id="message" cols="30" rows="5" placeholder="Примечания"></textarea>
<button type="button" class="btn-dark">Сохранить</button>
</form>
подскажите, как сделать ajax добавление, и работу с таблицей как модули например Office и т.д. Может есть статьи хорошие?