Cabeceras diferentes en drupal 6

Events happening in the community are now at Drupal community events on www.drupal.org.
lepabloski's picture

estoy laburando en una pagina de una consultora y la cabecera seguramente va a ser o un slideshow o una cabecera flash, pero como va atener seciones fijas, me gustaria que esas seciones tubieran, diferente cabeceras fijas cada una, saben si es posible hacer esto? en drupal como haria cualquier hijo de vecino en html?

te dejo una captura de diseño, la idea es que las imagenes vayan cambiando en el home, pero en las secciones, lease: Alcances, Quienes somos, Nuestros servicios, sean imagens fijas.

http://img806.imageshack.us/img806/567/homepageclogo.jpg

saludos y espero se pueda hacer.

Comments

image attach

lucascaro's picture

Fijate con image attach que viene con el modulo image, te deberia dejar asociar imagenes a los nodos y los podes mostrar en un bloque (que podes meter en el header)

saludos.

--
Lucas S. Caro

Hola: Puedes crear una página

0utKast's picture

Hola:

Puedes crear una página única para el front, llamándole page-front.tpl.php y darle un aspecto totalmente personalizado y diferente de las otras.

Puedes también darle un aspecto personalizado a cualquier página usando la id de su nodo o el nombre que tengas en su ruta, por ejemplo

page-node-1.tpl.php

_Saludos

gracias

lepabloski's picture

por ahora esoty usando la opcion que me sugeriste y anda 10 puntos, pero tengo algunos problemas con las paginas que no son front page y varian como las distintas ocurrencias de un tipo de nodo en especifico el cual quiero que tenga un tipo de cabecera especifico, porque una cosa en un nodo solo y otra un grupo de nodos con el mismo tipo. asi que estoy averiguando por eso.
Mil gracias.

usando la id del nodo

lepabloski's picture

creo que sera esa mi salida, porque las 4 o 5 cabeceras que tiene la pagina son diferentes (al estilo de madonion) y el front page intentaria que fuera en flash, aunque un views slideshow no estaria mal, veremos como hacer. saludos y gracias porresponder..

También podes usar una simple

mariano.barcia's picture

También podes usar una simple estrategia en page.tpl:
Si cada página tiene un path diferente, con arg(0) podés asignar una clase CSS al div, y a cada div podés themearlo.

if (arg(0) == 'alcances')
  $clase = 'alcances';
if (arg(0) == 'quienes-somos')
  $clase == 'quienes-somos';

...
...

<div id="header" class="<?php print $clase ?>">
  ...
  ...
</div> // header

Luego en el CSS tenés

.alcances {
  background: url(...);
}

.quienes-somos {
  background: url(...);
}

si tenes que modificar el markup (no te alcanza con CSS) también podes hacerlo con la misma técnica del arg(0).

HTH, salud

Sigo con las cabeceras

lepabloski's picture

me explayo un poco mas, el tema es asi, tengo un formato para el frontpage, y un formato para las demas paginas, es decir un fondo superios en el body mas ancho y uno mas chico o fino en las demas paginas en tema es que puedo temear (perdon por ese argentinismo) de la forma page-node-1.tpl.php y funciona para esas paginas que no cambian, como son alcances o servicios, es mas en algunas he hecho un pequeño hardcoding con html para no romperme la cabeza con otras cosa, el tema es el siguiente, tengo una vista hecha con views y va a al frontpage dentro de una region de panels, cada vista es un muestreo de nodos llamados noticia, yo quiero que todos los nodos noticia tengan la misma cabecera y si creo otro tipo de datos que tengo que hacer aun, necesito esa coherencia, no voy a ponerme a hacer un tpl.php para cada nodo sino lo hago en html, espero explicarme.
segun he leido, para poder crea templates del modo node-[tipo].tpl.php debo colocar node.tpl.php en mi carpeta del theme, el problema es que no se que hace que coloca todo lo que esta en node.noticia.tpl.php dentro del contenido de node.tpl.php, espero no embaruyar a nadie que se entienda, tiene cabecera y pie como el page.tpl.php , estyo malinterpretando los conceptos?, tengo un pequeño barullom en la cabeza...
Help

Saludos cordiales.

Mara Mariano garcia sobre arg

lepabloski's picture

entiendo tu idea pero no he logrado nada, explayarte mas sobre donde colocar el

if (arg(0) == 'alcances')
$clase = 'alcances';
if (arg(0) == 'quienes-somos')
$clase == 'quienes-somos';

