Está en la página 1de 110

Introduccin a Drupal 6

Autor: Ruben Egiguren


Fecha: 06/09/2010

Introduccin a Drupal 6
Pg. 2
ndice

Introduccin a Drupal

Herramientas de administracin

Instalacin de Drupal

Configuracin bsica

Empecemos a jugar

Algunas distribuciones

Entorno desarrollo

Actividades avanzadas

Eleccin de tema base

Subtema basado en ZE

Actividades subtema

!dulos bsico

"uentes

#icencia

ndice
Introduccin a Drupal 6
Pg. 3
Introduccin a Drupal

Introduccin a Drupal 6
Pg. 4
Qu es Drupal?
Definicin
Drupal es un programa libre$ con licencia %&'%(#$ escrito en (H($ desarrollado ) mantenido por
una activa comunidad de usuarios* Destaca por la calidad de su cdigo ) de las pginas generadas$
el respeto de los estndares de la +eb$ ) un ,nfasis especial en la usabilidad ) consistencia de todo
el sistema*
Drupal es un sistema de gestin de contenidos modular multiproposito ) mu) configurable -ue
permite publicar art.culos$ imgenes$ u otros arc/ivos ) servicios a0adidos como foros$ encuestas$
votaciones$ blogs ) administracin de usuarios ) permisos* Drupal es un sistema dinmico1 en lugar
de almacenar sus contenidos en arc/ivos estticos en el sistema de fic/eros del servidor de forma
fija$ el contenido te2tual de las pginas ) otras configuraciones son almacenados en una
base de datos ) se editan utilizando un entorno 3eb*
El dise0o de Drupal es especialmente idneo para construir ) gestionar comunidades en Internet* o
obstante$ su fle2ibilidad ) adaptabilidad$ as. como la gran cantidad de mdulos adicionales
disponibles$ /ace -ue sea adecuado para realizar muc/os tipos diferentes de sitio +eb*
"uente1 3i4ipedia

Introduccin a Drupal 6
Pg. 5
Qu es Drupal?
CM/CMF

Content !anagement S)stem 5%estor de contenidos6

Content !anagement "rame+or4 5marco de trabajo$ A(I$***6

Communit) !anagement S)stem 5creacin de comunidades$*** 6

Communication !anagement S)stem 5sistemas de comunicacin$***6



Introduccin a Drupal 6
Pg. 6
Qu es Drupal?
Drupal co!o CM

Control sobre el flujo de creacin$ edicin$ borrado ) publicacin


de contenidos*

Categorizacin ) organizacin de contenido*

%estin de usuarios ) roles* (rivacidad$ control de acceso*

(resentacin de contenido en diversos formatos*

Sistema ampliable ) e2tensible*



Introduccin a Drupal 6
Pg. 7
Qu es Drupal?
Drupal co!o Fra!e"or#

Capa de ab$traccin sobre la ba$e %e %ato$*

Sistema de plantilla$ 5t/emes6 separado de la lgica*

#ibrer.as a&a'* (or defecto j7uer)*

eguri%a%$ identificacin de usuarios ) configuracin de permisos


personalizable*

Herramientas de cach( a varios niveles*

A)* para desarrolladores p8blica ) disponible1 /ttp1''api*drupal*org'



Introduccin a Drupal 6
Pg. 8
Qu es Drupal?
Multiplataforma (LAMP / WAMP /XAMP)

Introduccin a Drupal 6
Pg. 9
Qu es Drupal?
Drupal e$ $oft"are libre

(ublicado bajo licencia %&'%(# 9 o superior*

#ibre descarga$ modificacin ) reutilizacin*

Distribucin bajo la misma licencia*

:odos los plugins 5mdulos6 ) plantillas 5temas6 -ue se inclu)en


tanto en la descarga inicial como en las descargas desde el
repositorio oficial tienen licencia %(#*

Introduccin a Drupal 6
Pg. 10
Qu es Drupal?
+icencia ,)+

#ibertades del soft+are libre

Art.culo principal1 Definicin del Soft+are #ibre

De acuerdo con tal definicin$ el soft+are es ;libre; si garantiza las siguientes


libertades1
+iberta% De$cripcin
0 la libertad de usar el programa$ con cual-uier propsito*
1 la libertad de estudiar cmo funciona el programa ) modificarlo$ adaptndolo a
tus necesidades*
2 la libertad de distribuir copias del programa$ con lo cual puedes a)udar a tu
prjimo*
- la libertad de mejorar el programa ) /acer p8blicas esas mejoras a los dems$
de modo -ue toda la comunidad se beneficie*
Las libertades 1 y 3 requieren acceso al cdio fuente porque estudiar y modificar soft!are sin su
cdio fuente es muy poco "iable#

Introduccin a Drupal 6
Pg. 11
Qu es Drupal?
Ar.uitectura

Introduccin a Drupal 6
Pg. 12
Qu es Drupal?
Directorio$

Introduccin a Drupal 6
Pg. 13
De dnde viene?
Drie$ /u0taert

"undador de Drupal*

Ciudadano <elga*

Cdigo fuente abierto en 9==>*

(ublicado bajo licencia %&'%(# 9 o superior*

El dominio original$ drop*org es un error tipogrfico de su


creador$ Dries <u)taert*

Drupal es el e-uivalente fon,tico en ingl,s a la palabra


neerlandesa druppel -ue significa ?gota?*

Introduccin a Drupal 6
Pg. 14
De dnde viene?

(ortales corporativos*

Intranets*

<logs*

"oros*

Comunidades*

3i4is*

Eventos*

%aler.as de fotos*

%aler.as de v.deos*

E@commerce*

E@learning*

Aplicaciones*

***

Introduccin a Drupal 6
Pg. 15
Quin lo esta usando?

!edios* 5/ttp1''+++*vtA*be'6

Corporativos* 5/ttp1''+++*bilbomatica*es6

Brganizaciones sin animo de lucro* 5/ttp1''+++*amnest)*org'6

Educacin* 5/ttp1''+++*/arvardscience*/arvard*edu'6

Soft+are* 5/ttp1''+++*spreadfirefo2*com'6

