Drupal переопределяет существующие значения списка опций - PullRequest
0 голосов
/ 01 декабря 2011

В настоящее время ссылка на объект не поддерживает фильтрацию (через представления, подобные ссылкам).Я должен отфильтровать возвращенный результат списков опций вручную через hook_form_alter.

$new_options = array(1 => 'One', 2 => 'Two', 3 => 'Three'); // while old values without filtering results in 10 items
$form['field_entityreference'][$lang]['#options'] = $new_options;

Это отлично работает на переднем конце, но когда я смотрю через dsm ($ form); старые значения все еще там.

Пара попыток безрезультатно:

   if ($old_options = $form['field_entityreference'][$lang]['#options']) {
     foreach ($old_options as $key => $old_option) {
       unset($form['field_entityreference'][$lang]['#options'][$key]);
     }
  }

Или даже unset($form['field_entityreference'][$lang]['#options']); С помощью array_diff_key все еще сохраняются старые опции.

Внешний интерфейс просто отличнопоказаны только новые параметры, но мне нужно исключить ненужные из источника, поскольку правила всегда оцениваются как истина, если они не полностью удалены, что является неожиданным.

Как удалить устаревшие старые значения, чтобы тольконовые значения хранятся даже в бэкэнде?

Полезной функции еще нет: http://drupal.org/node/1085704. Любая подсказка будет очень признательна.Спасибо

1 Ответ

0 голосов
/ 01 декабря 2011

Извините, что беспокою.Это вопрос размещения dsm ().На самом деле все хорошо.Проблема в dsm ();был всегда помещен перед любыми переопределениями, и друпал все еще читал старые значения.Размещение DSM ();после переопределения отображаются ожидаемые результаты, что за борьба :).Правила это другая история.

...