shkOptions и его плейсхолдер [[+selected]]



  • Здравствуйте, скажите как правильно использовать post_name, чтобы нужное мне значение было помечено selected через аналогичный плейсхолдер [[+selected]]?

    Из документации: post_name - Названия полей в форме. Например вывод при оформлении заказа. Нужно для работы плейсхолдера [[+selected]] - выбранное значение.



  • В общем так и не разобрался я как это делается и пришлось переписать снипет.

    Заменил там строку:

    $conf['selected'] = ( isset( $post_name[$index] ) && isset( $_POST[ $post_name[$index] ] ) && $_POST[ $post_name[$index] ] == $conf['value'] ? 'selected="selected"' : '' );
    

    на

    if (isset( $selected )) {
      $conf['selected'] = ( isset( $selected ) && ($selected == $conf['value']) ? 'selected="selected"' : '' );
    } else {
      $conf['selected'] = ( isset( $post_name[$index] ) && isset( $_POST[ $post_name[$index] ] ) && $_POST[ $post_name[$index] ] == $conf['value'] ? 'selected="selected"' : '' );
    }
    

    И теперь если в вызове сниппета есть параметр &selected то значение, которое будет помечаться как selected будет браться именно из него, иначе же будет смотреть в POST запрос.

    Вызов сниппета:

    [[!shkOptions?
      &get=`delivery`
      &post_name=`shk_delivery`
      &selected=`Сочи (Центр)` // ваше значение которое будет помечаться как selected
      &toPlaceholders=`1`
      &pl_prefix=`shkopt_`
      &tpl=`select_option`]]
    
    [[!+shkopt_delivery]]  // плейсхолдер
    


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