Estoy haciendo una helper que me permite hacer una composicion de elementos de un formulario ya que un campo de mi formulario posee dos partes ( año y numero de la orden) hasta aca todo bien me resulto los helpers y puedo guardar el dato en la base de datos. El problema es que cuando deseo editar la orden no me carga los datos en los respectivos campos. Estoy revisando y la verdad no encuentro el problema, espero alguien me pueda ayudar.
Pongo los codigos que he desarrollado:
../library/My/Form/Element/Number.php
Código PHP:
<?php
class My_Form_Element_Number
extends Zend_Form_Element_Xhtml
{
public $helper = "numberElement";
protected $anho = null;
protected $numero = null;
function setAnho($num)
{
$this->anho = $num;
return $this;
}
function setNumero($num)
{
$this->numero = $num;
return $this;
}
public function setValue($value)
{
if (is_array($value)
&&(isset($value['anho']))
&&(isset($value['numero']))
)
{
$this->setAnho($value['anho'])
->setNumero($value['numero']);
}
}
public function getValue()
{
if (! $this-><anho || ! $this->numero)
return false;
return $this->anho .'/'. $this->numero;
}
}
Código PHP:
<?php
class My_View_Helper_NumberElement
extends Zend_View_Helper_FormElement
{
protected $html = '';
public function numberElement($name, $value = null, $attribs = null)
{
$anho = $numero= '';
if ($value)
list($anho, $numero) = split('/',$value);
$helper = new Zend_View_Helper_FormText();
$helper->setView($this->view);
$this->html .= $helper->formText($name . '[anho]',$anho,array('size'=>2,'maxlength'=>4));
$this->html .= $helper->formText($name . '[numero]',$numero,array('size'=>4,'maxlength'=>6));
return $this->html;
}
}
Código PHP:
<?php
class Form_ordenForm
extends Zend_Form
{
public function init()
{
$this->setMethod('post');
$numero = new My_Form_Element_Number('numero');
$numero->setLabel('Numero de Orden')
->setRequired(true);
$submit = new Zend_Form_Element_Submit('submit');
$this->addElements(array($numero, $submit));
}
}