Андрей

Андрей

С нами с 09 апреля 2015; Место в рейтинге пользователей: #70
Михаил
07 сентября 2016, 12:57
1
0
{$_modx->runSnippet('!pdoResources', [
                    'class' => 'msVendor',
                    'where' => '{"id:IN":[1,2,3,4,5,6,7,8,9,10,11,12,13]}',
                    'sortby' => 'name',
                    'sortdir' => 'ASC',
                    'tpl' => '@INLINE <li><a href="/{$_modx->makeUrl(2)}?ms|vendor={{+id}}">{{+name}}</a></li>'
                ])}
Тут в сообществе было.
Андрей
22 августа 2016, 15:00
2
+1
И модификатором можно:

{$_modx->resource.template | in : [3, 4] ? '[[$myChunk]]' : ''}
Илья Уткин
16 августа 2016, 12:37
4
+5
Не надо ничего мудрить. Даже отдельный шаблон не нужен. Я обычно так делаю:
<div>
    [[pdoResources?
      &parents=`0`
      &limit=`0`
      &tpl=`@INLINE <p>{$pagetitle}</p>{if $idx % 5 == 0}</div><div>{/if}`
    ]]
</div>

Но тут человек хотел именно сам разобраться с тем, как писать сниппеты для MODX. Он получил большой опыт за небольшое время. Ну и далеко не все наткнутся где-нибудь на моё решение, а если это будет отдельный сниппет, начинающие будут им пользоваться.
stas
28 июля 2016, 10:54
3
0
Хотя я придумал, я просто засовываю принудительно сколько мне нужно товаров и если клиент ввел больше вывожу ваше сообщение

$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
$totalCount = $cartStatus['total_count']; // Общее количество товаров в корзине
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
  if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
    $quanity = $product->getTVValue('quantity');
    $quanity1 = $cartProduct["count"];
    if($quanity1 > $quanity){
      $cartProduct['count'] = $quanity;
      $modx->event->output('Вы пытаетесь положитель больше товаров чем есть в наличии');
    }
  }
}
$cart->set($cartArray); // Запись нового состояния корзины
Спасибо вам огромное!!!
Максим Кузнецов
29 июня 2016, 16:05
7
+2
'where' => '{
	"id:!=": '~ $_modx->resource.id ~'
}'
DocentBF
23 июня 2016, 17:58
2
+3
Сделайте, например, так:
if($modx->event->name != "OnDocFormSave") {return '';}
$tv1 = $resource->getTVValue('tv1');
$tv2 = $resource->getTVValue('tv2');
$pagetitle = $tv1."-".$tv2;
$resource->set('pagetitle',$pagetitle);
$resource->save();
Илья Уткин
08 июня 2016, 15:26
1
+1
У меня есть один сайтик с региональными поддоменами. Я сделал через подмену главной страницы. Вот плагин, может, поможет чем-то:
<?php
if ($modx->context-key == "mgr") {
  return;
}
switch ($modx->event->name) {
  case "OnHandleRequest":
    $domain = explode('.', $_SERVER['SERVER_NAME']);
    $city = array_shift($domain);
    $modx->setPlaceholder('city_alias', $city);
    if ($cityRes = $modx->getObject('modResource', array('parent' => 12, 'alias' => $city, 'published' => 1))) {
      $modx->setPlaceholder('city', $cityRes->id);
      $modx->setPlaceholder('city_name', $cityRes->menutitle);
      $modx->setOption('site_start', $cityRes->id);
      $modx->setPlaceholder('+site_start', $cityRes->id);
    } else {
      $modx->setPlaceholder('city', 0);
      $modx->setPlaceholder('city_name', 'Выберите город');
    }
    break;
  default: return;
}
Виталий Серый
08 июня 2016, 00:58
7
+3
Можно попробовать обойтись средствами Fenom без getImageList.
{set $rows = json_decode($_modx->resource.tv_product_main_gallery, true)}
{foreach $rows as $row}
    {$row.image}
{/foreach}
Klike
24 мая 2016, 22:59
1
0
<article class="project-item [[getAlias? &id=`[[+parent]]`]]">
а зачем сниппет, если есть pdoParser
[[#[[+parent]].alias]]
anton
21 мая 2016, 16:19
1
0
Спасибо!

Вот так получилось
[[!pdoPage?
        &element=`getImageList`
        &tvname=`fabriki` 
        &tpl=`@CODE:<div class="col-md-4"><a href="[[+link]]"><img src="http://placehold.it/350x250"></a><h4>[[+manufacturer]]</h4></div>`
        &limit=`2`
        &totalVar=`ImagesTotal`
        &toPlaceholder=`ImagesResult`
        &ajaxMode=`button`
    ]]