SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Taller de Drupal – Sesión 4
Drupal Theming
Características del theming con
             Drupal
 Un “theme” es una serie de ficheros que define la capa
 de presentación (el look and feel) de una web con Drupal.

 Un theme especifica la estructura de la página, las hojas
 de estilo y, si es necesario, el Javascript

 Para crear o modificar un theme se necesita
 conocimientos de xHTML y CSS y la terminología
 usada en Drupal
Algunos themes de Drupal




más información: http://drupal.org/project/Themes
Anatomía de un theme de Drupal




más información: http://drupal.org/node/231036
Anatomía de un theme de Drupal

       .info
           name (required)
           description
           core
           engine
           base theme
           regions
           stylesheets
           scripts




más información: http://drupal.org/node/171205
Anatomía de un theme de Drupal
 ; $Id: garland.info,v 1.5 2007/07/01 23:27:32 goba Exp $
 name = Garland
 description = Tableless, recolorable, multi-column, fluid width theme (default).
 version = VERSION
 core = 6.x
 engine = phptemplate
 stylesheets[all][] = style.css
 stylesheets[print][] = print.css



 Minnelli sub-theme of Garland.:
 ; $Id: minnelli.info,v 1.7 2007/12/04 20:58:44 goba Exp $
 name = Minnelli
 description = Tableless, recolorable, multi-column, fixed width theme.
 version = VERSION
 core = 6.x
 base theme = garland
 stylesheets[all][] = minnelli.css
Anatomía de un theme de Drupal

  Template files
    ●
        page.tpl.php
    ●
        node.tpl.php
    ●
        block.tpl.php
    ●
        box.tpl.php
    ●
        comment.tpl.php
Anatomía de un theme de Drupal

  template.php
  Nos sirve para sobreescribir las
   funciones de theme y para las
   funciones “preprocesors”
Anatomía de un theme de Drupal
        Subthemes
            Los subtemas heredan las
             propiedades del sus ancestros.
            Facilita la creación de variaciones de
             temas, por ejemplo de temas
             contribuidos.




más información: http://drupal.org/node/225125
Themes base para empezar un
       theme personalizado

    Nos facilitan tareas comunes que todos
     los themes necesitan
    Algunos incluyen un framework de CSS
     (960, blueprint)
    Muchas alternativas. Los más famosos:
     Zen, Blueprint, Genesis.

más información:
http://www.chapterthree.com/blog/squiggy_rubio/review_drupal_6_starter_themes
hook_theme

     El registro de temas de Drupal guarda
       información cacheada de los hooks de temas
       disponibles y como manejarlos
     Los módulos han de usar el hook_theme para
       “registrar” sus funciones theme_
     Es necesario borrar la cache para volver a
       registrar estas funciones
     Podemos forzar durante el desarrollo a que se
       “refresque” estos registros en cada página

más información: http://api.drupal.org/api/function/hook_theme
http://drupal.org/node/173880#theme-registry
hook_theme
     function hook_theme($existing, $type, $theme, $path) {
       return array(
          'forum_display' => array(
             'arguments' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL,
     'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
          ),
          'forum_list' => array(
             'arguments' => array('forums' => NULL, 'parents' => NULL, 'tid' => NULL),
          ),
          'forum_topic_list' => array(
             'arguments' => array('tid' => NULL, 'topics' => NULL, 'sortby' => NULL,
     'forum_per_page' => NULL),
          ),
          'forum_icon' => array(
             'arguments' => array('new_posts' => NULL, 'num_posts' => 0, 'comment_mode'
     => 0, 'sticky' => 0),
          ),
          'forum_topic_navigation' => array(
             'arguments' => array('node' => NULL),
          ),
       );
     }

más información: http://api.drupal.org/api/function/hook_theme
http://drupal.org/node/173880#theme-registry
Subthemes

        Problema: Empezar desde 0 un tema
        Problema: Queremos tener variaciones
         menores de un tema (colores, fondos,
         etc)
        Problema: Queremos usar un tema
         contribuido pero con algunas
         modificaciones y nos interesa poder ir
         actualizándolo

más información: http://drupal.org/node/225125
Subthemes

