Андрей

Андрей

Был в сети 25 июня 2026, 01:11
Заказы принимаю
Илья Уткин
Илья Уткин
4
+5
Не надо ничего мудрить. Даже отдельный шаблон не нужен. Я обычно так делаю:
<div>
    [[pdoResources?
      &parents=`0`
      &limit=`0`
      &tpl=`@INLINE <p>{$pagetitle}</p>{if $idx % 5 == 0}</div><div>{/if}`
    ]]
</div>

Но тут человек хотел именно сам разобраться с тем, как писать сниппеты для MODX. Он получил большой опыт за небольшое время. Ну и далеко не все наткнутся где-нибудь на моё решение, а если это будет отдельный сниппет, начинающие будут им пользоваться.
stas
stas
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); // Запись нового состояния корзины
Спасибо вам огромное!!!
Илья Уткин
Илья Уткин
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;
}