(ol.ticos* 5/ttp1''+++*premier*fgov*be6 (rimer !inistro <elga*

%obiernos* 5/ttp1''+++*+/ite/ouse*gov'6

Artistas* 5/ttp1''+++*ericclapton*com'6

Sanidad* 5/ttp1''+++*uzleuven*be'6

Cevistas* 5/ttp1''clint*be'6

oticias* 5/ttp1''+++*france9A*com'6

D

Introduccin a Drupal 6
Pg. 16
Quin es quin en Drupal?
Drie$ /u0taert

"undador ) desarrollador l.der


de Drupal*

!antenedor principal del


n8cleo*

Creador ) propietario de la
marca*

Introduccin a Drupal 6
Pg. 17
Quin es quin en Drupal?
Mantene%ore$ %e la ra!a$

eil Drumm 5DE6

%abor Hojts) 5DF6

Angie <)ron 5DG6



Introduccin a Drupal 6
Pg. 18
Quin es quin en Drupal?
Mantene%ore$ 0 colabora%ore$

!antenedores*

Colaboradores del n8cleo*

Colaboradores de mdulos*

Colaboradores del temas*

Colaboradores de de traducciones*

Colaboradores de documentacin*

E-uipo de seguridad*

Introduccin a Drupal 6
Pg. 19
Algunas caractersticas interesantes?

Creacin de contenidos*

:a2onom.as*

!en8s*

Estados de publicacin*

%estin de usuarios*

(ermisos*

RSS.

Multilenguaje.

Traduccin de contenidos.

Formularios.

Multisitios.



Introduccin a Drupal 6
Pg. 20
Algunas caractersticas interesantes?
)unto$ fuerte$ %e Drupal

E'ten$ible1 gran cantidad de mdulos contribuidos ) una buena A(I


para desarrollos propios*

Fle'ible1

eguri%a%1 e-uipo dedicado a la seguridad$ granularidad de


permisos$ D

Sistema de plantilla$ mu) potente*

Co!uni%a%1 centralizada$ activa ) numerosa*

oporte1 una comunidad activa ) disponibilidad de profesionales*

Soft+are libre ) gratuito1



Introduccin a Drupal 6
Pg. 21
Algunas caractersticas interesantes?
)unto$ %(bile$ %e Drupal

Cur2a %e apren%i3a&e inicial pronunciada*

*nterfa3 por defecto poco a!igable1

Co!patibili%a% inversa*

Introduccin a Drupal 6
Pg. 22
Cmo construir un sitio de Drupal?
Ante$ %e co!en3ar

Anlisis de re-uisitos*

Ar-uitectura de informacin*

&sabilidad*

Dise0o*

Introduccin a Drupal 6
Pg. 23
Cmo construir un sitio de Drupal?
4area$ a reali3ar

Seleccionar mdulos e2istentes -ue implementen la funcionalidad solicitada*

Adaptar mdulos con funcionalidades ine2istentes*

Crear mdulos a medida* 5El objetivo es desarrollar lo menos posible )


utilizar el m2imo de mdulos desarrollados por la comunidad$ esto conlleva
menor trabajo de desarrollo6

Instalacin ) configuracin*

Crear o adaptar un tema para personalizar la apariencia*

(ersonalizar ) adaptar entorno visual* 5<lo-ues$ men8s$***6*

#anzamiento*

!antenimiento*

Introduccin a Drupal 6
Pg. 24
Qu tecnologas estn involucradas
en un buen sitio de Drupal?
)rogra!acin