Usando un subtheme:
●
    no necesitamos empezar desde 0
●
    podemos crear pequeñas variaciones de
    manera fácil
●
    podemos actualizar los temas padre sin
    problemas ya que estos no los modificamos.
Subthemes

El .info con la misma estructura pero usando la
  variable “base theme” (que nos indica el theme
  padre)
El subtheme hereda las propiedades de su
  “padre”. Podemos sobreescribir estas
  propiedades para modificarlas o añadir nuevas.
Subthemes – Manos a la obra
Instalamos Blueprint: http://drupal.org/project/blueprint

Creamos una carpeta llamada subtema y le ponemos el fichero subtema.info con:
name = Subtema
description = Tema subtema
core = 6.x
base theme = blueprint
stylesheets[all][] = subtema.css

Creamos un fichero subtema.css dónde podemos modificar alguna propiedad. Ej:
body {
    font-size: 2em;
}

Copiamos el fichero node.tpl.php de Blueprint y lo modificamos.
Subthemes – Herencias
¿Qué se hereda?
●Todas las hojas de estilo (CSS)
●Todos los javascripts

●Todos los templates (.tpl.php)

●Todo lo definido en el template.php

●Screenshot




¿Qué no se hereda?
●El logo.png
●Algunas opciones del .info como las regiones

●Todo lo definido en theme-settings.php

●Todo lo definido en el directorio “color”
Sobreescribiendo themes


            Problema: Queremos modificar el html que devuelve el core
            de Drupal o un módulo contribuido.

            Solución mala: Parcheamos directamente el código.
            No es mantenible

            Solución buena: Sobreescribimos (override) la función theme
            desde otro fichero y sin modificar el original




más información: http://drupal.org/node/173880
Sobreescribiendo themes




más información: http://drupal.org/node/173880
Sobreescribiendo themes

   El Core y los módulos devuelven el código html usando una función
   theme_

   function theme_box($title, $content, $region = 'main') {
     $output = '<h2 class="title">'. $title .'</h2><div>'. $content .'</div>';
     return $output;
   }

   Se usa la función theme() para permitir la sobreescritura:

   Return theme('box',$title,$content);




más información: http://drupal.org/node/173880
Sobreescribiendo themes

      Al usar la función theme('box') Drupal mira si existe y en este orden:

      nombre_del_tema_box() Por ejemplo: zen_box()
      nombre_del_engine_box() Por ejemplo: phptemplate_box()
      theme_box() La función original

      Cuando Drupal encuentra una de las funciones no busca más y devuelve
      el resultado de esa función.




más información: http://drupal.org/node/173880
Sobreescritura de tpl.php

        Drupal de manera automática ya permite
         sobreescribir ficheros tpl.php tan sólo
         modificando el nombre del fichero.
        Ejemplo:
        node-[type].tpl.php
             base template: node.tpl.php
             "node-story.tpl.php", "node-blog.tpl.php", etc.


        .
más información: http://drupal.org/node/190815
Firebug – El mejor amigo del
                 maquetador




                  Imprescindible, no salgáis de casa sin él




más información: http://getfirebug.com/
Theme Devel
     Nos ayuda a identificar de forma fácil las funciones que
     Intervienen en la maquetación de un elemento

     Sólo es necesario habilitarlo y hacer click sobre el
     elemento del que necesitamos la información.

     Nos ayuda a averiguar que función o template debemos
     sobreescribir




más información: http://drupal.org/node/209561
Template preprocessors

Las funciones preprocess sólo se aplican a los
Hooks de themes implementados como templates.

El rol principal es preparar las variables que se van
a usar dentro de los template (tpl.php)

function MYMODULE_preprocess_node(&$variables) {
// modificaciones en $variables.
}
Sections

           Nos permite asignar un tema diferente de la misma
           Manera que se gestiona dónde ha de ir un bloque

           Podemos tener varios subtemas diferentes y
           asignarlos por secciones




más información: http://drupal.org/project/sections
Theme de administración

Drupal permite asignar un tema diferente para
la administración.

Hay temas pensados para esta función: rootcandy.
http://drupal.org/project/rootcandy