porque esa opcion me serviria para las cabeceras que no son del front page, ya que la primera es ocupada por un wies-slideshow.

desde ya mil gracias.

Tu ante-ultimo mensaje no lo

scarvajal's picture

Tu ante-ultimo mensaje no lo llego a seguir. Como el tema tiene su complejidad te sugiero hagas un esfuerzo en la escritura para poder seguirte.

Vuelvo a tu duda original, no es posible que simplemente hasgas esto?:

  • Crear una region en el theme que se llame "cabezera"
  • Crear un block por cada sección
  • Crear paths para cada sección del sitio
  • Asignar estos blocks a la región cabezera
  • Por último setear las opciones de visibilidad de cada bloque para que se muestre en su sección?

Saludos.

Sebastián Carvajal

Aclaraando el panorama, espero...

lepabloski's picture

Hola como te va, el tema es asi, estoy diseñando un sitio, mejor dicho pasando a theme un diseño creado antes mediante html, que consta de un front page direrente al resto de las paginas y la diferencia radica en la altura del fondo, a ver, la franja que aparece como fondo del body es mayo es ne fornt que en las demas paginas, en dicho front-page en lugar de cabecera situe un bloque de slide de imagenes (creado con views slide show) ahora bien, las demas paginas se dividen en 2, unas fijas a las cuales puedo realizar un theming particular segun su id, es decir page-node-x.tpl.php, esas paginas no vana variar y con esas tno tengo problemas, es puedo meterm manoa tamplate a mi antojo, el tema es que he creado una vista de tipos de dato noticia que aparecerena lugo como bloque ne el front, hasta ahi no hay problema, lmi pregunta es como creo pagina cuya cabecera sea especifica para un tipo de dato, la idea es hacerlo lo mas ajustado a theming posible, yo entiendo lo que decis pero mi intencion es tratar de laburar lo menos posible con bloques y lo mas con el theme y css.

fijate en el sitio que aun no esta dijfundido pero si accesible

http://www.ecossconsultores.com.ar

diseño del front y otro de una de las paginas particulares, esa es la diferencia en el ancho de la franja. al cual he solucionado ya, usando page.front.tpl.php y para las no front page.tpl.php lo que queda pandeinte es mostrar una cabecera fija para todas las noticias una ves seleccionadas desde la pagina principal.

si haces clisc en alguna de las noticias notaras de lo que hablo.

servicios tiene una pagina especifica para dicho fin por eso muestr la cabecera.

Cuando hago click en la

scarvajal's picture

Cuando hago click en la noticia que es lo que veo en content? un nodo?

Sebastián Carvajal

claro

lepabloski's picture

en el front , aparece una panel dividido en 3 , en el priemer panel digamoslo asi se muestra una vista que muestra el titulo, ula imagen que acompaña la noticia y el teaser, si haces clic en el titulo o en la imagen te manda al nodo. en este momento le puse una cabecera generia mediante css pero quisiera poder definir por ejemplo algo como page-noticia.tpl.php y de la misma manera dpara cualquier tipo de dato que quiera mostrar en particular.

gracias por el interes

alcaro

lepabloski's picture

la vista muestra varias noticias, "una vista que muestra el titulo, ula imagen que acompaña la noticia y el teaser, si haces clic en el titulo o en la imagen te manda al nodo." se refiere a una noticvia en particular, el el fron se muestran de a varias noticias.

Entonces lo que necesitás es

scarvajal's picture

Entonces lo que necesitás es utilizar el TPL correcto.

Ya tenés el de la frontpage ahora te falta el TPL para ese content type específico (noticia).

En esta página http://drupal.org/node/190815 tenes la explicación. Te pego acá lo importante:

node-[type].tpl.php
base template: node.tpl.php

Node content type, e.g., "node-story.tpl.php", "node-blog.tpl.php", etc. Note that in order to override the template for a specific node type, the theme must also implement the base node.tpl.php file. If this file is omitted, the theme will not detect the presence of node-[type].tpl.php files.

O sea que tenes que crear un node.tpl.php y node-noticia.tpl.php (AMBOS).

Suerte.

Sebastián Carvajal

pero eso no seria para el content?

lepabloski's picture

la cabecera no forma parte del content, forma parte de la pagina, esot no tiene que ver con el contenido de ningun nodo, simplemente necesito una pagina para un deterninadao tipo de nodo, el theming del nodo lo hago por otro lado, si lo necesito, por ahora con css venga safando, al no tener calculos de fechas ni nada pareceido no he metido mano a ese nivel.

Bloques y regiones

