Orchard 1.8 CMS: каскадные раскрывающиеся списки в модуле пользовательских форм

Я разрабатываю свой первый сайт Orchard (v1.8). Мне нужно реализовать форму с каскадными раскрывающимися списками, т. е. когда пользователь выбирает вариант из раскрывающегося списка category, раскрывающийся список items ниже будет заполнен элементами, которые относятся к только той же категории.

В идеале параметры категории будут использовать таксономию категорий, которую я добавил. Элементы категории будут элементами контента, относящимися к выбранному термину таксономии.

Я просмотрел модуль Пользовательские формы, но не знаю, как это можно сделать, и не вижу очевидного способа сделать это в CMS?

Эта работа является частью пользовательского модуля, который я пишу, поэтому, если у вас есть идеи, как это можно сделать на C#, это действительно поможет мне.


person mdon88    schedule 01.05.2014    source источник
comment
Я попытался создать новый тип контента в CMS, в котором есть поля, необходимые для формы, которые затем могут использоваться модулем пользовательских форм. Я добавил поле для таксономии категорий, но нет возможности сделать его раскрывающимся. По сути, я выполнил шаги по созданию формы и могу отобразить ее во внешнем интерфейсе, я просто не могу понять, как реализовать каскадные раскрывающиеся списки с использованием таксономии или любого другого типа.   -  person mdon88    schedule 02.05.2014


Ответы (1)


Нет встроенного поля, которое будет вести себя таким образом, поэтому вам придется создать свое собственное. Настройки поля на уровне типа контента могут предоставлять выбор между таксономиями в системе. Затем драйвер поля может получить этот параметр, использовать службу таксономии для извлечения терминов и передать их в форму редактора для поля. Затем шаблон для формы редактора может отформатировать его как раскрывающийся список и связать событие изменения в этом раскрывающемся списке. При выборе нового термина скрипт отправляет запрос ajax в действие контроллера, также предоставленное модулем. Действие получает идентификатор элемента содержимого термина в качестве параметра, запрашивает службу таксономии для элементов, помеченных этим термином, и отправляет обратно результат JSON с идентификаторами и отображаемым текстом элементов. Сценарий на стороне клиента получает эти данные и заполняет ими второе раскрывающееся меню. В методе редактора сообщений драйвера сохраните выбранный элемент содержимого в хранилище поля.

person Bertrand Le Roy    schedule 02.05.2014
comment
Спасибо за помощь, Бертран. Я почти закончил с этим сейчас, но я немного не уверен в полях типа контента. Вы хотите сказать, что у меня будет два поля? Один для хранения выбранного термина таксономии, а другой для хранения элемента контента? - person mdon88; 14.05.2014
comment
Нет. Одно поле с одним параметром (таксономия) и двумя свойствами: термином и элементом. - person Bertrand Le Roy; 14.05.2014