Как вызвать функцию 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;
}
16 февраля 2022, 20:42


- ВКонтакте
- Telegram
- Viber
- РЎРєРѕРїРСвЂВВВВВВВВровать ссылку
839
0
Поблагодарить автора
Отправить деньги
Комментарии: 8
16 февраля 2022, 20:52
Не знаю что за index вам нужен, но как создавать товары minishop2 программно можно глянуть
тут
тут
16 февраля 2022, 21:07
Там, я уже был. Спасибо.
Мне нужно добавление слов в индекс при создании товара, то есть из плагина. А настройка 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
16 февраля 2022, 21:42
Если функция публичная, думая можно попробовать либо $modx->getService либо $modx->addPackage а потом вызывать нужный метод.
17 февраля 2022, 09:24
Насколько я понял это необходимо:
$modx->runProcessor(
'mgr/index/update',
['id' => $resource->id],
['processors_path' => MODX_CORE_PATH.'components/msearch2/processors/']
);
17 февраля 2022, 09:38
Не внимательно прочитал вопрос :-)
На самом деле mSearch2 автоматом добавляет в индекс данные создаваемого ресурса.
Если в данном случае этого не происходит и не получается через процессор, значит — да, что-то в системе не работает. Надо дебажить.
На самом деле mSearch2 автоматом добавляет в индекс данные создаваемого ресурса.
Если в данном случае этого не происходит и не получается через процессор, значит — да, что-то в системе не работает. Надо дебажить.
17 февраля 2022, 12:14
Проверил, у меня ресурс программно создаётся и даже в 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
06 июля 2023, 15:07
Хорошая вещь, и после переиндексации слов вывести сниппет keywords_mse2.
<?php
/* Ключевые слова из индекса слов с ключевыми фразами или TV keywords. */
$q = $modx->query('SELECT resource, word FROM modx_mse2_words WHERE resource = '.$modx->resource->id);
if (is_object($q)) {
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
$result .= $row['word'].', ';
}
}
$seoKeywords = $modx->getObject('seoKeywords', array('resource' => $modx->resource->id));
if (is_object($seoKeywords)) {
// try seoPro
if (!$seoKeywords->get('keywords')) {
return mb_strtolower(substr($result,0,-2));
} else {
return mb_strtolower($result) . $seoKeywords->get('keywords');
}
} else {
//try {$_modx->resource['keywords']}
$resource = $modx->getObject('modResource', $modx->resource->id);
if (!$resource->getTVValue('keywords')) {
return mb_strtolower(substr($result,0,-2));
} else {
return mb_strtolower($result) . $resource->getTVValue('keywords');
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Здесь упомянуты:
Компонент | Текущая версия | Закачки |
mSearch2 | 1.14.12-pl от 09.01.2025 | 19 273 |
miniShop2 | 4.4.0-pl от 06.08.2024 | 26 389 |
pdoTools | 2.13.2-pl от 02.09.2021 | 54 258 |
Вчера в 21:11
Здравствуйте
Есть желание использовать компонент polylang для автоматизации перевода с наименьшими усилиями, но есть пару вопросов, которые хотелось ...
Polylang 143
Вчера в 16:30
Добрый день.
Удалите плагин vpSystem от пакета.
[VirtualPage] - Виртуальные страницы. 183
Вчера в 08:40
Хочестя в тикеты при сохранении комментария добавить кнопку «проверить на ошибки» и при нажатии на нее проверить комментарий на ошибки в нейросети сох...
pbStudio: Создаём сайт с PageBlocks – настройка и главная страница 6
Вчера в 08:36
Нет, через апи идет запрос в ChatGPT, который формирует необходимые данные о блоке, а дальше PageBlocks их разбирает и создает все нужные элементы.
PageBlocks 2.6.0. Настройка меню MODX и гибкое управление страницей пользователя 12
Вчера в 00:03
Не работает парсинг с vk.com, vkvideo.ru
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек 9
17 апреля 2025, 23:01
Можете тоже подсказать как победить данную ошибку?
msGallerySearch - загрузка изображений в галерею minishop2 по ссылке и Google поиск картинок 44
17 апреля 2025, 21:35
Действительно! Самого главного я и не обозначил! Спасибо! Поправлю заголовок.
Речь идет именно о панели менеджера и возможности управления заказами.
...
Вывод перечня заказанных товаров в таблицу с заказами minishop2 (панель менеджера) 8
17 апреля 2025, 17:49
Очевидно ты используешь источник файлов, поэтому в админке путь прописан от источника, хочешь полный путь, откажись от источника файлов.
Не открываются загруженные файлы пишет страница не найдена 2
17 апреля 2025, 15:08
Привет, Henk. Спасибо за ответ! В посте по ссылке меня больше всего заинтересовала фраза «мы интегрировали AI в медиа-менеджер, чтобы значительно упро...
MODX/AI Hackathon Part 2 (27 марта) 4
17 апреля 2025, 13:17
в preg_match проверка проходит, и туда 100% приходит url
Здравствуйте! Первый раз такое вижу, у слеша, не 1 символ в строке, а 9!! Как это делает MODX 2