Se encuentra usted aquí

19
Nov
2013
Author:
Raul

Hoy os traigo un vídeo tutorial de como customizar la salida de datos de una forma rápida y sencilla, usando el método de customizacion por plantillas.

Orden de búsqueda de plantillas drupal (recordad que empieza desde abajo):

field.tpl.php
field--field-type.tpl.php
field--field-name.tpl.php
field--content-type.tpl.php
field--field-name--content-type.tpl.php
 
 
Donde encontrar el archivo field.tpl.php?
El archivo se encuentra en la siguiente dirección:
- raíz/modules/field/theme/field.tpl.php
 
Donde guardar la nueva plantilla?
La nueva plantilla la guardaremos en:
-sites/all/theme/mitema/templates
Recordad que es muy importante crear la carpeta templates, y que debéis siempre modificar vuestro código en sites/all, nunca en el core.
 
Si os ha gustado comenta y/o comparte! 
 
Saludos!
 

15 Comentarios

Imagen de jose puentes

jose puentes (no verificado)
|
14 Ene 2014

saludos! tengo una pregunta jejejejeje
e estado trabajando un poco con el thema zen esto en drupal 6x, bueno y tengo poco tiempo con drupal.
mi pregunta es la siguiente como hago si quiero pasarle una variable a mi template que esta definida en otra parte, me explico:
tengo la plantilla user-edit-form.tpl.php y alli puedo visualizar las variables que definen mi cuenta por ejemplo account, pinture... pero si yo quiero tomar una variable o pasarle el valor que yo defina en un tipo de contenido, o cualquier otra variable, como hago eso, ya que busco editar la plantilla user-edit.form.tpl.php y pasarle variables que se encuentran en la template node-form.tpl.php por ejemplo, como hago esto, tengo que usar los hook de procesamiento? he estado indagando sobre ellos pero no logro entenderlos del todo jejejejeje :) gracias por la ayuda!

Imagen de Raul

Raul
|
15 Ene 2014

No me ha quedado muy clara cual es tu consulta real, pero te dire, que para saber que variables puedes usar o tienes disponibles para esa plantilla, lo primero que debes de hacer es instalarte el modulo devel, una vez hecho esto, dirigete a tu plantilla y usa la funcion dpm($mivariable); . Esto te mostrara por pantalla que variables tienes accesibles en ese momento, pero recuerda que para cada plantilla varia, por ejemplo si es un nodo, seria dpm($node). A partir de que una vez conoces que parametros tienes disponibles, ya puedes configurar tu plantilla a tu gusto.

En el caso de que quisieras agregar nuevos parametros, entonces, necesitaras usar el hook preprocess (en template.php) en el cual a $variables, que es un puntero a un array, tendras que añadirle el valor que quieras( sea un objeto, un array...), de esta forma tendras ese valor accesible desde la plantilla.

Espero haberte solucionado algo!

Imagen de jose puentes

jose puentes (no verificado)
|
15 Ene 2014

ok seguire trabajando en eso jejejeje bueno basicamente lo que quiero hacer es pasarle variables disponibles del template node al template block por ejemplo aunque no son esas dos templates sino dos que busco personalizar.. :)

Imagen de Mari Carmen

Mari Carmen (no verificado)
|
09 Abr 2014

Además de poner el campo y el content type le puedo decir también un mode view especifico??
field--field-name--content-type--mode-view.tpl.php

Imagen de Raul

Raul
|
09 Abr 2014

Claro!

Pero el nombre del archivo seria algo asi: views-view--[nombre de la vista].tpl.php

Y en el caso que quieras temear un campo concreto de la vista, mira dentro de la vista, en "avanzado" y buscas el segundo empezando por el final, "tema: informacion", haces click en "informacion" y te saldra la lista de las plantillas que usa y el nombre de los archivos en el caso que quieras sobre escribirla!. En negrita te marca que se esta usando en ese momento.

Recuerda limpiar caches una vez creado el archivo si no, no lo leerá!

Saludos

Imagen de Mari Carmen

Mari Carmen (no verificado)
|
09 Abr 2014

Creo que no es eso lo que necesito porque yo no quiero modificar la vista, sino directamente el campo que esta en un content type especifico y dentro de este tiene aplicada una view_mode nueva que me he creado. Si yo creo este fichero: field--[field-name]--[content-type].tpl.php, puedo modificar cualquier cosa de ese campo field-name, pero estos cambios se aplicaran siempre que utilice este campo, en cualquier view_mode, default, testear.... Por eso yo lo que quiero es decirle además en que tipo de modo de visualización quiero que aplique, default,testear,nueva....
Es que no tengo claro que se pueda hacer.

Imagen de Raul

Raul
|
10 Abr 2014

A ver si esto arroja algo de luz a tu duda --> https://drupal.org/node/1089656

Imagen de Nicolas

Nicolas (no verificado)
|
17 Jun 2014

Hola, soy muuuy nuevo en drupal, la verdad me cuesta un poco entenderlo. El tutorial me funciona perfecto! Muchas Gracias! justo lo que necesitaba, Pero yo quiero que también afecte el campo cuando el usuario carga el nodo, no solo cuando se muestra el resultado. Como se puede hacer esto? Gracias!

Imagen de Raul

Raul
|
17 Jun 2014

Perdon no entiendo la pregunta... que entiendes por cargar un nodo y mostrar un nodo?

Imagen de Nicolas

Nicolas (no verificado)
|
17 Jun 2014

Para mi un nodo es un tipo de contenido. En mi caso el tipo de contenido se clasifica en 3 servicios distintos. Y segun el servicio es como varian los campos a cargar.

Espero se entienda. Muchas gracias!

Imagen de Raul

Raul
|
17 Jun 2014

y lo que quieres modificar el es campo, o todo el contenido?? es decir toda la pagina que muestra...?

Imagen de Nicolas

Nicolas (no verificado)
|
17 Jun 2014

Lo que quiero modificar es el campo. En realidad decidir si muestro o no el campo tanto cuando se carga como cuando se muestra el resultado.

Esto lo tengo que decidir según la ejecución de un codigo php que consulta si ese tipo de contenido es de uno de los 3 servicios que tengo.

Lo que hice en este tutorial, fue agregar en el codigo de "field--field-name.tpl.php" un if que decidia si mostrar o no el campo.
Lo mismo me gustaria hacer para cuando se esta en el formulario de carga!

Saludos!

Imagen de jose gregorio

jose gregorio (no verificado)
|
17 Jun 2014

saludos Nicolas, bueno en lo personal cuando tengo que modificar un formulario y sus campos, desarrollo un peque modulo e implemento el hook_form_alter() por lo que entiendo con el puedes lograr condicionar cuando mostrar un campo determinado

Imagen de Raul

Raul
|
17 Jun 2014

Pues entonces tienes dos opciones hacer como hace nuestro amigo jose, o crear una plantilla para esa vista, si es un nodo seria algo como node--article.tpl.php por ejemplo si fuera para articulos... y ahi tienes $node y $content como variables para usar y puedes ahi poner todos los condicionales que quieras!! un saludo!

Imagen de Nicolas

Nicolas (no verificado)
|
17 Jun 2014

Gracias por su tiempo, voy a probarlo y les aviso. Muchas Gracias desde Argentina!!!


Añadir nuevo comentario