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


[Урок] 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

 

Последние комментарии

  • R

    @Andchir Спасибо. Получилось.

    Читать далее
  • Похоже, что в этой форме у вас используется FormIt. Но, как я уже писал выше, он там не нужен. Сначала нужно добавить товар в корзину, тогда и будет срабатывать плагин. Формы добавления товара в корзину я у вас не увидел. Далее можно сделать хитрость, добавить форму (можно на этой же странице), где будет кнопка "Подтвердить" и скрытые поля, которые будут заполнены данными из предыдущей формы.
    В общем пока я не увидел даже намека на то, что Вы понимаете что делаете, поэтому дальше я не помощник.

    Читать далее
  • K

    Уже разобрался, забыл указать тв в системных настройках tag_mgr2.numeric
    Спасибо спец. отделу. Канал открылся довольно быстро.

    Читать далее