Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2013, 02:18
Avatar de ManelGomez
ManelGomez
 
Fecha de Ingreso: diciembre-2007
Ubicación: El Prat de llobregat
Mensajes: 180
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Campo personalizado lista desplegable

Siguiendo con el tema.

Hay que definir una clase de campo en libraries/joomla/form/fields/genero.php como un input.

Código PHP:
<?php
defined
('JPATH_PLATFORM') or die;

JFormHelper::loadFieldClass('list');

class 
JFormFieldGenero extends JFormFieldList {
  
public 
$type 'Genero';    /** The form field type.*/

protected function getInput()    {
    
$attr '';
    
$attr .= $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' '';
    
$attr .= ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' '';
    
$attr .= $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' '';
    
$attr .= $this->multiple ' multiple="multiple"' '';
    
$attr .= $this->element['onchange'] ? ' onchange="' . (string) $this->element['onchange'] . '"' '';
    
$options $this->getOptions();
  
print_r($this->value);
  
print_r($options);  
  die;  
    return 
JHtml::_('genero.listado'$this->name$this->valuenull$options$this->id);
}
}
Este valor "$this->value" me sale en blancos (ninguno), en cambio si lo haces en libraries/joomla/form/filelds/accesslevel.php el valor de $this->value es el valor del nivel de acceso de la tabla viewlevels, que son 1 para publico, 2 = Registrado y 3 especial, y los puedas que puedas haber creado tu.

Si alguien sabe como hacer que la variable $this->value recoga el valor del campo del registro que es el id de otra tabla ("la tabla es la que se comenta anteriormente") para que este sea el selected en la etiqueta html. Esto hace que se muestre el valor del campo de la segunda tabla en la lista desplegable con el valor de su registro.

Un saludo