betoscopio's picture

Hola, creo que Sebastián te ha dado respuesta gran parte a lo que podría solucionar tu problema, fijate en especial el último link que puso sobre los nombres de los templates.
De todos modos me gustaría agregar que el sistema de temas de drupal define los templates por defecto a ocupar, lo que haces al crear tu tema es empezar a sobreescribirlos, si no defines un template ocupará el por defecto.

De este modo page.tpl.php define el layout general de las páginas, pero page-front.tpl.php solo el de la página de inicio.
Del mismo modo node.tpl.php refenirá el layout, pero solo del contenido del nodo, no la página en general. Asi, node-story.tpl redefinirá como se despliega la información del tipo de contenido story, pero el resto seguirá usando el por defecto. Para las vistas es lo mismo, puedes ver información extra en la página que dejó Sebastián o en la configuración de la vista en Basic settings, Theme te dirá una lista de los temas sobreescribibles, el que estas ocupando saldrá destacado. Para reescribir una vista debes hacerlo igual que con page-front.tpl
Si quieres sobreescribir un tipo especifico de nodo, como es node-story.tpl,php tambien debes poner node.tpl.php en el mismo directorio, no es necesario que el archivo tenga nada, hay que hacerlo por un bug en D6, pero para D7 ya está corregido.

Sobre el tema inicial de las cabeceras, creo que lo más fácil es ponerlo con bloques y regiones. De este modo defines la región (si es que no existe una que te pueda servir en el temas que estas usando como base) en page.tpl.php y luego asignas el bloque de la cabecera a esa región. De este modo deberias creear un bloque por cabecera distinta y asignarlos todos a la región designada a la cabecera.
Posteriormente en la configuración de cada bloque, defines por url cuando cuando cada bloque debe aparecer.
De este modo por ejemplo, para la cabecera destinada a "Servicios" la configuracion del bloque sería:

Mostrar el bloque en páginas específicas:
[x]Mostrar el bloque en páginas específicas:

Y agregas algo como lo siguente:

tusitio.com/servicios (para el indice/vista)
tusitio.com/servicios/* (para los nodos)

Con esta solucion debes especificar anteriormente la ruta en que se crearan los nodos en tusitio.com/admin/build/path/pathauto (suponiendo que pathauto está instalado)

Espero que te sea útil mi respuesta, saludos.

gracias a todos

lepabloski's picture

urgando en el sitios de drupal "got drupal" hay un video muy interesante y explica como hacer esto que queria, una template pagina para cada tipo de contenido y que drupal lo detecte de forma dinamica,
el codigo es el siguiente

<?php
/**
* Adding or modifying variables before page render.
*/
function phptemplate_preprocess_page(&$vars) {

 
// Page change based on node->type                                                                         //cambio en las paginas segun el tipo de nodo
  // Add a new page-TYPE template to the list of templates used                                      // sumamos un nuevo tipo de pagina con al forma page-TIPO
 
if (isset($vars['node'])) {
   
// Add template naming suggestion. It should alway use hyphens.                                 //agregamos una sugerencia de nombre de plantilla , simpre debemos usar guiones.
   
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);  
  }
}
?>

ahi una traduccion burda
se coloca en un archivo template.php que debemos colocar en la carpeta del thmem, es basicamente una funcion de preprocesamiento,
el hook referiere especificamente a paginas y lo que hace basicamente es incluir en el registro de nombres de templates posibles, un a posibilicada del tipo page-[tipo de dato].tpl.php
lo acavo de probar y funciona a la perfeccion. para mas detalles sumerganse en el video, lo unico es que esta en ingles.
saludos y espero les sirba por si les ocurre lo que a mi.

aclaracion

lepabloski's picture

toda esta gerga le estoy aprendiendo recien ahora, no soty experto eso si soy cabeza dura y hasta que no encuentro lo que busco no me detengo, jiji, saludos.

Si, en el apuro no me di

scarvajal's picture

Si, en el apuro no me di cuenta el node tpl no sirve para el caso que tenés.

El que encontraste es un modo, el que planteó Mariano de leer los args es otro y el de los blockes que pone Beto otro más.
Suerte.

Sebastián Carvajal

contextos

jmolivas's picture

@lepablosk prueba el modulo de contextos
http://drupal.org/project/context
puede crear bloques y regiones y en base al url que al parecer es tu caso puedes decidir q regiones y bloques mostrar y/o ocultar

Jesus Manuel Olivas

--
http://jmolivas.com/
@jmolivas

Argentina

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week