(H(

A(I de Drupal

Introduccin a Drupal 6
Pg. 25
Qu tecnologas estn involucradas
en un buen sitio de Drupal?
Cliente

H:!# H IH:!#

CSS

JavaScript

j7uer)

Introduccin a Drupal 6
Pg. 26
Qu tecnologas estn involucradas
en un buen sitio de Drupal?
Di$e5o

#ibres

%imp

In4scape

(ropietarias

Adobe (/otos/op

Adobe Illustrator

Introduccin a Drupal 6
Pg. 27
Qu tecnologas estn involucradas
en un buen sitio de Drupal?
er2i%or

Sistema operativo

#inu2 5recomendado6

3indo+s

!ac BS I

Servidor 3eb

Apac/e 5recomendado6

IIS

<ase de datos

!)S7# 5recomendado6

(ostgreS7#

Ced

Introduccin a Drupal 6
Pg. 28
Qu tecnologas estn involucradas
en un buen sitio de Drupal?
Alguno$ e'tra$

Aja2

I!#@C(C

Servicios +eb

I!#

"las/

Introduccin a Drupal 6
Pg. 29
Cual es el estado actual de Drupal?

Drupal E

En mantenimiento 5antigua6

Drupal F

En mantenimiento 5actual6

Drupal G

Congelada 5en correcciones$ Alp/a F6

/ttp1''drupal*org'project'drupal

Introduccin a Drupal 6
Pg. 30
Cual es el estado actual de Drupal?
Alguno$ pre!io$ gana%o$

3eb+are >== 9==G

3eb+are >== 9==K

3eb+are >== 9==L

Bverall Bpen Source C!S 9==G

Bverall Bpen Source C!S 9==K

<est Bpen Source (H( C!S 9==L

Hall of "ame 9==L

D

ndice
Herramientas de administracin
Introduccin a Drupal 6
Pg. 31

Introduccin a Drupal 6
Pg. 32
MySQL

!)S7# Admin

!)S7# 7uer) <ro+nser

!)S7# 3or4<enc/

(/pm)admin

Introduccin a Drupal 6
Pg. 33
Administracin de ficheros

"ileZilla

SSH

3inSC(

***

Introduccin a Drupal 6
Pg. 34
Administracin de sistemas

SSH

(utt) 5comandos6

MC

Escritorio remoto

Introduccin a Drupal 6
Pg. 35
Administracin de Drupal

"irefo2

Bpera

C/rome H C/romium

Internet E2plorer

Cual-uier otro navegador +eb



Introduccin a Drupal 6
Pg. 36
ndice
Instalacin de Drupal

Introduccin a Drupal 6
Pg. 37
GNU/Linux
Se recomienda -ue los servidores de produccin corran sobre la
siguiente ar-uitectura1

%&'#inu2

Apac/e

!)S7#

(H(

Introduccin a Drupal 6
Pg. 38
GNU/Linux
*n$talacin %e pa.uete$

Abrir terminal e instalar Apac/e9$ (H( E ) !)S7# E*>*


$ sudo apiude insa11 apache2 mysq1-server-5.1 php5 php5-mysq1
*n$talacin %e herra!ienta$

Herramientas de administracin para !)S7# ) cliente ":('S":( 5"ileZilla6*


$ sudo apiude insa11 mysq1-query-browser mysq1-c1ien-5.1 mysq1-admin
phpmyadmin fi1ezi11a
Acti2ar url li!pia$

Activar las url limpias para mejorar la inde2acin de las paginas ) facilitar su
lectura*
$ sudo a2enmod rewrie
Crea!o$ la$ carpeta$ nece$aria$
$ m'dir Rroyecos

Introduccin a Drupal 6
Pg. 39
GNU/Linux
Directorio 2irtual

Creamos un fic/ero con los parmetros de nuestros sitio*


$ sudo nano /ec/apache2/sies-avai1ab1e/www.drupa1examp1e.com
<Virua1Hos *:80>
ServerAdmin emai1@emai1.com
ServerName www.drupa1examp1e.com
ServerA1ias drupa1examp1e.com
ocumenRoo /home/ubuntu/Rroyecos/drupa1examp1e/
<irecory />
Opions Eo11owSymLin's
A11owOverride A11
</irecory>
ErrorLog /var/1og/apache2/error.1og
# Rossib1e va1ues inc1ude: debug, info, noice, warn, error, cri,
# a1er, emerg.
LogLeve1 warn
CusomLog /var/1og/apache2/access.1og combined
ServerSignaure On
</Virua1Hos>

www.drupalexample.com debe ser sustituido por el nombre original del sitio. Si no se realiza as
a la hora de cambiar la URL dar algn que otro dolor de cabeza. Dependencia de la url. Se
puede utilizar la carpeta default en los casos de un nico dominio.

sta con!iguraci"n solo es para un desarrollo local. n caso de producci"n seria recomendable
crearlo en /var/www/

Introduccin a Drupal 6
Pg. 40
GNU/Linux
Enlace $i!blico

Crear el enlace para activar el nuevo sitio creado*


$ sudo 1n -s /ec/apache2/sies-avai1ab1e/www.drupa1examp1e.com /ec/apache2/sies-
enab1ed/www.drupa1examp1e.com
E%itar ho$t$ 0 reiniciar re%

Editar /osts para el desarrollo en local ) as. decir en -ue ip esta la


+eb sin pasar por el DS*
$ sudo nano /ec/hoss
127.0.0.1 1oca1hos www.drupa1examp1e.com

Ceiniciar red
$ sudo /ec/ini.d/newor'ing resar

Introduccin a Drupal 6
Pg. 41
GNU/Linux
Crear /a$e %e Dato$

Abrir la terminal ) ejecutar*


$ mysq1 -u roo -p
mysq1> creae daabase drupa1examp1e CHARACTER SET uf8,
mysq1> GRANT ALL RRIVILEGES ON drupalexample.* TO drupaldbuser@1oca1hos
IENTIEIE BY 'fuffy',
mysq1> f1ush privi1eges,
mysq1> \q
Bye

Introduccin a Drupal 6
Pg. 42
GNU/Linux
Fichero$ %e Drupal

Abrir terminal e ir a la carpeta del pro)ecto*


$ cd /home/ubunu/Rroyecos/

Descargar Drupal*
$ wge hp://fp.drupa1.org/fi1es/pro_ecs/drupa1-6.19.ar.gz

Descomprimir Drupal*
$ ar xvfz drupa1-6.19.ar.gz

Cenombrar Drupal al nombre del pro)ecto*


$ mv drupa1-6.19 drupa1examp1e
Reiniciar Apache

Ceiniciamos apac/e para -ue cargue todas las modificaciones*


$ sudo /ec/ini.d/apache2 resar

Introduccin a Drupal 6
Pg. 43
Instalacin aplicacin Drupal 6
E$tructura %e %irectorio$

Introduccin a Drupal 6
Pg. 44
Instalacin aplicacin Drupal 6

Mamos a sites ) entramos dentro de default*

$ cd drupa1examp1e/sies/defau1/

Copiamos default*settings*p/p a settings*p/p*

$ cp defau1.seings.php seings.php

(ara sistemas %&'#inu2 realizamos lo siguiente

settings*p/p tiene -ue tener permisos de escritura*


$ chmod 666 seings.php

:ras la instalacin del portal tenemos -ue -uitarle permisos de escritura*


$ chmod 444 seings.php

Creamos la carpeta files en nuestra +eb 5*sites'default'files6*

Cambiar los permisos en %&'#inu2*


$ chmod -R 777 fi1es

Creamos la carpeta modules en nuestra +eb 5*sites'default'modules6*

Creamos la carpeta t/emes en nuestra +eb 5*sites'default't/emes6*

$ m'dir modu1es hemes

Accedemos con cual-uier navegador$ preferiblemente firefo2*



Introduccin a Drupal 6
Pg. 45
Instalacin aplicacin Drupal 6
)erfil

Abrir navegador e ir a /ttp1''+++*drupale2ample*com'install*p/p*

Elegimos siempre el perfil en ingles para evitar posibles errores posteriores*



Introduccin a Drupal 6
Pg. 46
Instalacin aplicacin Drupal 6
/a$e %e %ato$

Introduccin a Drupal 6
Pg. 47
Instalacin aplicacin Drupal 6
Configuracin %el $itio

Introduccin a Drupal 6
Pg. 48
Instalacin aplicacin Drupal 6
Finali3a%a la in$talacin

Cecordad el cambio de permisos de $etting$1php



Introduccin a Drupal 6
Pg. 49
ndice
Configuracin bsica

Introduccin a Drupal 6
Pg. 50
Panel administracin

(anel general para administrar el portal1 /ttp1''+++*drupale2ample*com'es'admin*



Introduccin a Drupal 6
Pg. 51
Pgina de estado

Estado del portal$ actualizaciones$ versiones$ ***1 /ttp1''+++*drupale2ample*com'es'admin'reports'status*



Introduccin a Drupal 6
Pg. 52
Mdulos

#istado de mdulos disponibles ) estado de los mismos1 /ttp1''+++*drupale2ample*com'es'admin'build'modules*



Introduccin a Drupal 6
Pg. 53
Temas

#istado de temas disponibles$ activos ) estado de los mismos1 /ttp1''+++*drupale2ample*com'es'admin'build't/emes*



Introduccin a Drupal 6
Pg. 54
Bloques

Disposicin de blo-ues ) configuracin de los mismos1 /ttp1''+++*drupale2ample*com'es'admin'build'bloc4*



