Поля формы триггера October CMS при нескольких условиях

Я использую форму с несколькими полями. Когда представление формы создания загружено, будет отображаться только поле выбора, а остальные поля будут скрыты. Как только я изменю параметры поля выбора, определенные поля, относящиеся к параметру, станут видимыми и будут скрыты. Я сделал это с помощью триггерного события из параметров поля формы.

product_type:
    label: Choose type
    type: dropdown
    options:
        web: Web 
        mobile: Mobile 

title:
    label: Title
    type: text
    trigger:
        action: show
        field: product_type
        condition: value[web]

Он работает хорошо, но поскольку некоторые конкретные поля должны быть видны для двух или более вариантов выбора, я не смог применить этот метод. Скажем, например, я хочу, чтобы поле цена отображалось как в Интернете, так и на мобильных устройствах. Но я не смог установить условие триггера с дополнительным значением. Я сослался на это из документации. https://octobercms.com/docs/ui/input-trigger. Но это не работает

price:
    label: Price
    type: text
    trigger:
        action: show
        field: product_type
        condition: value[web][mobile]

На данный момент я решил эту проблему, определив в модели метод filterFields. https://octobercms.com/docs/backend/forms#filter-form-fields. Также я знаю, как это сделать в js

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


person Vijay Wilson    schedule 12.04.2016    source источник


Ответы (2)


У меня так работает

цена:

label: Price
type: text
trigger:
    action: show
    field: product_type
    condition: value[web] | value[mobile]
person João Serra    schedule 12.05.2016
comment
Так что разница в использовании трубы | для обозначения «или» - вы хотите отображать значения как для веб-сайтов, так и для мобильных устройств, а не для веб-сайтов и мобильных устройств. - person Paul Gregory; 12.05.2016
comment
вы имеете в виду "и"? если ты можешь это сделать, я не знаю, извини - person João Serra; 12.05.2016
comment
Даже это работает value [web] [mobile]. Я отправил ответ. - person Vijay Wilson; 12.05.2016

Даже это работает value [web] [mobile]

label: Price
type: text
trigger:
    action: show
    field: product_type
    condition: value[web][mobile]

но не с текущей версией october-min.js, потому что некоторая часть js устарела. Я определил это, просмотрев источник страницы файла js из документации https://octobercms.com/docs/ui/input-trigger. В этой документации упоминается, что это возможно, и это также работает с примером, представленным там. Поэтому замените функцию условия триггера, определенную в локальном файле js, на функцию условия триггера, определенную в файле js документации. На локальном уровне файл js находится в папке modules \ backend \ assets \ js \ october-min.js. Когда вы просматриваете исходный код страницы, вы можете найти iframe; просмотрите источник страницы iframe и получите файл js. Или же вы можете получить функцию условия триггера из http://kopy.io/tyehc.

Но помните, что это только для того, чтобы сказать, что условие триггера для нескольких значений возможно, я до сих пор не знаю, почему он не работает с установленным october-min.js, возможно, команда October CMS могла бы над этим работать, и они могли бы объявить официальное обновление.

person Vijay Wilson    schedule 12.05.2016