Для проверки опции товара на наличие лексикона в MODX вы можете использовать такой код:
$productId = 1; // ID товара $optionKey = 'your_option_key'; // Ключ опции // Получаем объект товара по его ID $product = $modx->getObject('msProduct', $productId); // Проверяем, существует ли опция с указанным ключом if ($product->getOption($optionKey)) { // Опция существует // Получаем объект опции $option = $product->getOption($optionKey); // Проверяем, есть ли лексикон для этой опции if ($option->get('lexicon')) { // Лексикон для опции существует // Делаем необходимые действия, связанные с лексиконом // например, получаем переводы из лексикона $translations = $modx->lexicon->load($option->get('lexicon')); // Выводим переводы из лексикона echo $translations['your_translation_key']; } else { // Лексикон для опции не существует echo 'Лексикон для опции не найден'; } } else { // Опция не существует echo 'Опция товара не найдена'; }
В этом коде мы сначала получаем объект товара по его ID. Затем, используя метод $product->getOption($optionKey)
, проверяем существование опции с указанным ключом. Если опция существует, мы получаем объект опции Option
и проверяем существование лексикона для этой опции с помощью $option->get('lexicon')
. Если лексикон существует, мы выполняем необходимые действия, связанные с лексиконом, например, загружаем переводы из лексикона с помощью $modx->lexicon->load($option->get('lexicon'))
и выводим их. Если лексикон не существует, мы выводим сообщение об ошибке.
Обратите внимание, что в приведенном коде предполагается, что MODX уже инициализирован и установлены необходимые параметры среды. Если этого не произошло, вам следует добавить код инициализации перед использованием приведенного кода.