Introduccin a Drupal 6
Pg. 55
Usuarios, roles y permisos

%estin de usuarios$ roles ) permisos para el control de los usuarios1

&suarios1 /ttp1''+++*drupale2ample*com'es'admin'user'user*

Introduccin a Drupal 6
Pg. 56
Usuarios, roles y permisos

Coles1 /ttp1''+++*drupale2ample*com'es'admin'user'roles*

Introduccin a Drupal 6
Pg. 57
Usuarios, roles y permisos

(ermisos de los roles1 /ttp1''+++*drupale2ample*com'es'admin'user'permissions*



Introduccin a Drupal 6
Pg. 58
Rendimiento/cache

Configuracin para la optimizacin en la ejecucin ) consulta de paginas1 /ttp1''+++*drupale2ample*com'es'admin'settings'performance*



Introduccin a Drupal 6
Pg. 59
Actualizar URL

Como se comentaba anteriormente Drupal es dependiente de la url ) el cambiar la url afecta directamente a la plataforma* (ara cambiar
la url se /a de ejecutar unas sentencias S7#*

#os campos estn serializados 5$12216 con la longitud total del campo 5'' es el valor del campo6* Al cambiar la url es necesario el adaptar
campo num,rico con el valor real de la linea*
URATE sysem SET fi1ename = RERLACE(fi1ename, 'www.examp1e.com', 'www.drupa1examp1e.com'),
URATE fi1es SET fi1epah = RERLACE(fi1epah, 'www.examp1e.com', 'www.drupa1examp1e.com'),
URATE node_revisions SET body = RERLACE(body , 'www.examp1e.com', 'www.drupa1examp1e.com'),
URATE node_revisions SET easer = RERLACE(easer, 'www.examp1e.com', 'www.drupa1examp1e.com'),
URATE variab1e SET va1ue = RERLACE(va1ue, 's:36:"sies/www.examp1e.com',
's:42:"sies/www.drupa1examp1e.com'),
URATE variab1e SET va1ue = RERLACE(va1ue, 's:31:"sies/www.examp1e.com',
's:37:"sies/www.drupa1examp1e.com'),
URATE variab1e SET va1ue = RERLACE(va1ue, 's:27:"sies/www.examp1e.com',
's:33:"sies/www.drupa1examp1e.com'),
URATE variab1e SET va1ue = RERLACE(va1ue, 's:21:"sies/www.examp1e.com',
's:27:"sies/www.drupa1examp1e.com'),
URATE variab1e SET va1ue = RERLACE(va1ue, 's:46:"sies/www.examp1e.com',
's:52:"sies/www.drupa1examp1e.com'),

En este caso vemos -ue la diferencia entre www.example.com ) www.drupalexample.com es de tan solo F caracteres* Con modificar el
valor s#xx# es suficiente para corregirlo*

(osteriormente accedemos un par de veces a las siguientes url para -ue actualice todos los datos*

+++*drupale2ample*com'update*p/p

+++*drupale2ample*com'cron*p/p

Introduccin a Drupal 6
Pg. 60
ndice
Empecemos a jugar

Introduccin a Drupal 6
Pg. 61
Antes de comenzar

Algunos puntos -ue comentar antes de comenzar*

&buntu L*>= ) repositorios de p/p E*9*2*

(osibles problemas con p/p E*N*2*

Mariables de p/p*

O sudo nano 'etc'p/pE'apac/e9'p/p*ini

O sudo nano 'etc'p/pE'cli'p/p*ini

memor)Plimit Q >9K! R recomendado$ m.nimo LF!

postPma2Psize Q 9E! Rseg8n necesidades

uploadPma2Pfilesize Q 9E! Rseg8n necesidades



Introduccin a Drupal 6
Pg. 62
Actividades - Instalacin

Cealizar una instalacin de Drupal*

"in de la instalacin ) acceso a la pagina de estado*

:areas de mantenimiento$ cron ) update* &tilizar el


interface*

Configuracin de la informacin del sitio*



Introduccin a Drupal 6
Pg. 63
Actividades - Nodos

Crear un nodo* :ipo contenido articulo 5/istor)6

(ublicar un nodo articulo en la portada*

Actualizar un nodo*

Cealizar un comentario*

Administrar comentarios para art.culos*

Mer las diferentes posibilidades -ue nos ofrece )


desactivar los comentarios*

Adjuntar un pdf* Cealizar cambios necesarios*



Introduccin a Drupal 6
Pg. 64
Actividades - Mens

Crear un enlace a la portada*

Crear un enlace acceso a la pagina user.

Crear un contenido con el url alias sobre@mi ) enlazar


en el men8

Crear men8 personalizado en men8 principal*

Bpcin >

Bpcin >*>

Bpcin 9

Bpcin 9*>

Bpcin 9*9

Bpcin N

Introduccin a Drupal 6
Pg. 65
Actividades - Bloques

Colocar el blo-ue de login en la parte derec/a*

Crear un nuevo blo-ue con /tml*

&n SHola mundoT es suficiente*

Colocar el blo-ue del buscador en la cabecera* Cealizar las


tareas necesarias$ activacin del modulo$ permisos de
usuarios***

(robar diferentes opciones*



Introduccin a Drupal 6
Pg. 66
Actividades - Mdulos

UCuales son los mdulos ms usadosV

UDonde buscar los mdulosV

UDonde se encuentranV

Introduccin a Drupal 6
Pg. 67
Actividades - Mdulos
Estos son algunos de los mdulos ms usados en Drupal* Se deben seleccionar
a-uellos -ue sean necesarios para las necesidades del pro)ecto*

Misitar1 /ttp1''drupal*org'project'usage

<ac4up and !igrate1 /ttp1''drupal*org'project'bac4upPmigrate

(oormanscron1 /ttp1''drupal*org'project'poormanscron

Content Construction Wit 5CCW61 /ttp1''drupal*org'project'cc4

Mie+s1 /ttp1''drupal*org'project'vie+s

3)si+)g1 /ttp1''drupal*org'project'+)si+)g

