Всего 122 808 комментариев

Владимир
20 мая 2015, 00:53
0
А если два фильтра на странице, как у одного mFilter2 пагинацию просто запретить?
UPD ну, вот так получается &paginator=`nopaginator`, nopaginator — пустой снипет-заглушка
Василий Наумкин
20 мая 2015, 00:31
1
0
Как минимум с тем, что парсер MODX выбирает теги регулярками, создаёт из них объекты и запускает на выполнение.

pdoParser пробует их выполнить без объектов, а если не может — отдаёт в парсер MODX.

Ну а Fenom просто и без затей компилирует шаблон в исполняемый PHP код, который полюбому будет быстрее.

И осталась ли возможность использовать специальные плейсхолдеры типа [[#12.pagetitle]]?
Конечно. Теперь можно даже так:
{$modx->getObject('modResource', 12)->pagetitle}
Андрей
Андрей
20 мая 2015, 00:22
0
А с чем связана такая тормознутость родного парсера MODX? Казалось бы, даже не на рекурсивных вызовах тормоза налицо.
И осталась ли возможность использовать специальные плейсхолдеры типа [[#12.pagetitle]]?

P.S. блин, только все чанки в ИМ на 50к товаров переписал на «быстрые плейсхолдеры». Прошла неделя — бам, новый pdoTools)))
Алексей Карташов
19 мая 2015, 23:14
0
Еее, счас бум тестить!

p.s. а в чём там велосипедность-то?) Небольшая функция, подключение pdoTools'а и вывод чанка, в который можно данные передать — куда ж проще-то?)
Василий Наумкин
19 мая 2015, 22:36
+4
Ну ты и навелосипедил!

Обновляйся на 2.0.0-rc, включай pdoParser при установке, и можно использовать Fenom на страницах сайта и в шаблонах.

Вообще, короче, везде можно.
Александр Котлов
19 мая 2015, 22:34
0
Завтра точно напишу, но думаю что до конца недели.
Алексей Карташов
19 мая 2015, 22:31
0
Ого, здорово!

Тогда позвольте один не скромный вопрос — а когда стоит ожидать третью бету?
Просто как раз прямо сейчас начинаю строить один каталог, в котором нужны вот такие вот групповые характеристики. Я бы делал это на собственных таблицах с редактированием с фронта итд. Но вот сейчас задумался..)
Александр Котлов
19 мая 2015, 22:17
0
Нашел одно неверно заполненое поле, из-за котороно возможно не у всех был виден. С остальным завтра уже попробуем разобраться.
Виталий Батушев
19 мая 2015, 22:10
0
Стала доступна. Но в каком-то безумном виде.
1. Ее не видно в диспетчере пакетов. Там по-прежнему 2.1.10-pl.
2. Ставишь 2.1.10-pl. Точнее, проходишь первый этап — скачивания пакета. Кнопка «Обновить» подкрасилась и стала доступной.
3. Нажимаешь «Обновить», типа, начинается обновлять до 2.2.0-beta.
4. Появляется ДВА элемента: один miniShop2 2.1.10-pl, а другой без имени вообще. У обоих красуются подсвеченные «Обновить».
Что это? Почему?
Алексей
19 мая 2015, 21:58
0
обновляться можно? или все товары магазина уничтожатся навсегда?
Александр Котлов
19 мая 2015, 21:46
0
Поле количество можно добавить в 3 клика, собственно для этого весь механизм и делался) Поля такого в минишопе помоему небыло, нужно было вручную добавлять.

По поводу двух — нет идей, тоде такое было удалял один, по поводу того что второй обновить можно — скорее всего стоит beta-1, а в магазине уже бета 2, там номер беты почему-то не выводится хотя указан.
Александр Котлов
19 мая 2015, 21:39
0
Баг с описаниями есть, будет исправлен, но как ни странно после сохранения в плейсхолдере оно выводится, поэтому не заметил сразу.

Больше типов в планах есть, но чуть позже, пока основная задача — добраться до pl.

Вывод пустых уберем.
Александр Котлов
19 мая 2015, 21:37
0
Странно, проверил несколько раз — есть и работает. На всякий случай вот ссылка на пакет — yadi.sk/d/wK6AmC30gdPN2
Сергей Шлоков
19 мая 2015, 21:37
0
Думаю, эту задачу надо будет делать для дальнейшего развития и популяризации магазина. Ребятам надо взять это на заметку.
Алексей Карташов
19 мая 2015, 20:43
0
А чего там спешить-то?))
if (!function_exists('getArray')) {
  function getArray ($input, $separator = ',') {
    if (is_array($input)) {
      return $input;
    } else
      if (is_string($input)) {
        $trimmedInput = trim($input);
        $firstLetter = substr($trimmedInput, 0, 1);
        $lastLetter = substr($trimmedInput, mb_strlen($trimmedInput,'UTF-8') - 1, 1);
        if (
          ($firstLetter == '{' && $lastLetter == '}') ||
          ($firstLetter == '[' && $lastLetter == ']')
        ) {
          $tmp = json_decode($input, 1);
          if ($tmp) {
            return $tmp;
          }
        } else
          // check for not empty string
          if (trim($input)) {
            $tmp = array_map('trim', explode($separator, $input));
            return $tmp;
          }
      }
    return ($input && !is_object($input)) ? array($input) : array();
  }
}

$output = '';
$options = (!empty($scriptProperties['options'])) ? getArray($scriptProperties['options']) : array();
$options = array_merge($options, array('useFenom' => 1));
if (!is_object($modx->pdoTools) || !($modx->pdoTools instanceof pdoTools)) {
  $fqn = $modx->getOption('pdoFetch.class', null, 'pdotools.pdofetch', true);
  if ($pdoClass = $modx->loadClass($fqn, '', false, true)) {
    $pdoTools = new $pdoClass($modx, $options);
  }
  elseif ($pdoClass = $modx->loadClass($fqn, MODX_CORE_PATH . 'components/pdotools/model/', false, true)) {
    $pdoTools = new $pdoClass($modx, $options);
  }
  else {
    $modx->log(modX::LOG_LEVEL_ERROR, 'Could not load pdoFetch from "MODX_CORE_PATH/components/pdotools/model/".');
    return $output;
  }
} else {
  $modx->pdoTools->setConfig($options);
  $pdoTools = &$modx->pdoTools;
}

$tpl = (!empty($scriptProperties['tpl'])) ? $scriptProperties['tpl'] : '';
if ($tpl) {
  $data = (!empty($scriptProperties['data'])) ? getArray($scriptProperties['data']) : array();
  $output = $pdoTools->getChunk($tpl, $data);
}
return $output;

Но такая глобальная шаблонизация из коробки — это, конечно, будет просто сказка! Ждём-с :)
Роман
19 мая 2015, 20:43
0
Проблема была в ограничении количества запросов к серверу в секунду. Увеличил лимит, решил проблему
Василий Наумкин
19 мая 2015, 20:19
+1
Теперь достаточно написать один простенький сниппет (чтобы не извращаться через tplWrapper pdoResource'а), который подключает pdoTools и с помощью него выводит чанк из параметров сниппета (а в чанке уже можно писать что угодно) и всё, мать его, ВСЁ! xD

Не спеши, скоро будет обновление с улучшенным pdoParser:

Виталий Батушев
19 мая 2015, 20:17
0
Я ничего не понимаю. Мне недоступна эта версия. Последняя доступная версия на modstore — 2.1.10-pl.