Как вызвать функцию Index() при создании нового товара mSearch2?
Через runProcessor (mgr/index/create) или через newObject не получается.
<?php
switch ($modx->event->name) {
case 'OnDocFormSave':
// Таблицу запросов могу вызвать
$u = $modx->getCollection('mseQuery');
echo count($u);
// А таблицу слов, как?
echo $modx->getTableName('mseWord');
if ($resource->id == 410) {
// Подскажите, как выполнить индексацию слов
}
break;
}
Поблагодарить автора
Отправить деньги
Комментарии: 7
Не знаю что за index вам нужен, но как создавать товары minishop2 программно можно глянуть
тут
тут
Там, я уже был. Спасибо.
Мне нужно добавление слов в индекс при создании товара, то есть из плагина. А настройка mse2OnBeforeSearchIndex, что-то не срабатывает и в бд слова не пишутся. От того и вопрос, как выполнить индексацию слов при том, что есть публичная функция Index()
Индексация происходит в админке и за неё отвечает assets/components/msearch2/js/mgr/widgets/index.form.js:27
core/components/msearch2/processors/mgr/index/create.class.php:148
Мне нужно добавление слов в индекс при создании товара, то есть из плагина. А настройка mse2OnBeforeSearchIndex, что-то не срабатывает и в бд слова не пишутся. От того и вопрос, как выполнить индексацию слов при том, что есть публичная функция Index()
Индексация происходит в админке и за неё отвечает assets/components/msearch2/js/mgr/widgets/index.form.js:27
core/components/msearch2/processors/mgr/index/create.class.php:148
Если функция публичная, думая можно попробовать либо $modx->getService либо $modx->addPackage а потом вызывать нужный метод.
Насколько я понял это необходимо:
$modx->runProcessor(
'mgr/index/update',
['id' => $resource->id],
['processors_path' => MODX_CORE_PATH.'components/msearch2/processors/']
);
Спасибо, это самое, то что надо.
Не внимательно прочитал вопрос :-)
На самом деле mSearch2 автоматом добавляет в индекс данные создаваемого ресурса.
Если в данном случае этого не происходит и не получается через процессор, значит — да, что-то в системе не работает. Надо дебажить.
На самом деле mSearch2 автоматом добавляет в индекс данные создаваемого ресурса.
Если в данном случае этого не происходит и не получается через процессор, значит — да, что-то в системе не работает. Надо дебажить.
Проверил, у меня ресурс программно создаётся и даже в searchable 1 — В индекс не добавляется. Сейчас из консольки попробовал запустить процессор, всё хорошо. Ваше решение помогло, спасибо огромное, а на дебаге вот:
Notice: Trying to access array offset on value of type int in /core/components/msearch2/phpmorphy/src/fsa/access/fsa_sparse_file.php on line 32
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.