Предоставление предопределенного списка параметров для открытого элемента в представлении в Drupal? - PullRequest
0 голосов
/ 03 августа 2010

У меня есть вид, который фильтрует по годам. Год - это обычное текстовое поле CCK для типа контента. Я выставил это поле в представлении, чтобы пользователь мог ввести значение для него. Например. 2010. Затем будут показаны все типы содержимого с полем, установленным в 2010. Моя проблема в том, что я не хочу, чтобы пользователь вводил значение. Я хочу изменить это текстовое поле на выпадающий с несколькими годами.

Мои варианты:

  1. Взломай это с JQuery -> ОЧЕНЬ ПЛОХО
  2. Отредактируйте выставленное значение, используя какой-то хук или что-то, ДО того, как оно выведено на страницу
  3. Есть ли другие варианты?

У меня вопрос, как мне сделать вариант 2 или, в худшем случае, вариант 3?

1 Ответ

2 голосов
/ 03 августа 2010

Когда вы редактируете поле CCK в Управление полями , вы можете установить допустимые значения для этого поля. Если вы вернетесь в представление, у вас будет новый фильтр, Поле - разрешает значения , что даст вам меню выбора допустимых значений при его представлении.

Если вы не хотите ограничивать значения при создании, вам придется изменить открытую форму в пользовательском модуле:

function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form_id === 'views_exposed_form') {
    // Change field_test_value to the name of your field
    $form['field_test_value']['#type'] = 'select';
    $form['field_test_value']['#options'] = array(
      '' => '', 
      '2010' => '2010', 
      '2009' => '2009');
  }
}

См. Справку по API формы , чтобы узнать, что еще можно сделать.

...