Zapełniam element Wybierz formularz, a jeśli spróbuję użyć elementów HTML w wartości, zostanie on przekonwertowany, zamiast wyświetlać znak specjalny.Używanie encji HTML w formularzu Zend Wybierz
ten kod:
$form->field_name->addMultiOption('value', ' • label');
Renders:
<option value="one">&nbsp;&bull; label</option>
Ale chcę go mieć:
<option value="one"> • label</option>
Jak używać jednostek HTML tutaj?
Wskazówka?
I wykopali w kodzie i stwierdził, że jest za pomocą funkcji escape()
z Zend View streszczenie na etykiecie I wartość. Może ktoś wie jak nadpisać/przeciążyć tę funkcję dla konkretnego elementu formularza? Nie chcę domyślnie przesłonić tego zachowania.
funkcji z klasy
protected function _build($value, $label, $selected, $disable)
{
if (is_bool($disable)) {
$disable = array();
}
$opt = '<option'
. ' value="' . $this->view->escape($value) . '"'
. ' label="' . $this->view->escape($label) . '"';
// selected?
if (in_array((string) $value, $selected)) {
$opt .= ' selected="selected"';
}
// disabled?
if (in_array($value, $disable)) {
$opt .= ' disabled="disabled"';
}
$opt .= '>' . $this->view->escape($label) . "</option>";
return $opt;
}
Ten Zend_View_Helper_FormSelect
jest funkcja z klasy Zend_View_Abstract
:
private $_escape = 'htmlspecialchars';
/* SNIP */
public function escape($var)
{
if (in_array($this->_escape, array('htmlspecialchars', 'htmlentities'))) {
return call_user_func($this->_escape, $var, ENT_COMPAT, $this->_encoding);
}
return call_user_func($this->_escape, $var);
}
Czego chcesz, aby moc się spodziewać? –
@Anthony - Zaktualizowałem pytanie, aby podać, jaki jest pożądany wynik. – Sonny