Archivo de la categoría cms

Modificar argumentos en Drupal 6 con Views en función de la URL

Hay veces que no necesitamos por algún motivo modificar los argumentos que por defecto nos proporcionan las views en función de los nodos, taxonomías, contenidos (fields) o cualquier otro módulo que nos los pueda proporcionar como pueda ser el módulo multilenguaje.

Si no has trabajado con argumentos en Drupal, te aconsejo visitar este post y almenos debes tener conocimientos básicos de PHP

Lo que voy a explicar aquí es un caso muy particular y sencillo. Simplemente en su día quería poder cambiar el filtro del idioma de una vista en función del idioma seleccionado por el usuario.

Para ello vamos a partir de que tenemos un Drupal 6, configurado en distintos idiomas y que en la negociación del idioma (como queremos que trabaje con el idioma en la url) le tenemos puesto como Prefijo de ruta con regreso a idioma. (p.e. http://www.dominio.com/admin/settings/language/configure)

Quedaría algo asi en la ruta http://www.dominios.com/es/content

A parte de esto tendremos instalado en módulo Views.

Muchas veces es habitual que tengamos publicado contenido en distintos idiomas, es decir traducido y  que visualizamos a través de una página generada por las Views (por lo menos yo lo hago así).

Ahora bien, ¿qué pasa si tu cambias de un idioma a otro directamente mientras navegas?, pues que simplemente te traduce el interface al idioma pero no vuelve a filtrar por el idioma en cuestión , para esto le tenemos que pasar el parametro que le diga que idioma.

Como hago yo esto.

Pues muy fácil,  en los argumentos que le paso a la página, añadimos el argumento Node trasnlation: Idioma

arg1

Después en su configuración:

Action to take if argument is not present >  Provide default argument > PHP Code

Y en la caja de  PHP argument code le añadimos en siguiente código

$elc=explode("/",$_SERVER['REQUEST_URI']);
$args[0]= $elc[1];
return $args[0];

Esto evalua la URI en la que se solicita la vista, es decir cuando pinchamos en el menu y mostramos la página que genera la vista y estrae eñ 2º argumento en este caso el idioma (/es), por que recordamos que gracias al modulo Translate nos lo mostraba en en la url.

Quedaría algo así. (click para ampliar)

arg2

Pero bueno, ¿y si  queremos añadirle un título personalizado para cada idioma?. Aquí viene mi truco del almendruco, que seguramente haya una manera mejor, pero esta para mi es válida :) .

Añadir un titulo personalizado

Simplemente le añadimos un parametro más de tipo Global: Null

arg3

Y en la configuración del argumento le añadimos %2 en el Título para que así muestre lo que devuelve el segundo argumento en la URI (es decir, este mismo Global:null).

Ahora bien del mismo modo le añadimos este código al PHP argument code del mismo modo que con el primer argumento.

$elc=explode("/",$_SERVER['REQUEST_URI']);
switch ($elc[1]) {
case "es": $args[2]="Boletines informativos"; break;
case "en": $args[2]="Newsletteres"; break;
}
return $args[2];

Aqui podemos establecer de forma manual que queremos que salga en cada uno de los idiomas,  podemos añadir tantos case queramos o tantos idiomas queramos. Acordaros siempre de configurar el código del idioma (http://www.dominio.com/admin/settings/language/edit/en).

Con lo que esto quedaría de la siguiente manera (click para ampliar):

arg4

Es una forma casera de pasar argumentos en función de la url que cuando se tiene muy definida la estructura que se va a llevar con los contenidos, resulta muy útil.

150 webs hechas con Drupal

Está claro que Drupal es un CMS exepcional si sabes como usarlo y dominas sus entrañas y su API, pero nunca me había parado a pensar en otras webs de peso que pudieran estar hechas con Drupal, os pongo un listado que he visto en MGINNOVA que no tiene desperdicio de webs muy curradas tanto en funcionalidad como diseño y agrupadas por categorías.

Empresas

Comunicación

Gobierno

ONGs

Investigación y Desarrollo (Universidades)

Ocio

8 razones más que suficientes para usar drupal

Leído en Alzado.org.

Muy buenos argumentos para escoger Drupal en el desarrollo de tu Web, ya seas cliente interesado o desarrollador.

  1. Cualquier diseño es posible con Drupal. Muchas veces la gente dice que un CMS preconfigurado no tiene un diseño flexible y que puede limitar la creatividad de los diseñadores. Drupal te permite hacer cualquier cosa. Desde Dimad.org a YTTD.
  2. El concepto de usuario es intrínseco a Drupal. Esto quiere decir que si alguien se registra se registra para todas las aplicaciones que metas en Drupal. Desde foros, blogs, encuestas, UGCs, tienda… este control centralizado del usuario es clave para los proyectos de hoy en día.
  3. Multi-idioma. Es normal tener un site en dos idiomas o más. Esta funcionalidad es natural en Drupal y activar es un click.
  4. Abierto a PHP. Drupal por defecto te permite que en cualquier tipo de contenido puedas agregar tu PHP a medida. Este te permite retocar y personalizar la funcionalidad del back o del front.
  5. Soporte de comunidad muy amplio. Quizás la principal ventaja de Drupal frente a Joomla es que Drupal tiene una comunidad muy buena. Drupal.org es el punto de encuentro. Cualquier duda está documentada y explicada.
  6. Multimedia. Vídeo, audio, UGCs… el soporte natural de drupal está muy bien para este tipo de aplicaciones, pero si lo que te encuentras por defecto no te satisface, añade un módulo sin problemas.
  7. Rápido y bajo consumo de servidor. El consumo de recursos del servidor que hace Drupal es muy bajo. Cualquier servidor (por barato que sea) podrá con Drupal y el servicio (con la cache activada) es muy rápido.
  8. Control de administración. El control para los administradores es total. Desde permisos por usuario y módulo (es decir, no veas esto, no escribas aquí pero si allá, etc…) es muy fácil de manejar y el panel de control es muy clarito. Respecto a tareas administrativas del site (informes de registros, informes de formularios, etc…) están por defecto disponibles y son muy fáciles de expotar como excel (lo típico puede ser “dame un informe de todos los usuarios registrados por provincias = esto en drupal está a un click).

Etiquetas: ,