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.

Otros artículos

El Buzz de Google, otro intento de …Googlerizar :)

Pues nada, no hace ni 3 horas que me había metido en mi cuenta de Gmail, cuando me encuentro ahora mismo, con BUZZ, “Mucho más que mensajes de estado”. ¿Otro twiter?, ¿un intento de Glooglerizar aquello en lo que Google Inc.  no es el rey?. Como paso con Google Wave no hace mucho, quería compertir claramente con Facebook, aunque no lo dijera. Vemos ahora de forma más directa y agresiva, ni  me ha dado opción de no añadirlo a mi Gmail, de fomentar el uso unicamente de sus herramientas. Esta está claro que quiere competir con twiter + atrezzo.  Google tiene una asignatura pendiente y es la de las redes sociales… ¿lo conseguirá?.

Personalmente, a mi me gusta Gmail por la seriedad, seguridad .Uso la cuenta para la cosas importantes, para mi perfil profesional. Solo recibo mensajes productivos, no recibo cadenas ( o eso procuro), ni mensajitos, ni casi span, ni chorradas varias.  Vamos que no quiero mi Gmail en una red social. Convivo profesionalmente como muchos  con muchas de las herramientas de Google y esto puede poner en peligro ciertas cosas que por un mero descuido  se acaban compartiendo con 121313  personas, como pueden ser los documentos de Google Docs, y esto no mola.

En fin, a quien le guste ahí lo tiene :) , yo paso.

¿Alguien sabe como quitar el iconico del Buzz de Gmail? . Ya lo encontré,  abajo en el pie del Gmail te sale un enlace pequeñito donde lo haya que pone “desactivar Buzz” … menos mal.

Etiquetas: , , , , ,

Articulos relacionados

Manifiesto “En defensa de los derechos fundamentales en internet”

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Etiquetas: , , , ,

Articulos relacionados