:o4en1 /ttp1''drupal*org'project'to4en

(at/auto1 /ttp1''drupal*org'project'pat/auto

:ransliteration1 /ttp1''drupal*org'project'usage'transliteration

<8s-ueda de mdulos1 /ttp1''drupalmodules*com



Introduccin a Drupal 6
Pg. 68
Actividades - Temas

Cambiar el tema por defecto ) -ue 8nicamente este


disponible el seleccionado*

Cambiar el tema de administracin*

Molver a colocar el tema por defecto*

<uscar temas*

U7ue tema utilizar.as ) por -u,V



Introduccin a Drupal 6
Pg. 69
ndice
Algunas distribuciones

Introduccin a Drupal 6
Pg. 70
Algunas distribuciones

BpenAtrium

/ttp1''openatrium*com'es

Bpen Atrium es una intranet empa-uetada -ue permite -ue


diferentes e-uipos tengan su propio espacio de trabajo )
conversaciones*

(roporciona seis funcionalidades bsicas1

<log

3i4i

Calendarios

#ista de tareas

!icroblog

(anel de gestion*

Introduccin a Drupal 6
Pg. 71
Algunas distribuciones

&bercart

/ttp1''+++*ubercart*org'

&bercart es un pa-uete de comercio electrnico -ue integra


plenamente su tienda online con Drupal*

Demo1

/ttp1''demo*ubercart*org'

Documentacin1

/ttp1''+++*ubercart*org'docs

Introduccin a Drupal 6
Pg. 72
Algunas distribuciones

!anaging e+s

/ttp1''managingne+s*com'

Agregador de noticias CSS'Atom*

<8s-ueda de noticias*

Cepublicacin noticias agrupando los art.culos en canales*

!apas configurables*

!arcado de localizacin configurable*



Introduccin a Drupal 6
Pg. 73
ndice
Entorno de Desarrollo

Introduccin a Drupal 6
Pg. 74
Entorno de Desarrollo

Instalacin del IDE

Como IDE usaremos et<eans con soporte (H(*

Se puede utilizar cual-uier otro IDE de (H( al -ue


estemos acostumbrados*

Crear pro)ecto (H( con fuentes e2istentes*

Debug para p/p



Introduccin a Drupal 6
Pg. 75
Entorno de Desarrollo

Debug para p/p

$ sudo apiude insa11 php5-xdebug

$ sudo nano /ec/php5/apache2/conf.d/xdebug.ini


zend_exension=/usr/1ib/php5/20090626+1fs/xdebug.so
, Remoe seings
xdebug.remoe_auosar=off
xdebug.remoe_enab1e=on
xdebug.remoe_hand1er=dbgp
xdebug.remoe_mode=req
xdebug.remoe_hos=1oca1hos
xdebug.remoe_por=9000
, Genera1
xdebug.auo_race=off
xdebug.co11ec_inc1udes=on
xdebug.co11ec_params=off
xdebug.co11ec_reurn=off
xdebug.defau1_enab1e=on
xdebug.exended_info=1
xdebug.manua1_ur1=hp://www.php.ne
xdebug.show_1oca1_vars=0
xdebug.show_mem_de1a=0
xdebug.max_nesing_1eve1=100
,xdebug.ide'ey=
, Trace opions
xdebug.race_forma=0
xdebug.race_oupu_dir=/mp
xdebug.race_opions=0
xdebug.race_oupu_name=crc32
, Rrofi1ing
xdebug.profi1er_append=0
xdebug.profi1er_enab1e=0
xdebug.profi1er_enab1e_rigger=0
xdebug.profi1er_oupu_dir=/mp
xdebug.profi1er_oupu_name=crc32

sudo /ec/ini.d/apache2 resar



Introduccin a Drupal 6
Pg. 76
Entorno de Desarrollo

Instalacin de Drus/* Drupal Shell utilit$

/ttp1''drupal*org'project'drus/

/ttp1''drupal*org'node'AGGFKA

Importante leer el readme*t2t de los mdulos

Algunos comandos bsicos de drus/

$ drush cc #C1ear a specific cache, or a11 drupa1 caches.

$ drush cron #Run a11 cron hoo's.

$ drush up #Updae your pro_ec code and app1y any daabase updaes required
(updae.php)

$ drush d1 modu1ename #own1oad core rupa1 and pro_ecs 1i'e CCK, Zen, ec.

$ drush en modu1ename #Enab1e one or more modu1es or hemes.

$ drush dis modu1ename #isab1e one or more modu1es or hemes.

Es recomendable instalar p/pE@cli$ para usar comandos avanzados*

$ sudo apiude insa11 php5-c1i



Introduccin a Drupal 6
Pg. 77
ndice
Actividades avanzadas

Introduccin a Drupal 6
Pg. 78
Actividades avanzadas

Instalacin de cc4 5Content Construction Wit6 con drus/

Activar el modulo cc4*

Crear un nuevo tipo contenido*

A0adir un campo de te2to nuevo*

Crear al menos E contenidos de este tipo

Instalacin de vie+s con drus/*

Activar el modulo vie+s*

Instalacin de i>Kn con drus/*

Activar el modulo i>Kn*



Introduccin a Drupal 6
Pg. 79
Actividades avanzadas

Dudas de las tareas realizadas*

A0adir idioma nuevo

A0adir variables de idioma en1

'sites'default'settings*p/p

Mer1 /ttp1''drupal*org'node'N>N9G9

<lo-ue de idioma en la parte superior*

Comprobar -ue la pgina de informacin del sitio tiene la


posibilidad de ser traducido ) probarlo cambiando la
informacin dependiendo del idioma*

Introduccin a Drupal 6
Pg. 80
Actividades avanzadas

Demo de vie+s*

Crear un listado con del nuevo tipo contenido creado*

:ipo de vista nodo*

!ostrar el t.tulo ) el nuevo campo creado*

Brdenarlo por fec/a de env.o

!ostrar un m2imo de 9 nodos por pantalla*

!ostrar paginador*

Crear opcin de men8 para la nueva pgina*



Introduccin a Drupal 6
Pg. 81
ndice
Eleccin de temas base

Introduccin a Drupal 6
Pg. 82
Eleccin de tema base

ZE @ /ttp1''drupal*org'project'zen

!u) documentado$ ideal para aprender*

!uc/as cosas )a pre/ec/as*

Contenido primero 5SEB6*

Sistema genial para clases de bod)$ etc*

<asic @ /ttp1''drupal*org'project'basic

Soporte nativo para S4inr*

#a)out fcil de modificar*

(rimero el contenido 5SEB6*

Sistema genial para clases de bod)$ etc*

Clean @ /ttp1''drupal*org'project'clean

Introduccin a Drupal 6
Pg. 83
Eleccin de tema base - Zen

Dise0o bsico creado para ser adaptado*

(rovee varios subtemas bsicos dise0ados para e2tender*

"ic/eros CSS base para e2tender*

IDs creadas ) posibilidad de e2tender*

Clases creadas ) posibilidad de e2tender*

Contiene la)out bsicas*

Anc/ura fija*

Anc/ura dinmica*

Capas /tml bsicas para e2tender*

Capacidad de a0adir nuevas1

(lantillas*

IDs*

Clases*

"ic/eros javascript*

/ttp1''+++*palantir*net'files'blog'misc'zenPreference*pdf

Introduccin a Drupal 6
Pg. 84
ndice
Subtema basado en ZEN

Introduccin a Drupal 6
Pg. 85
Subtema basado en ZEN (6.x-2.x)

Mer$ Ho+ to build )our o+n sub@t/eme 5F*2@9*261

/ttp1''drupal*org'node'F9LE>=

I!(BC:A:1 In Drupal F$ t/e t/eme s)stem cac/es template files and


+/ic/ t/eme functions s/ould be called* 3/at t/at means is if )ou add a
ne+ t/eme or preprocess function to )our template*p/p file or add a
ne+ template 5*tpl*p/p6 file to )our sub@t/eme$ )ou +ill need to rebuild
t/e ;t/eme registr)*; See /ttp1''drupal*org'node'>GNKK=Rt/eme@registr)

Drupal F also stores a cac/e of t/e data in *info files* If )ou modif) an)
lines in )our sub@t/eme?s *info file$ )ou !&S: refres/ Drupal F?s cac/e
b) simpl) visiting t/e admin'build't/emes page*

Introduccin a Drupal 6
Pg. 86
Subtema basado en ZEN (6.x-2.x)
>* Cop) t/e S:AC:ECWI: folder out of t/e zen' folder and rename it to be )our ne+ sub@
t/eme* I!(BC:A:1 Bnl) lo+ercase letters and underscores s/ould be used for t/e name
of )our sub@t/eme*
"or e2ample$ cop) t/e sites'all't/emes'zen'S:AC:ECWI: folder and rename it as
sites'all't/emes'foo*
3/)V Eac/ t/eme s/ould reside in its o+n folder* :o ma4e it easier to upgrade Zen$ sub@
t/emes s/ould reside in a folder separate from t/eir base t/eme*
9* In )our ne+ sub@t/eme folder$ rename t/e S:AC:ECWI:*info*t2t file to include t/e name of )our
ne+ sub@t/eme and remove t/e ;*t2t; e2tension* :/en edit t/e *info file b) editing t/e name and
description field*
"or e2ample$ rename t/e foo'S:AC:ECWI:*info*t2t file to foo'foo*info* Edit t/e foo*info file and
c/ange ;name Q Zen Sub@t/eme Starter Wit; to ;name Q "oo; and ;description Q Cead***; to
;description Q A Zen sub@t/eme;*
3/)V :/e *info file describes t/e basic t/ings about )our t/eme1 its name$ description$
features$ template regions$ CSS files$ and JavaScript files* See t/e Drupal F :/eme %uide
for more info
:/en$ visit )our site?s admin'build't/emes to refres/ Drupal F?s cac/e of *info file data*

Introduccin a Drupal 6
Pg. 87
Subtema basado en ZEN (6.x-2.x)
N* <) default )our ne+ sub@t/eme is using a fi2ed@+idt/ la)out* If )ou +ant a li-uid la)out for )our t/eme$ delete
t/e unneeded la)out@fi2ed*css and la)out@fi2ed@rtl*css files and edit )our sub@t/eme?s *info file and replace t/e
reference to la)out@fi2ed*css +it/ la)out@li-uid*css*
"or e2ample$ edit foo'foo*info and c/ange t/is line1
sy1eshees[a11|[| = css/1ayou-fixed.css
o:
sy1eshees[a11|[| = css/1ayou-1iquid.css
3/)V :/e ;st)les/eets; lines in )our *info file describe t/e media t)pe and pat/ to t/e CSS file )ou +ant
to include* :/e format for t/ese lines is1 st)les/eetsX!EDIAYXY Q pat/'to'file*css
:/en$ visit )our site?s admin'build't/emes to refres/ Drupal F?s cac/e of *info file data*
Alternativel)$ if )ou are more familiar +it/ a different CSS la)out met/od$ suc/ as <lueprint or LF=*gs$ )ou can
replace t/e ;css'la)out@fi2ed*css; line in )our *info file +it/ a line pointing at )our c/oice of la)out CSS file*
A* Edit t/e template*p/p and t/eme@settings*p/p files in )our sub@t/eme?s folderZ replace A## occurrences of
;S:AC:ECWI:; +it/ t/e name of )our sub@t/eme*
"or e2ample$ edit foo'template*p/p and foo't/eme@settings*p/p and replace ever) occurrence of
;S:AC:ECWI:; +it/ ;foo;*
It is recommended to use a te2t editing application +it/ searc/ and ;replace all; functionalit)*
E* #og in as an administrator on )our Drupal site and go to Administer [ Site building [ :/emes
5admin'build't/emes6 and enable )our ne+ sub@t/eme*

Introduccin a Drupal 6
Pg. 88
Subtema basado en ZEN (6.x-2.x)
6ptional:
F* !odif)ing Zen core template files1 If )ou decide )ou +ant to modif) an) of t/e *tpl*p/p template files in
t/e zen folder$ cop) t/em to )our sub@t/eme?s folder before ma4ing an) c/anges* And t/en rebuild t/e
t/eme registr)*
"or e2ample$ cop) zen'templates'page*tpl*p/p to foo'templates'page*tpl*p/p*
G* :/eming Drupal\s searc/ form1 Cop) t/e searc/@t/eme@form*tpl*p/p template file from t/e
modules'searc/' folder and place it in )our sub@t/eme?s folder* And t/en rebuild t/e t/eme registr)*
]ou can find a full list of Drupal templates t/at )ou can override in t/e templates'CEAD!E*t2t file or
/ttp1''drupal*org'node'>L=K>E
3/)V In Drupal F t/eming$ if )ou +ant to modif) a template included b) a module$ )ou s/ould
cop) t/e template file from t/e module?s director) to )our sub@t/eme?s director) and t/en rebuild
t/e t/eme registr)* See t/e Drupal F :/eme %uide for more info1 /ttp1''drupal*org'node'>GNKK=
K* "urt/er e2tensions of )our sub@t/eme1 Discover furt/er +a)s to e2tend )our sub@t/eme b) reading
Zen?s documentation and Drupal F?s :/eme %uide*

Introduccin a Drupal 6
Pg. 89
Subtema basado en ZEN (6.x-2.x)
Elegir la0out 0 cla$e$

#a)out para subtema a elegir*

#i-uid1 anc/ura dinmica$ recomendado*

"i2ed1 anc/ura fija*

(age*tpl*p/p1 pagina principal de dise0o$ contiene los campos ) reas principales* Dispone de los ids ) clases
principales* :odas ellas pueden ser adaptadas*

Clases gen,ricas1 e2iste la posibilidad de a0adir nuevas clases como pueden ser el idioma*

Ids gen,ricas1 e2iste la posibilidad de a0adir nuevas como pueden ser el idioma*

ode*tpl*p/p1 contenido de los nodos ) su presentacin* Al igual -ue el page*tpl*p/p es e2tensible ) adaptable*

E2isten otros componentes -ue tambi,n pueden ser adaptados*

"rontpage*tpl*p/p1 pagina principal*

node@222*tpl*p/p1 nodo especifico de una ruta*

vie+s@222*tpl*p/p1 vistas de un contenido especifico*

maintenance@page*tpl*p/p1 pagina mantenimiento*

D*

#ogo*

Hojas de estilo*

***

Introduccin a Drupal 6
Pg. 90
ndice
Actividades subtema

Introduccin a Drupal 6
Pg. 91
Actividades subtema basado en
ZEN (6.x-2.x)

Instalar tema zen F*2@9*2

Crear un subtema$ para ello tenemos el IDE*

(ara ello seguiremos las instrucciones -ue nos da el manual*

B utilizar el script1 /ttp1''drupal*org'node'NNFNFK

&tilizaremos el la)out@li-uid*css 5recomendado6*

Cambiaremos algunas propiedades*

Color de fondo*

Color de te2to*

Color de enlaces*

&tilizar /erramientas como firebug*



Introduccin a Drupal 6
Pg. 92
ndice
Mdulos bsicos

Introduccin a Drupal 6
Pg. 93
Mdulos bsicos Ficheros bsicos

Crear carpeta nombrePmodulo ) dentro de esta debe


contener al menos los siguientes fic/eros*

nombrePmodulo*info

Informacin sobre el modulo*

nombrePmodulo*install

(armetros de instalacin del modulo*

Ejemplo1 crear tabla*

nombrePmodulo*module

Cdigo principal de modulo*



Introduccin a Drupal 6
Pg. 94
Mdulos bsicos Hook

(ermite a los mdulos interactuar con el n8cleo de Drupal*

El sistema de mdulos de Drupal est basado en el concepto de ;/oo4;* &n


S/oo4T es una funcin (H( -ue se denomina fooPbar 56$ donde foo es el nombre
del mdulo 5cu)o nombre puede ser$ foo*module6 ) ;bar; es el nombre del
S/oo4T* Cada /oo4 tiene un conjunto definido de parmetros ) un tipo de
resultado especificado*

(ara e2tender Drupal$ un mdulo simplemente necesita implementar un /oo4*


Cuando Drupal desea permitir la intervencin de los mdulos$ determinar -ue
/oo4 implementar de un modulo ) le llamar en todos los mdulos activos -ue
lo implemente*

#os /oo4s disponibles para la implementacin se e2plican en la seccin de


/oo4s de la documentacin del desarrollador* #a cadena de ;/oo4; se utiliza
como marcador de posicin para el nombre del mdulo en las definiciones del
/oo4* (or ejemplo$ si el arc/ivo se llama mdulo de e2ample*module$ entonces
/oo4P/elp 56$ aplicado por dic/o mdulo se define como e2ampleP/elp 56*

/ttp1''api*drupal*org'api'group'/oo4s

Introduccin a Drupal 6
Pg. 95
Mdulos bsicos Ejemplo bsico
e'a!ple1info
$Id: REAME.x,v 1.0 2010/09/06 17:58:46 examp1e Exp $
name = Examp1e
descripion = Modu1o de e_emp1o para formacion
pac'age = E_emp1o
core = 6.x
, Informacion para e1 modu1o
version = "6.x.1-dev"
core = "6.x"
pro_ec = "Examp1e"
daesamp = ""

Introduccin a Drupal 6
Pg. 96
Mdulos bsicos Ejemplo bsico
e'a!ple1in$tall

En principio no es necesario incluir cdigo a menos -ue el


modulo lo re-uiera*
<?php
/*
* Eichero de insa1acion
*/

Introduccin a Drupal 6
Pg. 97
Mdulos bsicos Ejemplo bsico
e'a!ple1!o%ule

#as cadenas de te2to en la funcin t78 siempre deben de ir en ingles$


para evitar posibles errores posteriores11
/**
* Imp1emenacion de hoo'_menu().
*/
funcion examp1e_menu() {
$iems['menu_examp1e'| = array (
'i1e' => 'E_emp1o de una vez',
'descripion' => 'Rrueba de E_emp1o',
'page ca11bac'' => '_examp1e_he11o', //"_" para aque11as
que son privadas.
'access ca11bac'' => TRUE,
//'ype' => MENU_CALLBACK, no aparecer en e1 men
'ype' => MENU_NORMAL_ITEM, //aparecer en e1 men
),
reurn $iems,
}
Continua en la siguiente diapositiva 9

Introduccin a Drupal 6
Pg. 98
Mdulos bsicos Ejemplo bsico
/**
* E_emp1o bsico con parmero en Ur1
*/
funcion _examp1e_he11o ($dao = '') {
//$dao primer parmero despues de "../menu_examp1e/1oquesea"
$reorno = '',
if ($dao == '') {
$reorno = 'Ho1a Mundo',
} e1se {
$reorno = $dao,
}
reurn $reorno,
}
: Continuacin de la anterior diapositiva

Introduccin a Drupal 6
Pg. 99
Mdulos bsicos Ejemplo con formulario
e'a!ple1info
$Id: REAME.x,v 1.0 2010/09/06 17:58:46 examp1e Exp $
name = Examp1e
descripion = Modu1o de e_emp1o para formacion
pac'age = E_emp1o
core = 6.x
, Informacion para e1 modu1o
version = "6.x.1-dev"
core = "6.x"
pro_ec = "Examp1e"
daesamp = ""

Introduccin a Drupal 6
Pg. 100
Mdulos bsicos Ejemplo con formulario
e'a!ple1in$tall

En principio no es necesario incluir cdigo a menos -ue el


modulo lo re-uiera*
<?php
/*
* Eichero de insa1acion
*/

Introduccin a Drupal 6
Pg. 101
Mdulos bsicos Ejemplo con formulario
e'a!ple1!o%ule

#as cadenas de te2to en la funcin t78 siempre deben de ir en ingles$


para evitar posibles errores posteriores11
<?php //Se inicia e1 php pero no se cierra
/**
* Imp1emenacion de hoo'_menu().
*/
funcion examp1e_menu() {
$iems['menu_examp1e'| = array (
'i1e' => 'E_emp1o de una vez',
'descripion' => 'Rrueba de E_emp1o',
'page ca11bac'' => '_examp1e_he11o', //"_" para aque11as que son
privadas.
'access ca11bac'' => TRUE,
//'ype' => MENU_CALLBACK, no aparecer en e1 men
'ype' => MENU_NORMAL_ITEM, //aparecer en e1 men
),
Continua en la siguiente diapositiva 9

Introduccin a Drupal 6
Pg. 102
Mdulos bsicos Ejemplo con formulario
$items['menu_mas'] = array (
'title' => 'Ejemplo con formulario',
'description' => 'Prueba de Ejemplo',
'pae callbac!' => 'drupal_et_form',
'pae aruments' => array('example_form'",
'access callbac!' => #$%E,
'type' => &E'%_'($&)*_+#E&,
'file' => 'example,paes,inc',
"-
reurn $iems,
}
: Continuacin de la anterior diapositiva

Introduccin a Drupal 6
Pg. 103
Mdulos bsicos Ejemplo con formulario
e'a!ple1page$1inc
<?php
// $Id$
/**
* efinir e1 formu1ario.
*/
funcion examp1e_form() {
$form['user_name'| = array(
'#i1e' => ('Your name'),
'#ype' => 'exfie1d',
'#descripion' => ('R1ease ener your name.'), //Siempre en ing1es
),
$form['submi'| = array(
'#ype' => 'submi',
'#va1ue' => ('Submi')
),
reurn $form,
}
Continua en la siguiente diapositiva 9

Introduccin a Drupal 6
Pg. 104
Mdulos bsicos Ejemplo con formulario
/**
* Va1idar e1 formu1ario.
*/
funcion examp1e_form_va1idae($form, &$form_sae) {
$name = $form_sae['va1ues'|['user_name'|,
if ($form_sae['va1ues'|['user_name'| == 'Ruben Egiguren') {
// Noificamos a1 ARI de formu1ario que e1 campo a fa11ado.
// Campo error, exo error
form_se_error('user_name',('%name is no a11owed o use his
form.',
array('%name' => $name))), //Siempre en ing1es
}
}
/**
* Mane_ador de pos-envio de1 formu1ario de va1idacion.
*/
funcion examp1e_form_submi($form, &$form_sae) {
$name = $form_sae['va1ues'|['user_name'|,
drupa1_se_message(('Than's for fi11ing ou he form, %name',
array('%name' => $name))), //Siempre en ing1es
}
: Continuacin de la anterior diapositiva

Introduccin a Drupal 6
Pg. 105
Mdulos bsicos Ms ejemplos

#eer cdigo a)uda*

Mer cdigo de otros mdulos ) manipularlos a)uda a


aprender*

&n modulo con ejemplos*

/ttp1''drupal*org'project'e2amples

Mer cdigo de mdulos e2istentes*

Elegir mdulos pe-ue0os -ue no contengan


demasiado cdigo*

/ttp1''drupal*org'developing'modules

Introduccin a Drupal 6
Pg. 106
ndice
Fuentes

Introduccin a Drupal 6
Pg. 107
Fuentes

/ttp1''drupal*org'

/ttp1''drupal*org'boo4s

#istado amazon

(ro Drupal Development$ Second Edition

#earning Drupal F !odule Development

/ttp1''es*+i4ipedia*org'

/ttp1''+++*drupalcoder*com'stor)'E9L@introduction@to@drupal@presentation@slides

/ttp1''+++*slides/are*net'neurotic'taller@drupal@p/p@conference

/ttp1''+++*flic4r*com'p/otos'raincit)studios'LGA9=GKK'

/ttp1''bu)taert*net'album'drupalcon@sunn)vale@9==G'angela@b)ron

/ttp1''+++*flic4r*com'p/otos'sebastianPbergmann'GL=>>=N>'sizes'm'

Introduccin a Drupal 6
Pg. 108
ndice
Licencia

Introduccin a Drupal 6
Pg. 109
Licencia

;$te% e$ libre %e

copiar$ distribuir ) comunicar p8blicamente la obra*

/acer obras derivadas*

/a&o la$ con%icione$ $iguiente$

Reconoci!iento ^ Debe reconocer los cr,ditos de la obra de la manera


especificada por el autor o el licenciador 5pero no de una manera -ue sugiera -ue
tiene su apo)o o apo)an el uso -ue /ace de su obra6*

+icencia co!pleta

/ttp1''creativecommons*org'licenses'b)'N*='legalcode

A%2ertencia

(arte de material esta sacado de otras publicaciones$ revisar las fuentes*



Introduccin a Drupal 6
Pg. 110
F*<

También podría gustarte