Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/12/2011, 04:09
Avatar de MarioAraque
MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Diferencia entre RELATIONSHIPS y ARGUMENTS

En Drupal 7 lo escondieron mas, pero sigue funcionando bastante parecido.

Un argumento es un parametro que le vas a pasar, de normal, en la url a la que vas a ser invocada.
Poniendo un ejemplo, si vos entras a www.tusitio.com/user/1/edit, vas a tener 3 argumentos, el primero que sera estatico y se llama "Edit", el segundo, que es el id del usuario, que es dinamico y si vos vas cambiandolo podras entrar a distintas pantallas (siempre que el id del usuario sea valido), y el tercero que, al igual que el primero, solo se llama "edit".
Partiendo de esto, vos creas una vista, le declaras un argumento que vos quieras, de normal van a ser ids, ya sean de nodos, usuarios o lo que sea, y Drupal se encargara de devolverte la informacion relacionada con ese argumento.
Un ejemplo practico que vos podes probar, es crear una vista con un argumento de tipo "id user", luego filtras por tipo de contenido, y veras como Drupal te va a devolver todos los nodos de ese tipo de contenido, creados por ese usuario.
Basicamente es eso, con los argumentos vos podes crear vistas dinamicas las cuales varien segun el valor del mismo, lo mas normal es el ejemplo de antes, o si no pasar como parametro un id al cual le hagas una relacion con otro tipo de contenido y trabajes con ese campo.

De aca vienen las relaciones, de normal las relaciones las podes dar entre valores que tengan campos CCK del tipo "node reference", entonces si vos tenes un tipo de contenido A, que tiene un node reference que apunte a otro nodo B, vos creas una vista que filtre por tipo de contenido A, y le creas una relacion en donde apuntes el campo CCK node reference de A a B, y apartir de ahi, aparte de los valores de A, tenes los valores de B, y asi podras trabajar con muchos mas campos. Es como hacer un join en una consulta SQL.

La diferencia es que las relaciones las creas en la vista dependiendo de los campos que te devuelva la vista, un argumento lo pasas a una vista como un parametro y en base a el podes obtener resultados, y tambien relacionarlos con otro tipo de contenido.

Es un poco lioso, pero de verdad es muy util y le da mucha potencia a las vistas.

Saludos.