Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
29 апреля 2013, 17:40
0
Подскажу — так вообще ничего не выйдет.

Эти параметры лежат в отдельной таблице, getResources про них не знает. Вот тут подробнее.
Василий Наумкин
29 апреля 2013, 17:19
0
Через pdo/xPDO.

Чтобы потом находить товары по этим тегам — тоже придётся программировать.
Василий Наумкин
29 апреля 2013, 17:17
0
Смотри, вот сниппет, который построит тебе дерево ресурсов глубиной в 2 уровня, от указанного родителя.

$parent = 3;
$exclude_parents = array(3,13,69,81);
$template = 4;

$ids = $modx->getChildIds($parent, 1, array('context' => 'web')); // получаем всех потомков родителя

$q = $modx->newQuery('modResource', array('parent:IN' => $ids, 'OR:id:IN' => $ids)); // Выбираем подкатегории + категории
$q->andCondition(array('id:NOT IN' => $exclude_parents, 'template' => $template)); // Убираем ненужные по id и шаблону
$q->select('id,pagetitle,parent');	// Нам нужно только 3 поля
// Поехали!
$resources = array();
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		if ($row['parent'] == $parent) {
			if (isset($resources[$row['id']])) {
				$resources[$row['id']] = array_merge($resources[$row['id']], $row);
			}
			else {
				$resources[$row['id']] = $row;
				$resources[$row['id']]['children'] = array();
			}
			
		}
		else {
			$resources[$row['parent']]['children'][$row['id']] = $row;
		}
	}
}
echo'<pre>';print_r($resources);die;

Вот такой будет результат.
Array
(
    [1] => Array
        (
            [id] => 1
            [pagetitle] => Главная
            [parent] => 0
            [children] => Array
                (
                )

        )

    [11] => Array
        (
            [children] => Array
                (
                    [2] => Array
                        (
                            [id] => 2
                            [pagetitle] => Категория 1
                            [parent] => 11
                        )

                    [4] => Array
                        (
                            [id] => 4
                            [pagetitle] => Корзина
                            [parent] => 11
                        )
                )
            [id] => 11
            [pagetitle] => miniShop2
            [parent] => 0
        )
)
Ну а дальше ты можешь пройтись по нему foreach() и оформить как угодно. Обрати внимание, что у всез нужных ресурсов должен быть один указанный шаблон, иначе дерево может быть неправильным.
Василий Наумкин
29 апреля 2013, 13:32
0
А нет ли у тебя в чанках сниппета какого-то, может он ошибку выдает или рекурсию устраивает?

Все письма парсятся как страницы сайт. Глянь в лог сервера и системный журнал, возможно у тебя прям ошибка php.
Василий Наумкин
29 апреля 2013, 08:57
0
Разобрались, вот ответ.
Василий Наумкин
28 апреля 2013, 19:40
0
Раз не сохраняется — значит что-то неправильно. Если правильно — значение пишется в сессию и сохраняется при обновлении страницы.

Либо у меня ошибка, либо ты что-то не так вводишь.
Там используется функция filter_var() — у тебя версия php какая?

Можешь прислать логин\пароль от сайта на bezumkin@ya.ru, поглядеть?

Василий Наумкин
28 апреля 2013, 18:34
0
Может, неправильно заполнил?

Если страницу после этого обновить, оно заполнено, или нет?
Василий Наумкин
28 апреля 2013, 16:11
0
Вот это вот у тебя где прописано?
ini_set('apc.cache_by_default', 'Off');

Пропиши в /index.php, если оно не там. Если и тогда не поможет — пришли данные от сайта на bezumkin@yandex.ru — погляжу.
Василий Наумкин
28 апреля 2013, 13:21
0
Попробуй еще удалить директорию /core/cache/.

В phpinfo() он и не должен отключаться, если только вообще модуль не загружать — но так не надо, будет памяти больше уходить.
Василий Наумкин
28 апреля 2013, 04:57
0
Лично я с Evolution не работаю уже года 2.

Лучше на modx.im про него спрашивать.
Василий Наумкин
28 апреля 2013, 04:56
0
Нужно расширить класс оформления заказа.

Дополнительные данные можно хранить в поле properties объекта msOrder.
Василий Наумкин
27 апреля 2013, 20:51
0
Да, нормально.

Можно через плагин на событие OnBeforeDocFormSave, но это сложнее и выгоды нет.
Василий Наумкин
27 апреля 2013, 20:26
0
Тикет — это CRC, у него свой процессор, который вызывается стандартным. Проверка вот тут.

Можно просто сделать в форме скрытое поле content с любым символом — и будет работать.
Василий Наумкин
27 апреля 2013, 19:11
0
Не знаю, у меня работает нормально.

В любом случае, это вина лежит на взаимодействии MODX с php-apc, ибо сам HA ничего не кэширует, а просто кладёт настройки с сессию обычным способом.
Василий Наумкин
27 апреля 2013, 14:43
0
А в настройках источника файлов есть такой размер?

Генерируются ли такие превьюшки?
Василий Наумкин
27 апреля 2013, 09:59
0
Это код из парсера MODX, поэтому разницы и не должно быть.
Василий Наумкин
27 апреля 2013, 09:40
0
Удаленный доступ ко всей файловой системе сервера с правами суперпользователя — это сильно.

Безопасность? Не, не слышал.
Василий Наумкин
27 апреля 2013, 06:02
0
Да, нужно парсить самостоятельно.

$maxIterations= (integer) $modx->getOption('parser_max_iterations', null, 10);
$modx->getParser()->processElementTags('', $out_html, false, false, '[[', ']]', array(), $maxIterations);
$modx->getParser()->processElementTags('', $out_html, true, true, '[[', ']]', array(), $maxIterations);