Estoy buscando representar un cierto campo antes del título del nodo cuando se muestra un avance en D7.
Efectivamente quiero pasar de esto a esto .
He buscado actualizar el node.tpl.php pero noto que se separa $title
de, $content
así que no estoy seguro de cómo abordar esto. Después de algunas búsquedas, descubrí que la gente sugirió usar los módulos CCK y ConTemplate para solucionar esto en Drupal-6, pero me pregunto si hay una solución más de Drupal-7.
¿Alguna sugerencia?
Respuestas:
Esto es realmente bastante simple con Drupal 7.
Con
render
yhide
ya sabes, tienes la posibilidad de controlar la ubicación de un solo elemento$content
sin tener que imprimir todos los elementos que necesitabas en Drupal 6.Una plantilla de nodo simplificada se ve así:
Una pequeña modificación manejaría sus necesidades:
Usando
render
, puede generar un elemento. Esto es más inteligente que simplemente imprimir cosas, ya que Drupal hará un seguimiento de lo que se ha procesado, para evitar que se imprima lo mismo dos veces en el lugar. Al representar el campo sobre el título, también está eliminando lo que se representa cuando$content
se representa.fuente
Display Suite también es bastante genial.
fuente
Eche un vistazo al módulo Título: http://drupal.org/project/title . Puede resultar útil para su escenario. Lo instalé / habilité por alguna razón, probablemente similar a la suya, y parecía dar flexibilidad sobre cómo colocar el campo de título.
Desde entonces lo he deshabilitado (y estoy usando Display Suite), por lo que mi recuerdo puede ser un poco incompleto.
fuente
Esta es una solución pirata y estoy seguro de que a alguien se le ocurrirá algo más elegante, pero en caso de que estés atrapado, y nadie lo haga ...
Puede usar
page.tpl.php
para eliminar la impresión de$title
todo y agregar un nuevo campo personalizado llamado Título con el nombre de máquina $ new_title o algo así. A continuación, en el nodo de edición, ocultar el cuadro Título original, y en el nodo Guardar utilización computarizada campo o algún PHP personalizado para copiar el$new_title
a$title
.Después de todo eso, escriba algunos css para que $ new_title se vea como el título de la página antes y debería poder colocar los campos en el orden que desee, simplemente arrastrando y soltando en la pantalla de administración de campos. Debido a que ha copiado
$new_title
a$title
, el título de la página en la barra del navegador debe todavía trabajo y nada debe quejarse de falta títulos de nodo.Como dije, es un truco, pero funcionaría. Hágame saber si necesita más información
fuente
page.tpl.php (guirnalda)
template.php
fuente
Esto no se aplica a la pregunta Teaser en la publicación original, pero para las personas que se topan con esto y solo quieren que suceda en la vista completa, aquí hay una opción sin código: mostrar el campo en un bloque (usando vistas, por ejemplo) y coloque ese bloque encima de su bloque de contenido pero en la misma región.
fuente
Creo que deberías usar funciones de preproceso en tu template.php
Y como adicional
volcar variables y hacer lo que quieras. agregar / eliminar / actualizar.
fuente
Resolví esto mediante una solución sin código usando Display Suite y su función adicional "Región para bloquear". Me gusta más esta solución por su flexibilidad.
Básicamente, habilite la parte adicional "Región para bloquear", habilite la visualización de "Contenido de texto completo" en Display Suite. (suponiendo que desea mostrar el contenido sobre el título en la pantalla de nodo completo, de manera similar, puede usarlo para cualquier otro modo de vista excepto Predeterminado). Ahora, en la parte "Administrar pantalla" de "Contenido de texto completo", en la parte inferior de la pantalla, debería aparecer la pestaña "Bloquear regiones". Ingrese el nombre del nuevo bloque allí, guarde y arrastre y suelte los campos deseados en este bloque. Por último, mueva el bloque recién creado en la pantalla Bloques en algún lugar sobre el título del nodo.
Puede ver el video del mismo enfoque aquí: http://www.youtube.com/watch?v=y4wyjxyhbNA , por supuesto, debe colocar el bloque sobre el título (no en la barra lateral izquierda) al final.
fuente
Para las plantillas zen a continuación, el código funciona para mí.
Finalmente, puede imprimir fácilmente su campo en page.tpl.php;
fuente
Sé que ya habrías usado algún tema para compilar y ahora estás intentando agregar los campos en la parte superior del título.
Mis sugerencias para todos los desarrolladores que crean un tema en Drupal 7 serían usar: Tema Omega + Contexto y módulos Delta. Esto proporciona una base muy sólida para su diseño.
Y flexibilidad para organizar regiones, bloques y campos.
fuente
Puedes hacerlo con el módulo de paneles
fuente