Es recomendable tenerlo mientras creamos un
tema para “evitar accidentes”
Jquery y Drupal
●
  Drupal 6 lleva en el Core Jquery 1.2
●
  Usando Jquery Update podemos tener siempre la última
  versión.
  http://drupal.org/project/jquery_update
●
  Podemos añadir un fichero javascript desde el .info
  scripts[] = myscript.js
●
  O usando la función drupal_add_js
  (http://api.drupal.org/api/function/drupal_add_js)
●
  Hay que usar
  Drupal.behaviors.nombre_unico = function() {}
  en lugar de
  $(document).ready()

Mais conteúdo relacionado

Mais procurados

Todo lo que necesitas saber sobre Drupal 8
Todo lo que necesitas saber sobre Drupal 8Todo lo que necesitas saber sobre Drupal 8
Todo lo que necesitas saber sobre Drupal 8Acquia
 
codigos HTLM
codigos HTLMcodigos HTLM
codigos HTLMyumnel
 
Instalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuInstalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuCristian Mamani
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalAlberto Permuy Leal
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPSpacetoshare
 
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...Florin Marian Virstiuc
 
Presentación Drupal
Presentación DrupalPresentación Drupal
Presentación DrupalMedio y forma
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
dotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarialdotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarialRefresh Maracaibo
 
Introducción a Drupal
Introducción a DrupalIntroducción a Drupal
Introducción a DrupalKeopx
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sqltoniserna
 
Gestores de contenido
Gestores de contenidoGestores de contenido
Gestores de contenidocarolbuelvas
 

Mais procurados (20)

Drupal
DrupalDrupal
Drupal
 
Introduccion drupal
Introduccion drupalIntroduccion drupal
Introduccion drupal
 
Todo lo que necesitas saber sobre Drupal 8
Todo lo que necesitas saber sobre Drupal 8Todo lo que necesitas saber sobre Drupal 8
Todo lo que necesitas saber sobre Drupal 8
 
Drupal - Introducción
Drupal - IntroducciónDrupal - Introducción
Drupal - Introducción
 
Framework
FrameworkFramework
Framework
 
Phpmyadmin
PhpmyadminPhpmyadmin
Phpmyadmin
 
codigos HTLM
codigos HTLMcodigos HTLM
codigos HTLM
 
Instalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuInstalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntu
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
 
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
Resumen INTRODUCCION DE LOS SISTEMAS OPERATIVOS EN RED. REDES LINUX SERVER (T...
 
Drupal 8, presente y futuro
Drupal 8, presente y futuroDrupal 8, presente y futuro
Drupal 8, presente y futuro
 
Presentación Drupal
Presentación DrupalPresentación Drupal
Presentación Drupal
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
dotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarialdotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarial
 
Introducción a Drupal
Introducción a DrupalIntroducción a Drupal
Introducción a Drupal
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
Php.y.my sql
Php.y.my sqlPhp.y.my sql
Php.y.my sql
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sql
 
Gestores de contenido
Gestores de contenidoGestores de contenido
Gestores de contenido
 

Destaque

2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...
2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...
2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...Forum Velden
 
Taiwan für Deutsche: Was ich wichtig finde
Taiwan für Deutsche: Was ich wichtig findeTaiwan für Deutsche: Was ich wichtig finde
Taiwan für Deutsche: Was ich wichtig findeKlaus Bardenhagen
 
El movimiento-uniforme-y-rectilineo
El movimiento-uniforme-y-rectilineoEl movimiento-uniforme-y-rectilineo
El movimiento-uniforme-y-rectilineoEdy Hurt
 
Media Port 2012, Session 1: Regionalmedien Austria
Media Port 2012, Session 1: Regionalmedien AustriaMedia Port 2012, Session 1: Regionalmedien Austria
Media Port 2012, Session 1: Regionalmedien AustriaWAN-IFRA
 
Content Thinking - wenn man Content Strategie ernst nimmt
Content Thinking - wenn man Content Strategie ernst nimmtContent Thinking - wenn man Content Strategie ernst nimmt
Content Thinking - wenn man Content Strategie ernst nimmtMichael Hafner
 
Memoria de la actividad del grupo Atlas VPM 2011 2
Memoria de la actividad del grupo Atlas VPM 2011 2Memoria de la actividad del grupo Atlas VPM 2011 2
Memoria de la actividad del grupo Atlas VPM 2011 2Atlas VPM
 
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...Axel Oppermann
 
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia Hänel
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia HänelRecruiting-to-go 2013 · Modul 5 · Dr. Patricia Hänel
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia HänelMedia Consult Maier + Partner
 
Memoria de las actividades del grupo Atlas VPM 2012
Memoria de las actividades del grupo Atlas VPM 2012Memoria de las actividades del grupo Atlas VPM 2012
Memoria de las actividades del grupo Atlas VPM 2012Atlas VPM
 
2015 8a bei Fielmann
2015 8a bei Fielmann2015 8a bei Fielmann
2015 8a bei Fielmannhajoz
 
GoLab_EuropeanProjects_DIM2014_mdiez
GoLab_EuropeanProjects_DIM2014_mdiezGoLab_EuropeanProjects_DIM2014_mdiez
GoLab_EuropeanProjects_DIM2014_mdiezmdiezc
 
AkkuPower Ladegeräte Katalog
AkkuPower Ladegeräte KatalogAkkuPower Ladegeräte Katalog
AkkuPower Ladegeräte KatalogAkkuShop.de
 

Destaque (19)

028 amanat kppm
028 amanat kppm028 amanat kppm
028 amanat kppm
 
victor Folder
victor Foldervictor Folder
victor Folder
 
2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...
2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...
2008. Michael Angerer. Bulgarien – Wirtschaftsdynamik setzt sich fort. CEE-Wi...
 
Taiwan für Deutsche: Was ich wichtig finde
Taiwan für Deutsche: Was ich wichtig findeTaiwan für Deutsche: Was ich wichtig finde
Taiwan für Deutsche: Was ich wichtig finde
 
Ttg kooperationen kl-v01 (1)
Ttg kooperationen kl-v01 (1)Ttg kooperationen kl-v01 (1)
Ttg kooperationen kl-v01 (1)
 
El movimiento-uniforme-y-rectilineo
El movimiento-uniforme-y-rectilineoEl movimiento-uniforme-y-rectilineo
El movimiento-uniforme-y-rectilineo
 
Game ON
Game ONGame ON
Game ON
 
Media Port 2012, Session 1: Regionalmedien Austria
Media Port 2012, Session 1: Regionalmedien AustriaMedia Port 2012, Session 1: Regionalmedien Austria
Media Port 2012, Session 1: Regionalmedien Austria
 
Content Thinking - wenn man Content Strategie ernst nimmt
Content Thinking - wenn man Content Strategie ernst nimmtContent Thinking - wenn man Content Strategie ernst nimmt
Content Thinking - wenn man Content Strategie ernst nimmt
 
Memoria de la actividad del grupo Atlas VPM 2011 2
Memoria de la actividad del grupo Atlas VPM 2011 2Memoria de la actividad del grupo Atlas VPM 2011 2
Memoria de la actividad del grupo Atlas VPM 2011 2
 
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...
BUYING Butler Tutorial No.2 - Methodische Anforderungsanalyse für Office-Lösu...
 
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia Hänel
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia HänelRecruiting-to-go 2013 · Modul 5 · Dr. Patricia Hänel
Recruiting-to-go 2013 · Modul 5 · Dr. Patricia Hänel
 
Memoria de las actividades del grupo Atlas VPM 2012
Memoria de las actividades del grupo Atlas VPM 2012Memoria de las actividades del grupo Atlas VPM 2012
Memoria de las actividades del grupo Atlas VPM 2012
 
SoSe 2013 | IT-Zertifikat: DM - 00_Organisatorisches
 SoSe 2013 | IT-Zertifikat: DM - 00_Organisatorisches SoSe 2013 | IT-Zertifikat: DM - 00_Organisatorisches
SoSe 2013 | IT-Zertifikat: DM - 00_Organisatorisches
 
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-EntwicklungBit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
 
2015 8a bei Fielmann
2015 8a bei Fielmann2015 8a bei Fielmann
2015 8a bei Fielmann
 
Bit sosem 2016-wieners-sitzung-04_theoretische-informatik
Bit sosem 2016-wieners-sitzung-04_theoretische-informatikBit sosem 2016-wieners-sitzung-04_theoretische-informatik
Bit sosem 2016-wieners-sitzung-04_theoretische-informatik
 
GoLab_EuropeanProjects_DIM2014_mdiez
GoLab_EuropeanProjects_DIM2014_mdiezGoLab_EuropeanProjects_DIM2014_mdiez
GoLab_EuropeanProjects_DIM2014_mdiez
 
AkkuPower Ladegeräte Katalog
AkkuPower Ladegeräte KatalogAkkuPower Ladegeräte Katalog
AkkuPower Ladegeräte Katalog
 

Semelhante a Taller de Drupal - Sesión 4

ABC theming en Drupal7
ABC theming en Drupal7ABC theming en Drupal7
ABC theming en Drupal7Jorge Ram
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDarío BF
 
Curso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalCurso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalMediaglobe Innova
 
1 Diseño Web introducción a Drupal
1 Diseño Web   introducción a Drupal1 Diseño Web   introducción a Drupal
1 Diseño Web introducción a DrupalJLSitec
 
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...SergioIglesiasNET
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladoresPedro Cambra
 
Drupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosDrupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosWalter Herrera
 
Desarrollo de temas de apariencia para Liferay 6.1
Desarrollo de temas de apariencia para Liferay 6.1Desarrollo de temas de apariencia para Liferay 6.1
Desarrollo de temas de apariencia para Liferay 6.1Julio Camarero
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7Ymbra
 
003 - Temas & temas hijos en WordPress
003 - Temas & temas hijos en WordPress003 - Temas & temas hijos en WordPress
003 - Temas & temas hijos en WordPressPablo Cianes
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpJulio Cesar Salas
 
Joomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates WorkshopJoomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates Workshopjoomlaprojects
 
Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8Pakman Lh
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigMarcos Labad
 

Semelhante a Taller de Drupal - Sesión 4 (20)

Temas Drupal
Temas DrupalTemas Drupal
Temas Drupal
 
ABC theming en Drupal7
ABC theming en Drupal7ABC theming en Drupal7
ABC theming en Drupal7
 
Site building
Site buildingSite building
Site building
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
 
Sitios responsivos con Adaptive Theme
Sitios responsivos con Adaptive ThemeSitios responsivos con Adaptive Theme
Sitios responsivos con Adaptive Theme
 
Curso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalCurso Drupal. Theming con Drupal
Curso Drupal. Theming con Drupal
 
1 Diseño Web introducción a Drupal
1 Diseño Web   introducción a Drupal1 Diseño Web   introducción a Drupal
1 Diseño Web introducción a Drupal
 
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
 
Vistiendo a WordPress
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPress
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
Drupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosDrupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectos
 
Desarrollo de temas de apariencia para Liferay 6.1
Desarrollo de temas de apariencia para Liferay 6.1Desarrollo de temas de apariencia para Liferay 6.1
Desarrollo de temas de apariencia para Liferay 6.1
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7
 
003 - Temas & temas hijos en WordPress
003 - Temas & temas hijos en WordPress003 - Temas & temas hijos en WordPress
003 - Temas & temas hijos en WordPress
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
Joomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates WorkshopJoomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates Workshop
 
Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8Twig y otros "themas" en Drupal 8
Twig y otros "themas" en Drupal 8
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
¡Twig desde 0!
¡Twig desde 0! ¡Twig desde 0!
¡Twig desde 0!
 

Último

Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfSarayLuciaSnchezFigu
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxMaritza438836
 
Concurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxConcurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxkeithgiancarloroquef
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 

Último (20)

Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdfPresentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
Presentacion minimalista aesthetic simple beige_20240415_224856_0000.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docxIII SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
III SEGUNDO CICLO PLAN DE TUTORÍA 2024.docx
 
Concurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptxConcurso José María Arguedas nacional.pptx
Concurso José María Arguedas nacional.pptx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 

Taller de Drupal - Sesión 4

  • 1. Taller de Drupal – Sesión 4
  • 3. Características del theming con Drupal Un “theme” es una serie de ficheros que define la capa de presentación (el look and feel) de una web con Drupal. Un theme especifica la estructura de la página, las hojas de estilo y, si es necesario, el Javascript Para crear o modificar un theme se necesita conocimientos de xHTML y CSS y la terminología usada en Drupal
  • 4. Algunos themes de Drupal más información: http://drupal.org/project/Themes
  • 5. Anatomía de un theme de Drupal más información: http://drupal.org/node/231036
  • 6. Anatomía de un theme de Drupal .info name (required) description core engine base theme regions stylesheets scripts más información: http://drupal.org/node/171205
  • 7. Anatomía de un theme de Drupal ; $Id: garland.info,v 1.5 2007/07/01 23:27:32 goba Exp $ name = Garland description = Tableless, recolorable, multi-column, fluid width theme (default). version = VERSION core = 6.x engine = phptemplate stylesheets[all][] = style.css stylesheets[print][] = print.css Minnelli sub-theme of Garland.: ; $Id: minnelli.info,v 1.7 2007/12/04 20:58:44 goba Exp $ name = Minnelli description = Tableless, recolorable, multi-column, fixed width theme. version = VERSION core = 6.x base theme = garland stylesheets[all][] = minnelli.css
  • 8. Anatomía de un theme de Drupal Template files ● page.tpl.php ● node.tpl.php ● block.tpl.php ● box.tpl.php ● comment.tpl.php
  • 9. Anatomía de un theme de Drupal template.php Nos sirve para sobreescribir las funciones de theme y para las funciones “preprocesors”
  • 10. Anatomía de un theme de Drupal Subthemes Los subtemas heredan las propiedades del sus ancestros. Facilita la creación de variaciones de temas, por ejemplo de temas contribuidos. más información: http://drupal.org/node/225125
  • 11. Themes base para empezar un theme personalizado Nos facilitan tareas comunes que todos los themes necesitan Algunos incluyen un framework de CSS (960, blueprint) Muchas alternativas. Los más famosos: Zen, Blueprint, Genesis. más información: http://www.chapterthree.com/blog/squiggy_rubio/review_drupal_6_starter_themes
  • 12. hook_theme El registro de temas de Drupal guarda información cacheada de los hooks de temas disponibles y como manejarlos Los módulos han de usar el hook_theme para “registrar” sus funciones theme_ Es necesario borrar la cache para volver a registrar estas funciones Podemos forzar durante el desarrollo a que se “refresque” estos registros en cada página más información: http://api.drupal.org/api/function/hook_theme http://drupal.org/node/173880#theme-registry
  • 13. hook_theme function hook_theme($existing, $type, $theme, $path) { return array( 'forum_display' => array( 'arguments' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL, 'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL), ), 'forum_list' => array( 'arguments' => array('forums' => NULL, 'parents' => NULL, 'tid' => NULL), ), 'forum_topic_list' => array( 'arguments' => array('tid' => NULL, 'topics' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL), ), 'forum_icon' => array( 'arguments' => array('new_posts' => NULL, 'num_posts' => 0, 'comment_mode' => 0, 'sticky' => 0), ), 'forum_topic_navigation' => array( 'arguments' => array('node' => NULL), ), ); } más información: http://api.drupal.org/api/function/hook_theme http://drupal.org/node/173880#theme-registry
  • 14. Subthemes Problema: Empezar desde 0 un tema Problema: Queremos tener variaciones menores de un tema (colores, fondos, etc) Problema: Queremos usar un tema contribuido pero con algunas modificaciones y nos interesa poder ir actualizándolo más información: http://drupal.org/node/225125
  • 15. Subthemes Usando un subtheme: ● no necesitamos empezar desde 0 ● podemos crear pequeñas variaciones de manera fácil ● podemos actualizar los temas padre sin problemas ya que estos no los modificamos.
  • 16. Subthemes El .info con la misma estructura pero usando la variable “base theme” (que nos indica el theme padre) El subtheme hereda las propiedades de su “padre”. Podemos sobreescribir estas propiedades para modificarlas o añadir nuevas.
  • 17. Subthemes – Manos a la obra Instalamos Blueprint: http://drupal.org/project/blueprint Creamos una carpeta llamada subtema y le ponemos el fichero subtema.info con: name = Subtema description = Tema subtema core = 6.x base theme = blueprint stylesheets[all][] = subtema.css Creamos un fichero subtema.css dónde podemos modificar alguna propiedad. Ej: body { font-size: 2em; } Copiamos el fichero node.tpl.php de Blueprint y lo modificamos.
  • 18. Subthemes – Herencias ¿Qué se hereda? ●Todas las hojas de estilo (CSS) ●Todos los javascripts ●Todos los templates (.tpl.php) ●Todo lo definido en el template.php ●Screenshot ¿Qué no se hereda? ●El logo.png ●Algunas opciones del .info como las regiones ●Todo lo definido en theme-settings.php ●Todo lo definido en el directorio “color”
  • 19. Sobreescribiendo themes Problema: Queremos modificar el html que devuelve el core de Drupal o un módulo contribuido. Solución mala: Parcheamos directamente el código. No es mantenible Solución buena: Sobreescribimos (override) la función theme desde otro fichero y sin modificar el original más información: http://drupal.org/node/173880
  • 20. Sobreescribiendo themes más información: http://drupal.org/node/173880
  • 21. Sobreescribiendo themes El Core y los módulos devuelven el código html usando una función theme_ function theme_box($title, $content, $region = 'main') { $output = '<h2 class="title">'. $title .'</h2><div>'. $content .'</div>'; return $output; } Se usa la función theme() para permitir la sobreescritura: Return theme('box',$title,$content); más información: http://drupal.org/node/173880
  • 22. Sobreescribiendo themes Al usar la función theme('box') Drupal mira si existe y en este orden: nombre_del_tema_box() Por ejemplo: zen_box() nombre_del_engine_box() Por ejemplo: phptemplate_box() theme_box() La función original Cuando Drupal encuentra una de las funciones no busca más y devuelve el resultado de esa función. más información: http://drupal.org/node/173880
  • 23. Sobreescritura de tpl.php Drupal de manera automática ya permite sobreescribir ficheros tpl.php tan sólo modificando el nombre del fichero. Ejemplo: node-[type].tpl.php base template: node.tpl.php "node-story.tpl.php", "node-blog.tpl.php", etc. . más información: http://drupal.org/node/190815
  • 24. Firebug – El mejor amigo del maquetador Imprescindible, no salgáis de casa sin él más información: http://getfirebug.com/
  • 25. Theme Devel Nos ayuda a identificar de forma fácil las funciones que Intervienen en la maquetación de un elemento Sólo es necesario habilitarlo y hacer click sobre el elemento del que necesitamos la información. Nos ayuda a averiguar que función o template debemos sobreescribir más información: http://drupal.org/node/209561
  • 26. Template preprocessors Las funciones preprocess sólo se aplican a los Hooks de themes implementados como templates. El rol principal es preparar las variables que se van a usar dentro de los template (tpl.php) function MYMODULE_preprocess_node(&$variables) { // modificaciones en $variables. }
  • 27. Sections Nos permite asignar un tema diferente de la misma Manera que se gestiona dónde ha de ir un bloque Podemos tener varios subtemas diferentes y asignarlos por secciones más información: http://drupal.org/project/sections
  • 28. Theme de administración Drupal permite asignar un tema diferente para la administración. Hay temas pensados para esta función: rootcandy. http://drupal.org/project/rootcandy Es recomendable tenerlo mientras creamos un tema para “evitar accidentes”
  • 29. Jquery y Drupal ● Drupal 6 lleva en el Core Jquery 1.2 ● Usando Jquery Update podemos tener siempre la última versión. http://drupal.org/project/jquery_update ● Podemos añadir un fichero javascript desde el .info scripts[] = myscript.js ● O usando la función drupal_add_js (http://api.drupal.org/api/function/drupal_add_js) ● Hay que usar Drupal.behaviors.nombre_unico = function() {} en lugar de $(document).ready()