Que es Drupal
Drupal es un gestor de contenidos (CMS en inglés, Content Management System).
A diferencia de otros CMS Drupal es muy flexible y permite construir desde blogs, a portales corporátivos, comunidades o tiendas.
Existen miles de webs hechos en Drupal, algunos de ellos bastante importantes.
Este tutorial aplica a la versión 6 de Drupal. Cada versión se rehace totalmente e implica que los módulos (plugins) dejan de funcionar.
El hecho de que Drupal sea de código abierto, permite que se haya creado una gran comunidad de usuarios y desarrolladores, y facilita encontrar soluciones a problemas que se puedan encontrar.
Cuando creamos una aplicación web nueva debemos pensar a 3 diferentes niveles.
1- Contenido. Cual es la estructura de contenidos de nuestra web?. Definirla lo mejor posible a través de los tipos de contenido de Drupal, los campos CCK y las ca
tegorias.
2- Diseño gráfico. Diseño en formato gráfico y plantillas (html/css)
3- Integración de un tema (theme) a base de plantillas (archivos con la extensión tpl.php). Las plantillas deberán tener en cuenta la estructura de contenidos y las plantillas estáticas previas.
1- Contenidos
Definir tipos de contenido y campos especiales
Para nuestro ejemplo vamos a crear un tipo de contenido especial llamado "
proyecto
". Representa uno de los trabajos del portfolio acompañado con una o varias imágenes.
Debemos añadir un campo de imagen (file/image) y otro para el año (número). Para definir estos campos especiales necesitamos tener activado el módulo CCK, Image Field (y otros auxiliares).
Además crearemos una
taxonomia
(categoria) para poder clasificarlos por tipos.
Y otra taxonomia general llamada "tags" para etiquetar cualquier tipo de contenido.
Mantendremos el tipo de contenido "
page
" que nos permitirá crear cualquier página "normal" de nuestra web.
Añadiremos otro tipo de contenido llamado "
video
" para poder mostrar videos. En realidad podriamos haber añadido este campo "video" al tipo de contenido "proyecto" pero lo hemos hecho así para ilustrar mejor el tema de los tipos de contenido.
A nivel de contenidos, una vez los hemos definido tendremos los siguientes tipos de contenido:
Proyecto: fotos, año, categoria del proyecto
Video: archivo flv (mismas categorias)
Páginas normales (page)
y podriamos haber definido otros:
Noticias
Agregar feeds
Crear contenidos (aunque sean de muestra)
El siguiente paso es crear contenidos (aunque sean de prueba) para poder navegar por el sitio.
Aunque sea sin el diseño definitivo la web ya debe ser totalmente navegable, la plantilla (theme) sólo será una "capa" encima de este contenido.
O sea que en este momento ya podemos.
- Crear nuevos contenidos para cada tipo
- Publicarlos en la portada o no
- Listar los contenidos en categorias y tags (clicando en ellos)
Navegar por los contenidos, portada y páginas unicas.
Al crear un contenido debemos fijarnos si se publica en la portada o no, esta opción está dentro de "publishing options" como "
Promoted to front page
". En este caso cuando estamos en la portada de nuestro sitio veremos una lista en modo "teaser" de estos contenidos.
El modo teaser es un modo resumido donde aparece sólo parte del contenido.
Podemos decidir que aparece y cómo en los modos teaser y normal para nuestros tipos de contenido. Para ello debemos ir a "content management / tipos de contenido", seleccionar uno de los tipos e ir a la sección "display fields".Aqui podemos definir para cada uno de nuestros campos especiales como aparece en modo "teaser" y "full node", y si tiene etiqueta o no.
Por defecto el texto del nodo aparece cortado en el teaser en el primer párrafo, pero podemos decidir donde se corta.
El teaser aparece por defecto en cualquier listado, como los contenidos de la portada, o cuando clicamos en una categoria o tag. En este caso nos aparece una lista con todos los contenidos para esa categoria (también en modo teaser).
Siempre que clicamos en el título nos lleva a la página única del nodo en modo "full node".
En el tipo de contenido entre otras cosas también podemos decidir si ese tipo permite dejar comentarios a la gente o no (ver "workflow settings")
Por tanto por defecto tenemos las siguientes pantallas:
- front page (portada o home). Donde aparece un listado de los contenidos publicados en la portada. En modo teaser.
- Listado para cualquier término de una taxonomia. Cuando clicamos en una palabra. También en modo teaser.
- Al clicar en el título de cualquier contenido nos lleva al "full node", la página única del contenido.
En realidad para Drupal cualquier página tiene la ruta node/xx. Donde xx es el id del nodo.
Esta ruta se puede reescribir internamente (con el módulo pathauto) pero siempre podemos acceder a través de node/xx, y por ejemplo para editar el contenido de un nodo la ruta seria node/xx/edit.
Crear una página genérica
- front page
- listado de proyectos por categoria
- página única de un proyecto
- páginas especiales
2- En este ejemplo hemos obtenido un diseño directamente de css garden
Debemos tener claro sobre todo que regiones hemos definido para la página
3- Como crear nuestra propia plantilla
Al crear una plantilla debemos tener claro que una prueba de que lo estamos haciendo bien es cambiar a cualquier otra plantilla y poder seguir navegando por nuestra web. En caso contrario aunque el sitio puede funcionar perfectamente no lo estamos haciendo correctamente.
Para crear una plantilla (theme) necesitamos al menos 2 archivos, los más importantes.
portfolio.info : La configuración de nuestra plantilla
page.tpl.php : La plantilla de todas las páginas
Estos 2 archivos deberán estar creados en la siguiente ruta:
sites/all/themes/portfolio
En portfolio.info debemos tener al menos esta información:
name = Portfolio de ejemplo para el MAD
description = Una plantilla de ejemplo totalmente configurable!
screenshot = images/screenshot.png
core = 6.x
engine = phptemplate
regions[izquierda] = Region izquierda
regions[abajo] = Explanation
regions[derecha] = Region derecha
regions[abajo] = Abajo
stylesheets[all][] = css/styles.css
scripts[] = js/swfobject.js
Copiamos el html y css de nuestra plantilla en la carpeta del tema y cambiamos el nombre del archivo html por page.tpl.php (el nombre de la plantilla principal de nuestro tema).
Añadimos en la sección header la siguiente instrucción de php
<?php print $styles ?>
Añadir también <?php print $scripts ?> en la siguiente linea
Nos aseguramos que en el archivo .info la ruta del css es realmente la que tenemos, por ejemplo:
stylesheets[all][] =
css/styles.css
Siempre es recomendable usar la codificación utf-8
<meta http-equiv="content-type" content="text/html; charset=
utf-8
" />
En este momento deberiamos poder activar el tema y ver la plantilla a través de Drupal, sin contenido!!
Para poder ver el contenido debemos escribir en page.tpl.php <?php print $content ?> en el sitio que consideramos que es el lugar (división, id) donde debe aparecer.
A partir de este momento ya podemos navegar por todos los contenidos!!!!!
Definir resto de variables en page.tpl.php
Podemos definir el resto de variables en nuestra plantilla, como referencia podemos usar cualquier page.tpl.php de otro tema de Drupal.
Algunos ejemplos de variables que podemos necesitar:
El título de la página
<title><?php print $head_title ?></title>
Los tabs (permiten por ejemplo ir directamente a editar el contenido)
<?php if ($tabs): print '<div id="tabs-wrapper" class="clear-block">'; endif; ?>
Regiones y bloques
A parte de la navegación básica de Drupal, tenemos los bloques.
Los bloques son regiones fijas de nuestra plantilla donde podemos asignar bloques.
Estos bloques pueden ser
- Menús
- Bloques definidos por otros módulos
- Hechos "a mano"
- Creados usando el módulo "views"
Podemos definir todos los bloques que queramos en nuestro archivo .info
Por ejemplo:
regions[izquierda] = Región izquierda
regions[abajo] = Abajo
regions[derecha] = Región derecha
Luego en page.tpl debemos escribir en cada una de estas regiones un print con el nombre que hayamos puesto en el archivo info
por ejemplo <?php print $izquierda ?>
A partir de entonces todos los bloques que asignemos a la región izquierda en el administrador aparecerán aquí.
Plantillas para páginas específicas
Podemos definir plantillas especiales para
Portada: page-front.tpl.php
Página única de un nodo: page-node.tpl.php
También podemos definir plantillas específicas para cada tipo de contenido.
Plantillas para tipos de contenido
node.tpl.php <-- aplica a todos los tipos de contenido
node-proyecto.tpl.php <-- sólo aplica a los nodos de tipo "proyecto"
En el caso de hacer una plantilla para los tipos de nodo podemos usar varias variables definidas en este documento:
Los campos definidos por cck son visibles en estas plantillas con el nombre del campo, por ejemplo $field_foto.
Es posible también definir plantillas especiales para los bloques, nodos particulares, etc etc.
Es una estrategia "de general a particular".
Como copiar los contenidos de un servidor a otro
Si queremos mover una instalación de Drupal de un sitio a otro (por ejemplo de local a remoto) podemos realizar una copia siguiendo exactamente los siguientes pasos:
Imaginemos que queremos copiar una instalación de Drupal desde nuestro servidor local a un servidor remoto llamado www.servidorremoto.com
- Exportar todas las tablas de la base de datos (mejor en un archivo zip o gzip). Se recomienda antes de realizar este paso vaciar la caché de Drupal (en site configuration/performance)
- Crear una base de datos en nuestro servidor remoto (sino está ya creada) e importar los datos ahí, por ejemplo en una carpeta /portfolio.
- Copiar todos los archivos por ftp al nuevo destino.
- Modificar el archivo sites/default/settings.php (igual es necesario cambiar los derechos de escritura, puede estar protegido) y modificar la siguiente linea poniendo los datos de la conexión mysql:
$db_url = 'mysql://user:passwd@localhost/nombrebd';
donde user y passwd es el usuario y password de mysql
localhost es la dirección del servidor mysal (normalmente localhost)
y nombrebd el nombre de nuestra base de datos
Una vez seguidos estos pasos deberiamos poder entrar en nuestra web de Drupal
www.servidorremoto.com/portfolio
y al administrador
www.servidorremoto.com/portfolio/admin
Si en este punto nos aparece un mensaje diciendo que la web no funciona quiere decir que no hemos escrito correctamente los datos en el archvio settings.php
Por supuesto se mantienen todos los contenidos y usuarios que tengamos definidos en la versión local.
- Para acabar faltaria un detalle. Debemos dar derechos de escritura al directorio sites/default/files y todos los que pueda haber en el interior. Aquí es donde Drupal copia los archivos que subimos al administrador (imágenes, etc)
Además debemos entrar en site configuration/file system y verificar si los directorios existen y corresponden con los del servidor (en caso contrario nos mostrará un mensaje de error). Si esto no está configurado el sitio funcionará pero no podremos crear subir nuevos archivos.
Como actualizar Drupal y los módulos
Si vamos al apartado del administrador Reports/Available Updates nos saldrá una lista que nos indica que módulos no están actualizados. En el caso de que haya que actualizar alguno tendremos que seguir los siguientes pasos:
-Descargar los archivos.
-Descomprimirlos en la ruta correspondiente
-Abrir en el navegador la siguiente dirección www.servidorremoto.com/update.php (donde servidorremoto es nuestra dirección, claro)
Ampliaciones sobre el tema:
Como gestionar varios idiomas y traducciones
Para que sirve el cron y como se activa?
Como crear vistas y crear plantillas para estas vistas.
Comentarios
pUAcRxq Buy Ambien Viagra
Mié, 02/24/2010 - 22:49 — NADBsMpUAcRxq Buy Ambien Viagra Klonopin Cheap Phentermine Cheap Xanax
buy cialis ,
Mié, 02/24/2010 - 20:17 — bigboy792buy cialis ,
cialis , cialis ,
Mié, 02/24/2010 - 17:24 — bigboy792cialis , cialis ,
cialis , viagra , cialis ,
Mar, 02/23/2010 - 21:34 — bigboy792cialis , viagra , cialis , viagra ,
JurAykrC Buy Ambien
Mar, 02/23/2010 - 18:54 — NADBsMJurAykrC Buy Ambien Phentermine Tramadol Buy Valium Cheapest Cialis
viagra , cialis , viagra ,
Lun, 02/22/2010 - 20:38 — bigboy792viagra , cialis , viagra , cialis ,
wJmhtfy Buy Cialis Online Buy
Sáb, 02/20/2010 - 23:13 — NADBsMwJmhtfy Buy Cialis Online Buy Ambien Valium Phentermine Ativan
hqnbZv Buy Viagra Cheapest
Vie, 02/19/2010 - 23:17 — NADBsMhqnbZv Buy Viagra Cheapest Cialis Viagra Buy Cialis Phentermine Cialis
viagra , cialis online ,
Vie, 02/19/2010 - 21:44 — bigboy792viagra , cialis online , viagra , cheap cialis ,
hbvFTgb Buy Viagra online
Vie, 02/19/2010 - 07:03 — NADBsMhbvFTgb Buy Viagra online Phentermine Ambien Cheap Ativan Buy Xanax Valium
viagra , cheap cialis ,
Jue, 02/18/2010 - 21:53 — bigboy792viagra , cheap cialis , viagra , cialis online ,
IYfbdcT Ambien Xanax Buy
Mié, 02/17/2010 - 23:27 — NADBsMIYfbdcT Ambien Xanax Buy Cialis Online Phentermine Valium Ativan
viagra , buy cialis , viagra
Mié, 02/17/2010 - 15:49 — bigboy792viagra , buy cialis , viagra , cialis ,
Hrfnms Cialis Buy Xanax
Mié, 02/17/2010 - 01:03 — NADBsMHrfnms Cialis Buy Xanax Phentermine Buy Valium Cheap Ativan Ambien
osFIZE Buy Ambien Valium
Lun, 02/15/2010 - 18:06 — NADBsMosFIZE Buy Ambien Valium Cheap viagra Cheap Ativan Xanax Cheap Phentermine
nTtkqfs Viagra Cheapest
Dom, 02/14/2010 - 20:44 — NADBsMnTtkqfs Viagra Cheapest Cialis Viagra Cheapest Cialis Viagra
egzFkp GaWcmWS
Sáb, 02/13/2010 - 20:53 — ewkfoXegzFkp GaWcmWS
sOTsRORw Ultram Valium Cheap
Sáb, 02/13/2010 - 12:47 — NADBsMsOTsRORw Ultram Valium Cheap Phentermine Cheap Ambien Cheap Xanax Buy Ativan
jiIEEDAv Ultram Xanax Buy
Vie, 02/12/2010 - 19:17 — NADBsMjiIEEDAv Ultram Xanax Buy Phentermine Valium Cheap Ambien Ativan
viagra , buy cialis , viagra
Vie, 02/12/2010 - 19:15 — bigboy792viagra , buy cialis , viagra , buy cialis ,
viagra , cialis , viagra ,
Vie, 02/12/2010 - 01:15 — bigboy792viagra , cialis , viagra , cialis ,
uYPXLuJV Cialis Cialis Buy
Vie, 02/12/2010 - 00:11 — NADBsMuYPXLuJV Cialis Cialis Buy Viagra online Viagra Cialis
AFHuyig Buy Xanax Klonopin
Jue, 02/11/2010 - 20:03 — NADBsMAFHuyig Buy Xanax Klonopin Cheap Ambien Cheap viagra Phentermine
lmQxGX Phentermine Buy Valium
Jue, 02/11/2010 - 04:03 — NADBsMlmQxGX Phentermine Buy Valium Cheapest Cialis Buy Ambien Buy Tramadol
cialis , cialis ,
Mié, 02/10/2010 - 18:08 — bigboy792cialis , cialis ,
viagra , cialis , viagra ,
Mié, 02/10/2010 - 18:01 — bigboy792viagra , cialis , viagra , cialis ,
viagra , cialis , viagra ,
Mar, 02/09/2010 - 17:50 — bigboy792viagra , cialis , viagra , cialis ,
viagra , cialis , viagra ,
Lun, 02/08/2010 - 18:57 — bigboy792viagra , cialis , viagra , cheap viagra ,
cialis , viagra online ,
Vie, 02/05/2010 - 22:07 — bigboy792cialis , viagra online , cialis , viagra online ,
viagra , cheap cialis ,
Vie, 02/05/2010 - 01:44 — bigboy792viagra , cheap cialis , viagra , buy cialis ,
buy viagra , buy cialis , buy
Mié, 02/03/2010 - 23:18 — bigboy792buy viagra , buy cialis , buy viagra , buy cialis ,
VOAWWYn cNQUQH
Mié, 02/03/2010 - 15:35 — NADBsMVOAWWYn cNQUQH
buy cialis , buy viagra ,
Mar, 02/02/2010 - 19:39 — bigboy792buy cialis , buy viagra , cheap cialis , cheap viagra ,
cialis , viagra , cialis ,
Lun, 02/01/2010 - 20:36 — bigboy792cialis , viagra , cialis , cheap viagra ,
cialis online , viagra ,
Vie, 01/29/2010 - 21:04 — bigboy792cialis online , viagra , cialis online , viagra ,
viagra , cialis , buy viagra
Jue, 01/28/2010 - 20:42 — bigboy792viagra , cialis , buy viagra , cialis ,
cialis , cheap viagra ,
Mié, 01/27/2010 - 20:46 — bigboy792cialis , cheap viagra , cialis , buy viagra ,
viagra , cialis , viagra ,
Mar, 01/26/2010 - 19:27 — bigboy792viagra , cialis , viagra , cheap cialis ,
cialis , buy viagra , cialis
Lun, 01/25/2010 - 19:11 — bigboy792cialis , buy viagra , cialis , generic viagra ,
viagra , cialis , cialis ,
Vie, 01/22/2010 - 22:41 — bigboy792viagra , cialis , cialis , generic viagra ,
cialis , viagra online ,
Jue, 01/21/2010 - 20:56 — bigboy792cialis , viagra online , viagra , cheap cialis ,
cialis , viagra , buy cialis
Mié, 01/20/2010 - 19:45 — bigboy792cialis , viagra , buy cialis , cialis ,
buy cialis , buy viagra ,
Mar, 01/19/2010 - 23:26 — bigboy792buy cialis , buy viagra , cialis online , generic viagra ,
cheap cialis , discount
Lun, 01/18/2010 - 21:57 — bigboy792cheap cialis , discount viagra , cheap viagra , cheap cialis ,
viagra , cialis soft tabs ,
Vie, 01/15/2010 - 19:05 — bigboy792viagra , cialis soft tabs , cialis , buy viagra ,
viagra , buy cialis , cialis
Mié, 01/13/2010 - 19:51 — bigboy792viagra , buy cialis , cialis , buy viagra ,
viagra , cheap cialis ,
Mié, 01/13/2010 - 19:50 — bigboy792viagra , cheap cialis , cialis , buy viagra ,
viagra , buy cialis , cialis
Lun, 01/11/2010 - 19:34 — bigboy792viagra , buy cialis , cialis , generic viagra ,
cialis , generic viagra ,
Vie, 01/08/2010 - 17:18 — bigboy792cialis , generic viagra , viagra , buy cialis ,
cialis , buy viagra , viagra
Mié, 01/06/2010 - 18:47 — bigboy792cialis , buy viagra , viagra , generic cialis ,
Enviar un comentario nuevo