estoy poblando Seleccionar un elemento de formulario, y si intento usar entidades HTML en el valor, se obtienen de convertidos, en lugar de mostrar el carácter especial.usar entidades HTML en una forma Zend Seleccionar
este código:
$form->field_name->addMultiOption('value', ' • label');
Renders:
<option value="one">&nbsp;&bull; label</option>
Pero yo quiero que sea:
<option value="one"> • label</option>
¿Cómo se utiliza entidades HTML aquí?
¿Pista?
cavé en el código y encontró que se trata de utilizar la función de escape()
del Zend Ver resumen en la etiqueta Y el valor. Tal vez alguien sepa cómo anular/sobrecargar esta función para un elemento de formulario específico? No quiero anular ese comportamiento por defecto.
función de la clase Zend_View_Helper_FormSelect
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;
}
Ésta es la función de la clase 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);
}
¿Qué desea que su salida se espera que sea? –
@Anthony - He actualizado la cuestión para hacer frente a lo que mi salida deseada es. – Sonny