SlideShare una empresa de Scribd logo
Taller: Desarrollo de extensiones en Joomla! 1.6




Jordi Vila Gallardo jordi.vila@dunlock.com
www.arambee.com · www.dunlock.com · www.criteria.cat · www.webactualizable.com
Sobre mi
                       Jordi Vila
                       Ingeniero Técnico en Informática, especializado en Ingeniería web

                       D-Unlock Ingeniería Web

                       Consultoría Web, Ingeniería Web, Comunicación Digital,
                       Consultoría Joomla, Arquitectura Web

                       •Participo en varias asociaciones:
                           – JCI Girona (Asociación de jovenes emprendedores)


                       Empecé con Joomla 1.5.




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Índice: Parte 1

           PART 1
       ●
           Requerimientos básicos
       ●
           Nuevo diseño
       ●
           Categorías anidadas
       ●
           Control de permisos (ACL)
       ●
           Mantenimieto de redirecciones
       ●
           Papelera Integrada
       ●
           Nuevos botones
       ●
           Artículo destacados


Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Índice: Parte 2
           PART 2
       ●
           Introducción al componente de saludos
       ●
           Estructura de directorios
       ●
           La clase controlador
       ●
           La clase modelo
       ●
           Gestión de permisos
       ●
           Gestión de validaciones
       ●
           Gestión de layouts
       ●
           Añadir nuevos “felds”


Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Requerimientos básicos

                   Joomla! 1.6
               ●
                   PHP 5.2+
               ●
                   MySQL 5.0.4+
                   Joomla! 1.5
               ●
                   PHP 5.2+
               ●
                   MySQL 4.1.x +




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Nuevo diseño

                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Categorías anidadas

                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Control de permisos

   ●
       En Joomla! 1.6 un usuario puede formar parte de múltiples
       grupos, que por lo contrario, en Joomla! 1.5 un usuario podía
       ser asignado a un único grupo.
   ●
       En Joomla! 1.6 es posible crear todos los niveles de acceso que
       se quiera para una buena gestión de la web, que por el
       contrario en Joomla! 1.5 se limitavan en los niveles (público,
       registrado y especial).




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Tipos de atorgamiento
   ●
       No determinado: el permiso asume el valor “negativo” o el
       valor del elemento padre y no quedan afectados los elementos
       hijos, es decir, podrán ser modifcados los permisos sin heredar
       los permisos del padre.
   ●
       Heredado: El elemento hijo hereda los permisos de los
       elementos padre.
   ●
       Denegar: Se niega permisos. A diferencia de la primera opción
       esta involucrara a los elementos hijo, es decir, en caso que se
       otorgue permisos a niveles de jerarquía inferior esto no tendrá
       ningún efecto y se mantendrá el permiso del elemento padre.
   ●
       Permitir: Habilita el permiso al elemento o acción. Al igual que
       en el caso anterior, hereda el permiso a los niveles inferiores.

Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Niveles / Tipos de acciones




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Mantenimiento de redirecciones
                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Papelera integrada
                                         Joomla! 1.6




                                Nuevos botones
                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Artículos destacados

                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Introducción: Listado de saludos

                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Introducción: Permisos del componente
                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Introducción: Listado de categorías
                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Introducción: Edición de un saludo
                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Introducción: Permisos de un elemento


                                         Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Estructura de directorios: Diferencias




         Joomla! 1.5                                Joomla! 1.6




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La librería Jform: Ejemplo
                                     Joomla! 1.6

            <form>
               ...
               <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA">
                   <field
                      name="title" type="text"
                      class="inputbox" size="40"
                      label="JGLOBAL_TITLE"
                      description="COM_HELLOS_FIELD_TITLE_DESC"
                      required="true"
                      />
                   <field
                      name="alias"
                      type="text"
                      class="inputbox" size="40"
                      label="JFIELD_ALIAS_LABEL"
                      description="COM_HELLOS_FIELD_ALIAS_DESC"
                      />
               ...
               </fieldset>
            </form>
Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La librería Jform: Otros tipos
                                          Joomla! 1.6

    <form>
         <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA">
               <field
               name="ordering" type="Ordering"
               ... />
               <field
               name="access" type="accesslevel"
             ... />
         <field
               name="language"
               type="contentlanguage"
               ...
                     <option value="*">JALL</option>
               </field>
               <field
               name="rules" type="rules" filter="rules" component="com_hellos"
               section="hello"/>
         </fieldset>
    </form>

Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La librería JForm: Mostrar atributos a la vista

                       <?php
                          foreach($this->form->getFieldset('data') as $field):
                          if (!$field->hidden):
                                echo $field->label;
                          endif;
        Joomla! 1.6       if ($field->type=="Editor"): ?>
                                     <div class="clr"></div><?
                          endif;
                                echo $field->input;
                          endforeach;
                       ?>


                       <?php
        Joomla! 1.6       echo $this->form->getLabel('rules');
                          echo $this->form->getInput('rules');
                       ?>




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase controlador: Herencia

                           // No direct access
                           defined('_JEXEC') or die;

             Joomla! 1.5   jimport('joomla.application.component.controller');

                           class HellosControllerHello extends JController {
                           …
                           }


                           // No direct access
                           defined('_JEXEC') or die;

                           jimport('joomla.application.component.controllerform');
             Joomla! 1.6
                           class HellosControllerHello extends JControllerForm {
                               …
                           }



Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase controlador: Funciones
                   Joomla! 1.5                                   Joomla! 1.6

  class HellosControllerHello extends          class HellosControllerHello extends
  JController {                                JControllerForm {
  …                                            …
      function edit() {                            function allowAdd($data = array() ) {
      …                                            /* Si hay categorías */
      }                                            …
                                                   }
      function save() {
      …                                             function allowEdit($data = array() ) {
      }                                             /* Si hay categorías */
                                                    …
      function remove() {                           }
      …
      }                                            /*
                                                   El resto de las clases ja están
      function cancel() {                          implementadas en la clase
      …                                            JControllerForm
      }                                            */
  }                                            }

Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Las clases modelo: Herencia

                            // No direct access
                            defined('_JEXEC') or die;

             Joomla! 1.5    jimport('joomla.application.component.model');

                            class HellosModelHello extends JModel {
                            …
                            }


                            // No direct access
                            defined('_JEXEC') or die;

                            jimport('joomla.application.component.modeladmin');
             Joomla! 1.6
                            class HellosModelHello extends JModelAdmin {
                                …
                            }



Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase modelo: Funciones
                   Joomla! 1.5                                  Joomla! 1.6

  class HelloModelHello extends JModel {       class HellosModelHello extends
      …                                        JModelAdmin {
      function setId($id) {                        …
      …                                            function getForm($data=array(),
      }                                             $loadData=true) { … }

      function getData() {                          function loadFormData() {
      …                                             /* Implementado en JmodelAdmin */
      }                                             …
                                                    }
      function store() {                            function getItem($pk = null) {
      …                                             /* Implementado en JModelAdmin */
      }                                              …
                                                    }
      function delete() {                           function prepareTable(& $table) {
      …                                             /* Implementación en JModelAdmin */
      }                                             /* Ej: Insertar el ordering */
  }                                                 …
                                                    }
                                               }

Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase modelo: Obtener formulario

                                              Joomla! 1.6

    public function getForm($data = array(), $loadData = true) {

         // Initialise variables.
         $app = JFactory::getApplication();

        // Get the form.
        $form = $this->loadForm('com_hellos.hello','hello',array('control'=>   'jform',
        'load_data'=>$loadData));

         if (empty($form)) {
              return false;
         }

         ...
         return $form;
    }



Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase modelo: Lectura de datos
                                             Joomla! 1.6

    protected function loadFormData() {

        // Check the session for previously entered form data.
        $data = Jfactory::getApplication()
        >getUserState('com_hellos.edit.hello.data', array());

         if (empty($data)) {
              $data = $this->getItem();
              // Prime some default values.
              if ($this->getState('hello.id') == 0) {
                    $app = JFactory::getApplication();
                    $data->set('catid', JRequest::getInt('catid', $app-
                    >getUserState('com_hellos.hellos.filter.category_id')));
              }
         }
         ...
         return $data;
    }


Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase modelo: Obtener listado

                     Joomla! 1.5                                Joomla! 1.6

  class HelloModelHellos extends JModel {      class HellosModelHellos extends JModelList
      …                                        {
      function _buildQuery() {                     …
      …                                            function getListQuery() {
      }                                            …
                                                   }
      function getData() {
      …                                        }
      }
      …
  }




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
La clase model: Función para obtener el listado

                           function getData(){
                               // Lets load the data if it doesn't already exist
                               if (empty( $this->_data )) {
             Joomla! 1.5            $query = $this->_buildQuery();
                                    $this->_data = $this->_getList( $query );
                               }
                               return $this->_data;
                           }


                           protected function getListQuery() {
                               // Create a new query object.
                               $db = $this->getDbo();
                               $query = $db->getQuery(true);
             Joomla! 1.6       // Select the required fields from the table.
                               $query->select(a.id, ...);
                               $query->from('`#__hellos` AS a');
                               $query->where('a.state = 1');
                           }


Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Gestión de permisos: Implementación
                                            Joomla! 1.6

    /* La función está en una clase helper */

    public static function getActions($categoryId = 0, $helloId = 0) {
    ...
    }



    /* Modo de empleo en la vista */

    $canDo = HellosHelper::getActions($this->state-
    >get('filter.category_id'), $this->item->id);

    $canDo->get('core.create')

    * Ver los fichero access.xml, hello.xml, config.xml



Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Gestión de validaciones: Ejemplo
                                         Joomla! 1.6

      <form>
           <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA">
                 <field
                 name="email_to"
                 class="inputbox validate-email"
                 ... />
                 <field
                 name="width"
                 class="inputbox validate-numeric"
               ... />
           <field
                 name="title"
                 required="true"
                 ...
                        />
           </fieldset>
      </form>



Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Gestión de layouts: Ejemplo
                                                 Joomla! 1.6

      <?php
      // No direct access.
      defined('_JEXEC') or die;
      echo JHtml::_('sliders.panel',
      JText::_('JGLOBAL_FIELDSET_PUBLISHING'), 'publishing-
      details');
      ?>
      <fieldset class="panelform">
         <ul class="adminformlist">
            <?php
            foreach ($this->form->getFieldset('publishing') as $field) : ?>
               <li><?php echo $field->label; ?>
               <?php echo $field->input; ?></li>
            <?php
            endforeach; ?>
         </ul>
      </fieldset>


      <?php echo $this->loadTemplate('rules'); ?>


Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
Directorio “felds”: Añadir nuevo

                               * Ver ejemplo de ordering




Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
¿ Preguntas, dudas ?
                     Gracias por vuestra asistencia

                          Taller: Desarrollo de extensiones en Joomla! 1.6




Jordi Vila Gallardo jordi.vila@dunlock.com
www.arambee.com · www.dunlock.com · www.criteria.cat · www.webactualizable.com

Más contenido relacionado

Similar a Presentación joomla-day-2010 Jordi Vila

Trabajando con Joomla
Trabajando con JoomlaTrabajando con Joomla
Trabajando con Joomla
Alejandro Domínguez
 
Presentación del proyecto Joomla! en el congreso Hispalinux - Cáceres - 14-1...
Presentación del proyecto Joomla!  en el congreso Hispalinux - Cáceres - 14-1...Presentación del proyecto Joomla!  en el congreso Hispalinux - Cáceres - 14-1...
Presentación del proyecto Joomla! en el congreso Hispalinux - Cáceres - 14-1...
Knowmades.com
 
Joomla! Presentación 2009
Joomla! Presentación 2009Joomla! Presentación 2009
Joomla! Presentación 2009
guest3ef4f6
 
Joomla Presentación 2009
Joomla Presentación 2009Joomla Presentación 2009
Joomla Presentación 2009
guest3ef4f6
 
Cursojoomlabsico 111125234318-phpapp01
Cursojoomlabsico 111125234318-phpapp01Cursojoomlabsico 111125234318-phpapp01
Cursojoomlabsico 111125234318-phpapp01
Ricardo Franco Santos
 
A.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.pptA.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.ppt
Comando Conjunto de las Fuerzas Armadas
 
Cms joobla
Cms jooblaCms joobla
Presentación Joomla en encuentrocms.com
Presentación Joomla en encuentrocms.comPresentación Joomla en encuentrocms.com
Presentación Joomla en encuentrocms.com
OpenWeb Software
 
Presentacion del Curso de Joomla
Presentacion del Curso de JoomlaPresentacion del Curso de Joomla
Presentacion del Curso de Joomla
Winfo System Perú
 
Joomla Basico
Joomla BasicoJoomla Basico
Joomla Basico
Luis Galeano
 
Manual pagina web
Manual pagina webManual pagina web
Manual pagina web
ruby1913
 
Presentacion joomla
Presentacion joomlaPresentacion joomla
Presentacion joomla
campus party
 
01 Joomla. Por Que Joomla
01 Joomla. Por Que Joomla01 Joomla. Por Que Joomla
01 Joomla. Por Que Joomla
José M. Padilla
 
Presentacion joomla-publicador
Presentacion joomla-publicadorPresentacion joomla-publicador
Presentacion joomla-publicador
Elearning Eleaservers
 
Qué es joomla15
Qué es joomla15Qué es joomla15
Qué es joomla15
dragondw
 
Cuestionario joomlas
Cuestionario joomlasCuestionario joomlas
Cuestionario joomlas
cristian159gdl
 
Cuestionario de joomlas
Cuestionario de joomlasCuestionario de joomlas
Cuestionario de joomlas
matias1025
 
Joomla! Presentación 2009 : Introducción
Joomla! Presentación 2009 : IntroducciónJoomla! Presentación 2009 : Introducción
Joomla! Presentación 2009 : Introducción
guest3ef4f6
 
Joomla 1.6
Joomla 1.6Joomla 1.6
Joomla 1.6
iibanez
 
04 Joomla. Usuarios
04 Joomla. Usuarios04 Joomla. Usuarios
04 Joomla. Usuarios
José M. Padilla
 

Similar a Presentación joomla-day-2010 Jordi Vila (20)

Trabajando con Joomla
Trabajando con JoomlaTrabajando con Joomla
Trabajando con Joomla
 
Presentación del proyecto Joomla! en el congreso Hispalinux - Cáceres - 14-1...
Presentación del proyecto Joomla!  en el congreso Hispalinux - Cáceres - 14-1...Presentación del proyecto Joomla!  en el congreso Hispalinux - Cáceres - 14-1...
Presentación del proyecto Joomla! en el congreso Hispalinux - Cáceres - 14-1...
 
Joomla! Presentación 2009
Joomla! Presentación 2009Joomla! Presentación 2009
Joomla! Presentación 2009
 
Joomla Presentación 2009
Joomla Presentación 2009Joomla Presentación 2009
Joomla Presentación 2009
 
Cursojoomlabsico 111125234318-phpapp01
Cursojoomlabsico 111125234318-phpapp01Cursojoomlabsico 111125234318-phpapp01
Cursojoomlabsico 111125234318-phpapp01
 
A.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.pptA.3 bolaños.coronel.henry.g2.ppt
A.3 bolaños.coronel.henry.g2.ppt
 
Cms joobla
Cms jooblaCms joobla
Cms joobla
 
Presentación Joomla en encuentrocms.com
Presentación Joomla en encuentrocms.comPresentación Joomla en encuentrocms.com
Presentación Joomla en encuentrocms.com
 
Presentacion del Curso de Joomla
Presentacion del Curso de JoomlaPresentacion del Curso de Joomla
Presentacion del Curso de Joomla
 
Joomla Basico
Joomla BasicoJoomla Basico
Joomla Basico
 
Manual pagina web
Manual pagina webManual pagina web
Manual pagina web
 
Presentacion joomla
Presentacion joomlaPresentacion joomla
Presentacion joomla
 
01 Joomla. Por Que Joomla
01 Joomla. Por Que Joomla01 Joomla. Por Que Joomla
01 Joomla. Por Que Joomla
 
Presentacion joomla-publicador
Presentacion joomla-publicadorPresentacion joomla-publicador
Presentacion joomla-publicador
 
Qué es joomla15
Qué es joomla15Qué es joomla15
Qué es joomla15
 
Cuestionario joomlas
Cuestionario joomlasCuestionario joomlas
Cuestionario joomlas
 
Cuestionario de joomlas
Cuestionario de joomlasCuestionario de joomlas
Cuestionario de joomlas
 
Joomla! Presentación 2009 : Introducción
Joomla! Presentación 2009 : IntroducciónJoomla! Presentación 2009 : Introducción
Joomla! Presentación 2009 : Introducción
 
Joomla 1.6
Joomla 1.6Joomla 1.6
Joomla 1.6
 
04 Joomla. Usuarios
04 Joomla. Usuarios04 Joomla. Usuarios
04 Joomla. Usuarios
 

Más de Jordi Catà

Introducción a la Financiación alternativa
Introducción a la Financiación alternativaIntroducción a la Financiación alternativa
Introducción a la Financiación alternativa
Jordi Catà
 
Finançament alternatiu per a empreses, Introducció
Finançament alternatiu per a empreses, IntroduccióFinançament alternatiu per a empreses, Introducció
Finançament alternatiu per a empreses, Introducció
Jordi Catà
 
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendibleEstrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
Jordi Catà
 
Mobile Commerce Business Networking Event JCI Girona 2013
Mobile Commerce Business Networking Event JCI Girona 2013Mobile Commerce Business Networking Event JCI Girona 2013
Mobile Commerce Business Networking Event JCI Girona 2013
Jordi Catà
 
Jove Cambra Internacional de Girona Resum president 2009
Jove Cambra Internacional de Girona Resum president 2009 Jove Cambra Internacional de Girona Resum president 2009
Jove Cambra Internacional de Girona Resum president 2009
Jordi Catà
 
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundraJoomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
Jordi Catà
 
Models de negoci amb Programari Lliure : Joomla
Models de negoci amb Programari Lliure : JoomlaModels de negoci amb Programari Lliure : Joomla
Models de negoci amb Programari Lliure : Joomla
Jordi Catà
 
Eshow2012 Madrid, Joomla y Ecommerce
Eshow2012 Madrid, Joomla y EcommerceEshow2012 Madrid, Joomla y Ecommerce
Eshow2012 Madrid, Joomla y Ecommerce
Jordi Catà
 
Joomla!day2012 Merida
Joomla!day2012 MeridaJoomla!day2012 Merida
Joomla!day2012 Merida
Jordi Catà
 
Introducció a Scrum
Introducció a ScrumIntroducció a Scrum
Introducció a ScrumJordi Catà
 
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
Jordi Catà
 
Joomla!day2010 Valencia - Joomla! casos de exito
Joomla!day2010 Valencia - Joomla! casos de exitoJoomla!day2010 Valencia - Joomla! casos de exito
Joomla!day2010 Valencia - Joomla! casos de exito
Jordi Catà
 
Presentación Joomla y comerció electrónico, casos de èxito
Presentación Joomla y comerció electrónico, casos de èxitoPresentación Joomla y comerció electrónico, casos de èxito
Presentación Joomla y comerció electrónico, casos de èxito
Jordi Catà
 
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectosJoomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Jordi Catà
 
Presentacion Joomla Phpconference Barcelona 2009
Presentacion Joomla Phpconference Barcelona 2009Presentacion Joomla Phpconference Barcelona 2009
Presentacion Joomla Phpconference Barcelona 2009
Jordi Catà
 
Presentacio Joomla Ecommerce Volcanica2009
Presentacio Joomla Ecommerce Volcanica2009Presentacio Joomla Ecommerce Volcanica2009
Presentacio Joomla Ecommerce Volcanica2009
Jordi Catà
 
Volcanica2007
Volcanica2007Volcanica2007
Volcanica2007
Jordi Catà
 
Flyer Netcoffee Imatge
Flyer Netcoffee ImatgeFlyer Netcoffee Imatge
Flyer Netcoffee ImatgeJordi Catà
 
Presentacio Productivitat Tic
Presentacio Productivitat TicPresentacio Productivitat Tic
Presentacio Productivitat Tic
Jordi Catà
 
Framework Llibreries Lliures
Framework Llibreries LliuresFramework Llibreries Lliures
Framework Llibreries Lliures
Jordi Catà
 

Más de Jordi Catà (20)

Introducción a la Financiación alternativa
Introducción a la Financiación alternativaIntroducción a la Financiación alternativa
Introducción a la Financiación alternativa
 
Finançament alternatiu per a empreses, Introducció
Finançament alternatiu per a empreses, IntroduccióFinançament alternatiu per a empreses, Introducció
Finançament alternatiu per a empreses, Introducció
 
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendibleEstrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
Estrategias/consejos para mejorar tu eCommerce y hacerlo más rendible
 
Mobile Commerce Business Networking Event JCI Girona 2013
Mobile Commerce Business Networking Event JCI Girona 2013Mobile Commerce Business Networking Event JCI Girona 2013
Mobile Commerce Business Networking Event JCI Girona 2013
 
Jove Cambra Internacional de Girona Resum president 2009
Jove Cambra Internacional de Girona Resum president 2009 Jove Cambra Internacional de Girona Resum president 2009
Jove Cambra Internacional de Girona Resum president 2009
 
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundraJoomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
Joomla!day2013 Albacete Spain, Responsive, Adaptive y la tundra
 
Models de negoci amb Programari Lliure : Joomla
Models de negoci amb Programari Lliure : JoomlaModels de negoci amb Programari Lliure : Joomla
Models de negoci amb Programari Lliure : Joomla
 
Eshow2012 Madrid, Joomla y Ecommerce
Eshow2012 Madrid, Joomla y EcommerceEshow2012 Madrid, Joomla y Ecommerce
Eshow2012 Madrid, Joomla y Ecommerce
 
Joomla!day2012 Merida
Joomla!day2012 MeridaJoomla!day2012 Merida
Joomla!day2012 Merida
 
Introducció a Scrum
Introducció a ScrumIntroducció a Scrum
Introducció a Scrum
 
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
Conferencia Joomla y Comercio Electrónico: Ecommretail 2011
 
Joomla!day2010 Valencia - Joomla! casos de exito
Joomla!day2010 Valencia - Joomla! casos de exitoJoomla!day2010 Valencia - Joomla! casos de exito
Joomla!day2010 Valencia - Joomla! casos de exito
 
Presentación Joomla y comerció electrónico, casos de èxito
Presentación Joomla y comerció electrónico, casos de èxitoPresentación Joomla y comerció electrónico, casos de èxito
Presentación Joomla y comerció electrónico, casos de èxito
 
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectosJoomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
Joomla!Day Spain Barcelona, Joomla! para todo tipo de proyectos
 
Presentacion Joomla Phpconference Barcelona 2009
Presentacion Joomla Phpconference Barcelona 2009Presentacion Joomla Phpconference Barcelona 2009
Presentacion Joomla Phpconference Barcelona 2009
 
Presentacio Joomla Ecommerce Volcanica2009
Presentacio Joomla Ecommerce Volcanica2009Presentacio Joomla Ecommerce Volcanica2009
Presentacio Joomla Ecommerce Volcanica2009
 
Volcanica2007
Volcanica2007Volcanica2007
Volcanica2007
 
Flyer Netcoffee Imatge
Flyer Netcoffee ImatgeFlyer Netcoffee Imatge
Flyer Netcoffee Imatge
 
Presentacio Productivitat Tic
Presentacio Productivitat TicPresentacio Productivitat Tic
Presentacio Productivitat Tic
 
Framework Llibreries Lliures
Framework Llibreries LliuresFramework Llibreries Lliures
Framework Llibreries Lliures
 

Último

ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
alejandromanuelve
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 

Último (20)

ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 

Presentación joomla-day-2010 Jordi Vila

  • 1. Taller: Desarrollo de extensiones en Joomla! 1.6 Jordi Vila Gallardo jordi.vila@dunlock.com www.arambee.com · www.dunlock.com · www.criteria.cat · www.webactualizable.com
  • 2. Sobre mi Jordi Vila Ingeniero Técnico en Informática, especializado en Ingeniería web D-Unlock Ingeniería Web Consultoría Web, Ingeniería Web, Comunicación Digital, Consultoría Joomla, Arquitectura Web •Participo en varias asociaciones: – JCI Girona (Asociación de jovenes emprendedores) Empecé con Joomla 1.5. Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 3. Índice: Parte 1 PART 1 ● Requerimientos básicos ● Nuevo diseño ● Categorías anidadas ● Control de permisos (ACL) ● Mantenimieto de redirecciones ● Papelera Integrada ● Nuevos botones ● Artículo destacados Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 4. Índice: Parte 2 PART 2 ● Introducción al componente de saludos ● Estructura de directorios ● La clase controlador ● La clase modelo ● Gestión de permisos ● Gestión de validaciones ● Gestión de layouts ● Añadir nuevos “felds” Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 5. Requerimientos básicos Joomla! 1.6 ● PHP 5.2+ ● MySQL 5.0.4+ Joomla! 1.5 ● PHP 5.2+ ● MySQL 4.1.x + Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 6. Nuevo diseño Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 7. Categorías anidadas Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 8. Control de permisos ● En Joomla! 1.6 un usuario puede formar parte de múltiples grupos, que por lo contrario, en Joomla! 1.5 un usuario podía ser asignado a un único grupo. ● En Joomla! 1.6 es posible crear todos los niveles de acceso que se quiera para una buena gestión de la web, que por el contrario en Joomla! 1.5 se limitavan en los niveles (público, registrado y especial). Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 9. Tipos de atorgamiento ● No determinado: el permiso asume el valor “negativo” o el valor del elemento padre y no quedan afectados los elementos hijos, es decir, podrán ser modifcados los permisos sin heredar los permisos del padre. ● Heredado: El elemento hijo hereda los permisos de los elementos padre. ● Denegar: Se niega permisos. A diferencia de la primera opción esta involucrara a los elementos hijo, es decir, en caso que se otorgue permisos a niveles de jerarquía inferior esto no tendrá ningún efecto y se mantendrá el permiso del elemento padre. ● Permitir: Habilita el permiso al elemento o acción. Al igual que en el caso anterior, hereda el permiso a los niveles inferiores. Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 10. Niveles / Tipos de acciones Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 11. Mantenimiento de redirecciones Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 12. Papelera integrada Joomla! 1.6 Nuevos botones Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 13. Artículos destacados Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 14. Introducción: Listado de saludos Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 15. Introducción: Permisos del componente Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 16. Introducción: Listado de categorías Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 17. Introducción: Edición de un saludo Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 18. Introducción: Permisos de un elemento Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 19. Estructura de directorios: Diferencias Joomla! 1.5 Joomla! 1.6 Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 20. La librería Jform: Ejemplo Joomla! 1.6 <form> ... <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA"> <field name="title" type="text" class="inputbox" size="40" label="JGLOBAL_TITLE" description="COM_HELLOS_FIELD_TITLE_DESC" required="true" /> <field name="alias" type="text" class="inputbox" size="40" label="JFIELD_ALIAS_LABEL" description="COM_HELLOS_FIELD_ALIAS_DESC" /> ... </fieldset> </form> Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 21. La librería Jform: Otros tipos Joomla! 1.6 <form> <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA"> <field name="ordering" type="Ordering" ... /> <field name="access" type="accesslevel" ... /> <field name="language" type="contentlanguage" ... <option value="*">JALL</option> </field> <field name="rules" type="rules" filter="rules" component="com_hellos" section="hello"/> </fieldset> </form> Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 22. La librería JForm: Mostrar atributos a la vista <?php foreach($this->form->getFieldset('data') as $field): if (!$field->hidden): echo $field->label; endif; Joomla! 1.6 if ($field->type=="Editor"): ?> <div class="clr"></div><? endif; echo $field->input; endforeach; ?> <?php Joomla! 1.6 echo $this->form->getLabel('rules'); echo $this->form->getInput('rules'); ?> Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 23. La clase controlador: Herencia // No direct access defined('_JEXEC') or die; Joomla! 1.5 jimport('joomla.application.component.controller'); class HellosControllerHello extends JController { … } // No direct access defined('_JEXEC') or die; jimport('joomla.application.component.controllerform'); Joomla! 1.6 class HellosControllerHello extends JControllerForm { … } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 24. La clase controlador: Funciones Joomla! 1.5 Joomla! 1.6 class HellosControllerHello extends class HellosControllerHello extends JController { JControllerForm { … … function edit() { function allowAdd($data = array() ) { … /* Si hay categorías */ } … } function save() { … function allowEdit($data = array() ) { } /* Si hay categorías */ … function remove() { } … } /* El resto de las clases ja están function cancel() { implementadas en la clase … JControllerForm } */ } } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 25. Las clases modelo: Herencia // No direct access defined('_JEXEC') or die; Joomla! 1.5 jimport('joomla.application.component.model'); class HellosModelHello extends JModel { … } // No direct access defined('_JEXEC') or die; jimport('joomla.application.component.modeladmin'); Joomla! 1.6 class HellosModelHello extends JModelAdmin { … } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 26. La clase modelo: Funciones Joomla! 1.5 Joomla! 1.6 class HelloModelHello extends JModel { class HellosModelHello extends … JModelAdmin { function setId($id) { … … function getForm($data=array(), } $loadData=true) { … } function getData() { function loadFormData() { … /* Implementado en JmodelAdmin */ } … } function store() { function getItem($pk = null) { … /* Implementado en JModelAdmin */ } … } function delete() { function prepareTable(& $table) { … /* Implementación en JModelAdmin */ } /* Ej: Insertar el ordering */ } … } } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 27. La clase modelo: Obtener formulario Joomla! 1.6 public function getForm($data = array(), $loadData = true) { // Initialise variables. $app = JFactory::getApplication(); // Get the form. $form = $this->loadForm('com_hellos.hello','hello',array('control'=> 'jform', 'load_data'=>$loadData)); if (empty($form)) { return false; } ... return $form; } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 28. La clase modelo: Lectura de datos Joomla! 1.6 protected function loadFormData() { // Check the session for previously entered form data. $data = Jfactory::getApplication() >getUserState('com_hellos.edit.hello.data', array()); if (empty($data)) { $data = $this->getItem(); // Prime some default values. if ($this->getState('hello.id') == 0) { $app = JFactory::getApplication(); $data->set('catid', JRequest::getInt('catid', $app- >getUserState('com_hellos.hellos.filter.category_id'))); } } ... return $data; } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 29. La clase modelo: Obtener listado Joomla! 1.5 Joomla! 1.6 class HelloModelHellos extends JModel { class HellosModelHellos extends JModelList … { function _buildQuery() { … … function getListQuery() { } … } function getData() { … } } … } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 30. La clase model: Función para obtener el listado function getData(){ // Lets load the data if it doesn't already exist if (empty( $this->_data )) { Joomla! 1.5 $query = $this->_buildQuery(); $this->_data = $this->_getList( $query ); } return $this->_data; } protected function getListQuery() { // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); Joomla! 1.6 // Select the required fields from the table. $query->select(a.id, ...); $query->from('`#__hellos` AS a'); $query->where('a.state = 1'); } Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 31. Gestión de permisos: Implementación Joomla! 1.6 /* La función está en una clase helper */ public static function getActions($categoryId = 0, $helloId = 0) { ... } /* Modo de empleo en la vista */ $canDo = HellosHelper::getActions($this->state- >get('filter.category_id'), $this->item->id); $canDo->get('core.create') * Ver los fichero access.xml, hello.xml, config.xml Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 32. Gestión de validaciones: Ejemplo Joomla! 1.6 <form> <fieldset name="data" label="COM_HELLOS_FIELDSET_DATA"> <field name="email_to" class="inputbox validate-email" ... /> <field name="width" class="inputbox validate-numeric" ... /> <field name="title" required="true" ... /> </fieldset> </form> Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 33. Gestión de layouts: Ejemplo Joomla! 1.6 <?php // No direct access. defined('_JEXEC') or die; echo JHtml::_('sliders.panel', JText::_('JGLOBAL_FIELDSET_PUBLISHING'), 'publishing- details'); ?> <fieldset class="panelform"> <ul class="adminformlist"> <?php foreach ($this->form->getFieldset('publishing') as $field) : ?> <li><?php echo $field->label; ?> <?php echo $field->input; ?></li> <?php endforeach; ?> </ul> </fieldset> <?php echo $this->loadTemplate('rules'); ?> Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 34. Directorio “felds”: Añadir nuevo * Ver ejemplo de ordering Joomla!Day Valencia 2010 – Desarrollo de extensiones en Joomla! 1.6
  • 35. ¿ Preguntas, dudas ? Gracias por vuestra asistencia Taller: Desarrollo de extensiones en Joomla! 1.6 Jordi Vila Gallardo jordi.vila@dunlock.com www.arambee.com · www.dunlock.com · www.criteria.cat · www.webactualizable.com