[Урок] TV в виде списка с выбором значений из сниппета


  • Администраторы

    Пример реализации TV со списком значений, который формируется в сниппете. Вы можете написать свой сниппет на примере моего. В данном случае формируется список методов доставки из настроек SHK3.

    1. Создаем сниппет с названием "tvGetDelivery" с таким кодом:
    /*
    
    tvGetDelivery
    TV input Option Values:
    
    @EVAL return $modx->runSnippet('tvGetDelivery');
    
    */
    
    $modelpath = $modx->getOption('core_path') . 'components/shopkeeper3/model/';
    $modx->addPackage( 'shopkeeper3', $modelpath );
    
    $deliveryConfig = $modx->getObject( 'shk_config', array('setting' => 'delivery') );
    $deliveryConfig = $deliveryConfig ? json_decode( $deliveryConfig->get('value'), true ) : array();
    
    $temp = array('- Not selected -==');
    foreach($deliveryConfig as $conf){
        $temp[] = $conf['label'] . '==' . $conf['price'];
    }
    
    return implode( '||', $temp );
    
    1. Создаем TV с именем "delivery_type". На вкладке "Параметры ввода" (input options) выбираем "Тип ввода" (Input Type) = "Список (одиночный выбор)".

    2. В поле "Возможные значения" (Input Option Values) вставляем такой код:

    @EVAL return $modx->runSnippet('tvGetDelivery');
    
    1. Привязываем TV к шаблону и сохраняем.

    Готово. Теперь в параметрах документа (ресурса) у нас есть такой список:

    0_1484566634496_screenshot_014.png



Последние темы

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.