Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Joomladay 2008 Madrid - desarrollo de extensiones

6,314 views

Published on

Published in: Technology
  • If you are looking for customer-oriented academic and research paper writing service try ⇒⇒⇒ WRITE-MY-PAPER.net ⇐⇐⇐ liked them A LOTTT Really nice solutions for the last-day papers
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Joomladay 2008 Madrid - desarrollo de extensiones

  1. 1. Por David Noguera Cifuentes JoomlaDay 2008, Madrid Desarrollo de extensiones con Joomla! 1.5
  2. 2. <ul><li>Introducción </li></ul><ul><li>Desarrollo de Módulos </li></ul><ul><li>Desarrollo de Componentes </li></ul><ul><li>Desarrollo de Plugins </li></ul>Índice
  3. 3. Introducción <ul><li>Joomla es un CMS muy flexible, en parte gracia a lo fácil que resulta desarrollar extensiones. </li></ul><ul><li>Esto propicia la aparición de una gran comunidad de desarrolladores que genera una gran cantidad de extensiones. </li></ul><ul><li>Vamos a ver como crear extensiones para Joomla! 1.5. </li></ul>
  4. 4. <ul><li>El desarrollo de extensiones de Joomla! ha evolucionado con la aparición de la nueva versión de este popular CMS. </li></ul><ul><li>Se ha creado un potente framework y se ha potenciado el aspecto de POO aprovechando las cualidades de PHP 5. </li></ul><ul><li>Sin embargo, se ha pensado en la compatibilidad hacia atrás y en el funcionamiento en servidores con PHP 4. </li></ul>
  5. 5. <ul><li>Joomla 1.5 esta compuesto de módulos, componentes y plugins. </li></ul><ul><li>-Los módulos son pequeños trozos de contenido como puede ser un menú, esto es un modulo: </li></ul><ul><li>-El componente es donde se muestra el contenido principal en Joomla! </li></ul>
  6. 6. <ul><li>Los módulos se encuentran situados en el directorio modules dentro del directorio de instalación de Joomla y por cada módulo hay una carpeta con nombre mod_nombredelModulo . </li></ul><ul><li>Nuestro módulo se va a llamar prueba . </li></ul><ul><li>la carpeta del módulo se llamará mod_Prueba . </li></ul>1. Desarrollo de módulos
  7. 7. Estructura de un módulo:
  8. 8. - mod_Prueba.php : fichero php con el mismo nombre que el módulo, tomará en control del módulo cuando este sea llamado - helper.php : clase helper , sirve para separar la lógica de la presentación. - directorio tmpl : aquí guardaremos las plantillas que usaremos para la presentación -Por defecto, se usa el template default.php - mod_prueba.xml : fichero xml necesario para generar un instalable y donde especificaremos los parametros del módulo.
  9. 9. ¿Qué va a hacer nuestro módulo? <ul><li>Vamos a realizar un módulo simple que muestre un mensaje por pantalla: Hola Mundo </li></ul><ul><li>Por motivos de tiempo se van a quedar muchas cosas sin explicar, como el acceso a datos, uso de parámetros, etc. </li></ul>
  10. 10. Código del punto de entrada mod_prueba.php <?php   // no permitir acceso directo defined ( ‘_JEXEC’ ) or die ( ‘Restricted access’ );   // incluir al helper que devolverá los datos, solo una vez require_once( dirname (__FILE__).DS.‘helper.php’ );   $mensaje = modPruebaHelper::getMensaje( $params ); require( JModuleHelper::getLayoutPath( ‘mod_prueba’,‘default’) ); ?>
  11. 11. Código del helper: <?php class modPruebaHelper {     function getMensaje( $params )     {                 return “Hola Mundo”;     } } ?> La clase helper ha de llamarse con el nombre del modulo sin “_” seguido de helper: Nombre del módulo sin “_” + Helper
  12. 12. Código del template: default.php <?php echo $mensaje; ?>
  13. 13. Fichero XML del módulo <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <install type=&quot;module&quot; version=&quot;1.5.0&quot;>     <name>Prueba</name>     <author>David Noguera</author>     <version>1.0</version>     <creationDate>02-04-2008</creationDate>     <description>Modulo que muestra un mensaje de Hola Mundo</description>     <authorEmail>david@nosolocodigo.com</authorEmail>     <files>     <filename module=&quot;mod_prueba&quot;>mod_prueba.php</filename>          <filename>helper.php</filename>         <filename>mod_prueba.xml</filename>          <filename>tmpl/default.php</filename>     </files> </install>
  14. 14. Resultado final
  15. 15. 2. Desarrollo de un componente MVC <ul><li>¿Qué es MVC? </li></ul><ul><li>Es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. </li></ul><ul><li>http://es.wikipedia.org/wiki/Modelo_Vista_Controlador </li></ul>
  16. 16. <ul><li>¿Por qué es tan importante? </li></ul><ul><li>Siguiendo este patrón crearemos código más ordenado. </li></ul><ul><li>Será más fácil entender el código de terceros (y el nuestro), ya que sigue un patrón conocido. </li></ul><ul><li>Aumenta la productividad. </li></ul>
  17. 17. <ul><li>El controlador: el controlador es el punto de entrada de la aplicación, se mantiene a la escucha de todas las peticiones, ejecuta la lógica de la aplicación, y muestra la vista apropiada para cada caso. </li></ul><ul><li>El modelo : el modelo contiene todo el código relacionado con el acceso a datos. Es importante que sea un código lo más genérico posible y se pueda reutilizar. Nunca incluiremos lógica en el modelo, solamente consultas a la base de datos y validaciones de entrada de datos. </li></ul><ul><li>La vista : la vista contiene el código que representará lo que nosotros veremos por pantalla, en este caso se trata de código html. </li></ul>
  18. 18. Convections over configuration <ul><li>Existen dos formas de trabajar: </li></ul><ul><li>-Usando un fichero XML donde se especifica que es cada cosa. </li></ul><ul><li>-Usando convenciones. </li></ul><ul><li>Joomla! usa convenciones </li></ul>
  19. 19. <ul><li>¿Qué son las convenciones? </li></ul><ul><li>Son normas a seguir para crear las vistas, los modelos y los controladores </li></ul><ul><li>Usar convenciones suele resultar más rápido que usar ficheros XML. </li></ul><ul><li>Los ficheros XML pueden crecer desorbitadamente hasta el punto de hacerse poco mantenibles. </li></ul>
  20. 20. Convenciones del framework MVC de Joomla! <ul><li>Objeto Controlador: </li></ul><ul><li>NombreComponente + Controller </li></ul><ul><li>Objeto Vistas: </li></ul><ul><li>nombreComponente+View+nombreVista </li></ul><ul><li>Objeto Modelo: </li></ul><ul><li>nombreComponente+Model+Nombre del modelo </li></ul>
  21. 22. Comenzamos con el desarrollo..
  22. 23. Punto de Entrada <?php defined ( ‘_JEXEC’ ) or die ( ‘Restricted access’ );   require_once( JPATH_COMPONENT.DS.‘controller.php’ );   if($controller = JRequest::getWord(‘controller’)) {     $path = JPATH_COMPONENT.DS.‘controllers’.DS.$controller.‘.php’;     if ( file_exists ($path)) {         require_once $path;     } else {         $controller = “”;     } }   $classname    = ‘PruebaController’.$controller; $controller   = new $classname( ); $controller->execute( JRequest::getVar( ‘task’ ) );   $controller->redirect(); ?>
  23. 24. Funcionamiento del punto de entrada <ul><li>Se comprueba si viene un parámetro en la query string que establezca un controlador, y si viene se importa el fichero con el controlador. </li></ul><ul><li>Se instancia el controlador. </li></ul><ul><li>Se ejecuta el método execute del controlador. </li></ul><ul><li>Se ejecuta el método redirect del controlador. </li></ul>
  24. 25. Controlador <?php     defined ( ‘_JEXEC’ ) or die ( ‘Restricted access’ );        jimport(’joomla.application.component.controller’);       class PruebaController extends JController     {         function display()       {             parent::display();       }     }     ?>
  25. 26. com_prueba/views/prueba/view.html.php <?php     defined ( ‘_JEXEC’ ) or die ( ‘Restricted access’ );     jimport( ‘joomla.application.component.view’);      class PruebaViewPrueba extends JView     {     function display($tpl = null)   {     $model =& $this->getModel();       $mensaje= $model->getMensaje()       $this->assignRef( ‘mensaje’, $mensaje );         parent::display($tpl);       }       }     ?>
  26. 27. com_prueba/views/prueba/tmpl/default.php <h1><?php echo $this->mensaje ?></h1>
  27. 28. Modelo <?php   defined (’_JEXEC’) or die (); jimport( ‘joomla.application.component.model’ );   class PruebaModelPrueba extends JModel {     function getMensaje(){         //Aquí se obtienen datos de la BD         return “Hola soy un valor que ha devuelto el modelo”;       } } ?>
  28. 29. Fichero XML del componente <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <!DOCTYPE install SYSTEM &quot;http://dev.joomla.org/xml/1.5/component- install.dtd&quot;> <install type=&quot;component&quot; version=&quot;1.5&quot;> <name>My Extension</name> <creationDate>MonthName Year</creationDate> <author>Author's Name</author> <authorEmail>Author's Email</authorEmail> <authorUrl>Author's Website</authorUrl> <copyright>Copyright Notice</copyright> <license>Component License Agreement</license> <version>Component Version</version> <description>Component Description</description>
  29. 30. <administration> <menu>My Extension</menu> <submenu> <menu task=&quot;view&quot;>Items</menu> <menu link=&quot;option=com_categories&section=com_wfaqs;&quot;>Categories</menu> </submenu> <files folder=&quot;administration&quot;> <filename>index.html</filename> <filename>admin.myextension.php</filename> <filename>install.sql</filename> <filename>install.noutf8.sql</filename> <filename>uninstall.sql</filename> <folder>models</folder> <folder>views</folder> <folder>controllers</folder> <folder>tables</folder> </files>
  30. 31. <languages folder=&quot;administration&quot;> <language tag=&quot;en-GB&quot;>en-GB.com_myextension.ini</language> <language tag=&quot;de-DE&quot;>de-DE.com_myextension.ini</language> </languages> <media destination=&quot;com_myextension&quot;> <filename>logo.jpg</filename> <filename>index.html</filename> </media> </administration> <install> <sql> <file driver=&quot;mysql&quot; charset=&quot;utf8&quot;>install.sql</file> <file driver=&quot;mysql&quot; charset=&quot;&quot;>install.noutf8.sql</file> </sql> </install> <uninstall> <sql> <file driver=&quot;mysql&quot;>uninstall.sql</file> </sql> </uninstall>
  31. 32. <installfile>install.myextension.php</installfile> <uninstallfile>uninstall.myextension.php</uninstallfile> <files> <filename>index.html</filename> <filename>myextension.php</filename> <folder>models</folder> <folder>views</folder> <folder>controllers</folder> <folder>tables</folder> </files> <languages> <language tag=&quot;en-GB&quot;>en-GB.com_myextension.ini</language> <language tag=&quot;de-DE&quot;>de-DE.com_myextension.ini</language> </languages> <media destination=&quot;com_myextension&quot;> <filename>logo.jpg</filename> <filename>index.html</filename> </media> </install>
  32. 33. Resultado Final URL: index.php?option=com_prueba&view=prueba
  33. 34. Investiga por tu cuenta!! <ul><li>Si no sabes como hacer algo, entra en los componentes que tiene Joomla! instalados y mira su código. </li></ul>
  34. 35. 3. Desarrollo de Plugins <ul><li>¿Qué son los plugins? </li></ul><ul><li>Son extensiones que permiten modificar el comportamiento del programa </li></ul><ul><li>¿Qué hacen los plugins? </li></ul><ul><li>Interceptan ciertos eventos prefijados para ejecutar nuestro código antes o después del evento. </li></ul>
  35. 36. Tipos de plugins <ul><li>Existen varios tipos de plugins </li></ul><ul><li>Por cada tipo de plugin existe un directorio dentro del directorio plugins </li></ul><ul><li>Por lo tanto tenemos el directorio plugins/content para los plugins de tipo content y así con todos los tipos. </li></ul><ul><li>Existen varios tipos, mira en tu carpeta plugins y comprueba los tipos. </li></ul>
  36. 37. Ganchos <ul><li>Un plugin es un objeto que deriva de la clase JPlugin. </li></ul><ul><li>Esta clase tiene unos métodos definidos que son ganchos (hooks) </li></ul><ul><li>Por lo tanto tendremos que sobrescribir las funciones gancho que necesitemos y escribir nuestro código allí. </li></ul><ul><li>Ejemplo: onLoginUser </li></ul>
  37. 38. Desarrollo de un plugin <ul><li>Objetivo del plugin: </li></ul><ul><li>Mostrar un mensaje antes del cada artículo </li></ul>
  38. 39. Estructura del plugin
  39. 40. Fichero XML del plugin
  40. 41. <?xml version=”1.0″ encoding=”utf-8″ ?> <install version=”1.5″ type=”plugin” group=”content”> <name>Content - Prueba</name> <author>David Noguera</author> <creationDate>15-02-2008</creationDate> <authorEmail>david@nosolocodigo.com</authorEmail> <authorUrl>www.nosolocodigo.com</authorUrl> <version>1.0</version> <description>Muestra un mensaje antes de mostrar el contenido</description> <files> <filename plugin=”Prueba”>Prueba.php</filename> <filename>Prueba.xml</filename> </files> </install>
  41. 42. Fichero holaMundo.php <?php defined ( ‘_JEXEC’ ) or die ( ‘Acceso Restringido’ ); jimport( ‘joomla.plugin.plugin’ );   // Convención : Nombre de la clase (plg + tipo plugin + nombre del plugin) class plgContentPrueba extends JPlugin {   function plgContentPrueba( &$subject ) {     parent::__construct( $subject ); }   function onBeforeDisplayContent(&$article, &$params, $limitstart=0) {       $salidaPantalla = ‘<h2>Hola Mundo</h2>’;     return $salidaPantalla;     } } ?>
  42. 43. Resultado final
  43. 44. Fin de la presentación

×