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

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

Был в сети 10 июня 2026, 17:44
Заказы не принимаю
Просто форма с одним email, без пароля — вот так:
<form action="" method="post">
    <input type="hidden" name="action" value="auth/formLogin"/>
    <h4>Вход</h4>
    <div class="form-group">
        <input type="email" name="email" placeholder="email">
    </div>
    <button class="btn btn-success">Отправить</button>
</form>
Какую еще модерацию?

Черновик — это черновик, неготовый еще результат. Человек начал что-то писать, сохранил, продолжил позже. Когда закончит — опубликует готовый текст.

Tickets изначально были системой для техподдержки (и в этом качестве сегодня используются в modhost и modstore), а потом переросли в дополнение для сообществ. Никакой модерации ни в том, ни в другом случае не требуется. Именно поэтому, сюрприз!, её и нет.

Если же лично тебе, для твоего случая, она нужна — то тебе её и придётся писать. Тем более, что делается это за 15 минут.
Включенный open_basedir подразумевает собственную временную директорию внутри рабочей директории каждого сайта, а не одну общую.

А phpThumb ломится в /tmp, если у него не указана правильная временная директория — именно для этого нужен первый фикс.
Раз больше никому не интересно докопаться до сути вопроса, пришлось это сделать мне.

Итак, в стандартных чанках Tickets используются "
быстрые плейсхолдеры", с префиксом «tickets_» — и это отлично работает при стандартном вызове.

При вызове же через Ajax, все настройки сохраняются в сессию, чтобы восстановить их потом при запросе. При этом, pdoTools сохраняет так же и default настройки, которые обычно не указаны.

Таким образом, вот здесь
$default = array(
	'class' => $class,
	...
	'nestedChunkPrefix' => 'tickets_',
);

// Merge all properties and run!
$pdoFetch->setConfig(array_merge($default, $scriptProperties));
происходит перезапись &nestedChunkPrefix с «tickets_» массива $default на «pdotools_» массива $scriptProperties, из-за чего быстрые плейсхолдеры перестают работать.

Поэтому решение — или указать явно
&nestedChunkPrefix=`tickets_`
или использовать синтаксис Fenom вместо быстрых плейсхолдеров, что уже давно сделано на modx.pro.
Более оптимальный код для добавления опции товара в поисковый индекс:
<?php
switch ($modx->event->name) {
    case 'mse2OnBeforeSearchIndex':
        $key = 'tags'; // имя опции товара
        
        $mSearch2->fields[$key] = 1;
        $q = $modx->newQuery('msProductOption', array(
            'product_id' => $resource->id,
            'key' => $key,
        ));
        $q->select('value');
        if ($q->prepare() && $q->stmt->execute()) {
            $value = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
            if (!empty($value[0])) {
                $resource->set($key, $value);
            }
        }
    break;
}