Добавление записи в лексикон через API

Всем привет!
Нашел небольшой затык, подскажите, пожалуйста.

При установке пакета modExtra можно добавлять новые записи, но они добавляются в пространство имен пакета.
Мне нужно, чтобы при установке запись добавлялась в пространство имен minishop2. Думал сделать через резолверы, но не могу найти способа — метод set() для лексикона не сохраняет значения.

Есть у кого идея, как это сделать?

Думаю посмотреть, как это происходит в modExtra и немного переделать, но, боюсь, много времени на разбор уйдет.
Олег
03 июля 2017, 07:49
modx.pro
973
0

Комментарии: 3

Володя
03 июля 2017, 11:25
+1
if (!$entry = $modx->getObject('modLexiconEntry', array('name' => $key, 'language' => $lang))) {
    /** @var modLexiconEntry $entry */
    $entry = $modx->newObject('modLexiconEntry', array(
        'topic'     => $topic,
        'namespace' => 'minishop2',
        'name'      => $key,
        'language'  => $lang,
    ));
}
/** @var modLexiconEntry $entry */
$entry->fromArray(array_merge($entry->toArray(), array(
    'value' => $value,
    'topic' => $topic,
)));

$entry->save();
    Олег
    03 июля 2017, 11:28
    0
    Отлично! Спасибо большое!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
3