Codigo

Diferencias en los temas de Drupal 6 y 5

Existen dos diferencias importantes de un tema en Drupal 6 con respecto a drupal 5 la primera esta en un nuevo archivo que debe tener cada tema de Drupal, es un archivo con terminación .info que sirve para especificar información mínima del tema, es un archivo de texto que contiene información como esta:

; $Id: garland.info,v 1.5 2007/07/01 23:27:32 goba Exp $
name = Coatepec
description = Tema para el sitio ejemplodrupal.com.
version = VERSION
core = 6.x
engine = phptemplate
stylesheets[all][] = style.css
stylesheets[print][] = print.css

; Information added by drupal.org packaging script on 2008-04-09
version = "6.2"
project = "drupal"
datestamp = "1207776008"

Esta información se ve reflejada en la pagina de administración de temas, el ejemplo más claro es la parte de description. Este archivo con información sobre el tema no es opcional ya que sin el Drupal simplemente no detecta el tema aun que este bien escrito el código en el archivo page.tpl.php (que es el archivo básico del tema).

El otro detalle que resalta ya dentro del archivo page.tpl.php es como se declaran las columnas laterales en Drupal 5 se escribían así:

<?php if ($sidebar_left): ?>
<?php print $sidebar_left ?>
<?php endif; ?>

En Drupal 6 se declaran de una manera más sencilla:

<?php if ($left): ?>

<?php print $left ?>

<?php endif; ?>

Para saber más a detalle sobre como convertir temas a Drupal 6 existe una pagina

http://drupal.org/node/132442

Usando Clean URLs


Drupal tiene la opción de cambiar la manera en que se muestran las direcciones dentro del sitio, generalmente una pagina (node) tiene una dirección más o menos así:


http://www.drupalmexico.com/node/9

con la opción de Clean url se puede cambiar la dirección a algo así:

http://www.drupalmexico.com/warnerdrupal

Resulta más facil de leer y se supone ayuda a que los buscadores pongan la pagina en mejor lugar de resultados.

Para hacer que funcione esta opción se requieren dos pasos, primero una pequeña modificación en el servidor apache, para la mayoria que usamos servidores compartidos y no podemos ajustar directamente el servidor, este ajuste se hace en el archivo .htaccess que generalmente esta en la carpeta donde se intalo druapal (si no se tiene que crear) en el cual se escribe el siguiente script:


# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on

# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /

# Rewrite URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Como veran el script viene documentado, en mi caso solo necesite pegar el script y salvar el archivo para que funcionara, en otros casos tiene uno que quitar las lineas de comentario // para que alguna opción se aplique, sobre todo en cuanto a la dirección donde se encuentra Drupal dentro del servidor.

Una vez que se hizo este cambio se entra a la sección de administración de Drupal y en la sección de modulos se activa el modulo de path (es un modulo que trae por defualt Drupal) despues en la secció de administración se tiene que buscar las opciones de Clean URLs y tocar el boton de hacer una prueba si no se toca esta opción no se activa el boton para activar los urls limpios.

Si todo salio bien ya se pueden cambiar las dirección de los nodos, existen tres maneras, la primera y más sencilla es al crear un nodo nuevo o modificar uno existente, aparece como nueva opción la de URL path settings que es un campo donde se le asigna nombre a la dirección es mportante no poner acentos o una eñe asi como no poner espacios.

La otra manera es hacer reglas más generales con URL Aliases, en el area de administración esta esta opción al crear una nueva regla se indica el url como estaba antes y como quedaria despues en el caso de Drupal mexico sirve para mostrar las sección de temas con el nombre de cada sección: tutoriales, cometnarios etc.

FInalmente esta el modulo Pathauto que se supone sirve para crear estas direcciones de manera automatica, por el momento no he acabado de lograr que funcione correctamente.

en este momento tengo funcionando esta opción de clean url en Drupalmexico, me hace falta implementarlo en sitios algo más comlicados por ejemplo que usen varios templates que cambia por la categoria en que esten y ver si no existe ningun comflicto entre modulos.

Dejo ligas a la documentación en el sitio de Drupal que resulta de gran ayuda:

Esta primera explica a detalle como usar la opción de Clean URL:
http://drupal.org/node/15365

Esta segunda es una colección de script para modificar el archivo .htaccess. no todos son para cambiar el url:

http://cvs.drupal.org/viewvc.py/drupal/drupal/.htaccess?view=markup


Theme & Icons by N.Design Studio
drupal mexico 2007
Un proyecto de Medioyforma.info

Add to Technorati Favorites

Sindicar contenido