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


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

 

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

  • J

    Вообщем разобрался, надо в файле filter.js закомментировать строки:

    $('html,body').animate({ scrollTop: Math.round($(tmFilters.config.products_cont).position().top) });

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

    Спасибо!

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

    Здравствуйте! На форуме нашел несколько вопросов "где формируется addit_data", но ответы на эти вопросы ссылались на документацию, а именно на вывод нужных параметров по отдельности такой конструкцией [[+shk_любой доп.параметр]].

    Этот вариант неполх, но меня не устраивает, так как заказчик может захотеть добавить в админке еще какой-либо параметр, но в корзине он не отобразится, потому что я вывожу опции по отдельности. И он будет вынужден вызванивать меня.

    Вопрос. Так всё таки в каком файле формируется содержимое addit_data?🕵

    Читать далее