4/8/11

Añadir ordenación de columnas en una tabla en Joomla! 1.6

Intentando añadir la ordenación por columnas en mi componente he encontrado esto http://docs.joomla.org/Adding_sortable_columns_to_a_table_in_a_component pero está programador para Joomla! 1.5.

Al final he conseguido que funcione perfectamente realizando los siguientes cambios.


Modelo

queda así
        function __construct()
        {
            parent::__construct();

            global $mainframe, $option;

            $filter_order     = JApplication::getUserStateFromRequest(  $option.'filter_order', 'filter_order', 'name', 'cmd' );
            $filter_order_Dir = JApplication::getUserStateFromRequest( $option.'filter_order_Dir', 'filter_order_Dir', 'asc', 'word' );           
       
            $this->setState('filter_order', $filter_order);
            $this->setState('filter_order_Dir', $filter_order_Dir);
        }

        function getUserState($key) {
            return JApplication::getUserState($key);
        }
       
        function setUserState($key, $value) {
            return JApplication::setUserState($key, $value);
        }
Como se observa he tenido que cambiar el $mainframe por la llamada a JApplication y como consecuencia de ello he tenido que implementar el setUserState y el getUserState.

Vista

Quedaría de la sigueinte forma
        function display($tpl = null)
        {
   
            // Get data from the model
            $items = $this->get('Items');
            $pagination = $this->get('Pagination');
            $state = $this->get('State');
   
            $state = $this->get('State');
                   
            $lists['order_Dir'] = $state->get( 'filter_order_Dir' );
            $lists['order']     = $state->get( 'filter_order' );
             // Assign data to the view
            $this->items = $items;
            $this->pagination = $pagination;
            $this->lists = $lists;
   
            parent::display($tpl);
        }
Se observa que cambia la recogida de datos del modelo así como la asignación de datos a la vista.


Todo lo demás es igual que lo indica el enlace.

No hay comentarios:

Publicar un comentario