Мне было интересно, как я могу добавить пробелы для значений множественного выбора при создании форм Zend из файлов XML.
Пробовал следующее:
<?xml version="1.0" encoding="UTF-8"?>
<settingsinfo>
<lp_form_label_font_family>
<type>Select</type>
<options>
<label>Landing Page Form Label Font Family</label>
<description>Landing Page Form Label Font Family</description>
<multioptions>
<option value="Open Sans">Open Sans</option>
<option value="Droid Sans">Droid Sans</option>
<option value="Sans Serif" >Sans Serif</option>
<option value="Arial">Arial</option>
<option value="Helvetica">Helvetica</option>
</multioptions>
<required></required>
</options>
</lp_form_label_font_family>
</settingsinfo>
Вышеуказанное генерирует:
<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
<optgroup id="lp_form_label_font_family-optgroup-option" label="option">
<option value="0">Open Sans</option>
<option value="1">Droid Sans</option>
<option value="2">Sans Serif</option>
<option value="3">Arial</option>
<option value="4">Helvetica</option>
</optgroup>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>
Попытка с:
<?xml version="1.0" encoding="UTF-8"?>
<settingsinfo>
<lp_form_label_font_family>
<type>Select</type>
<options>
<label>Landing Page Form Label Font Family</label>
<description>Landing Page Form Label Font Family</description>
<multioptions>
<OpenSans>Open Sans</OpenSans>
<DroidSans>Droid Sans</DroidSans>
<sans-serif>Sans Serif</sans-serif>
<arial>Arial</arial>
<helvetica>Helvetica</helvetica>
</multioptions>
<required></required>
</options>
</lp_form_label_font_family>
</settingsinfo>
Формирует:
<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
<option value="OpenSans">Open Sans</option>
<option value="DroidSans">Droid Sans</option>
<option value="sans-serif">Sans Serif</option>
<option value="arial">Arial</option>
<option value="helvetica">Helvetica</option>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>
Что достаточно близко, но мне нужны пробелы для значений.
Мне действительно нужно иметь, например:
<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
<option value="Open Sans">Open Sans</option>
<option value="Droid Sans">Droid Sans</option>
<option value="sans-serif">Sans Serif</option>
<option value="arial">Arial</option>
<option value="helvetica">Helvetica</option>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>
Любая подсказка о том, как добавить пробелы для значений моих семейств шрифтов? Как я должен изменить этот XML?
Вы можете попытаться перестроить параметры элемента следующим образом:
$select = $form->getElement('lp_form_label_font_family');
$options = array();
foreach($form->getElement('lp_form_label_font_family')->getMultiOptions() as $option){
$options[$option] = $option;
}
$form->getElement('lp_form_label_font_family')->setMultiOptions($options);
Других решений пока нет …