Hola, hace días busco una solución y nada. Lo que pretendo es colocar un bloque ( de últimas noticias o articulos relacionados) dentro de un nodo, encontré una solución a medias poniendo el siguiente código en node.tpl.php
<?php
print render(module_invoke('views', 'block_view', 'pruebas-block_1'));
?>
El problema es que pone el bloque encima o debajo del campo body o cuerpo del nodo (que incluye el Titular, foto, fecha, etc), y lo que en realidad yo quiero es poner esto al costado de la foto como muestra la imagen adjunta a este mensaje.
He intentado de todo, desde cck blocks (que hace lo opuesto porque pone fields en bloque) hasta Display Content, pero descarté este último nodo porque me reventaría la base de datos ya que en realidad necesito un código limpio.
Espero me apoyen saludos
Attachment | Size |
---|---|
dibujo23.jpg | 199.06 KB |
Comments
Podrias probar descomponiendo
Podrias probar descomponiendo la variable $content que imprimes en el node, asi podrias obtener el orden de tus elementos y podrias poner el invocar al bloque donde quieras. Tambien esta la opcion de hacer un modulo donde usando el hook_view puedas preprocesar tus variables y añadir esa opcion en la posicion que desees. La primera es la mas sencilla.
Hola..¿cómo puedo descomponer
Hola..¿cómo puedo descomponer la variable $content? entiendo que esa variable está en el node.tpl.php, pero la idea es dividirla en título, imagen, fecha, etc... Gracias por el apoyo
Por ejemplo, si solo quieres
Por ejemplo, si solo quieres imprimir el campo body del $content hacer lo siguiente.
<?php
print render($content['body']);
?>
Podrias usar el modulo Devel para saber el nombre de cada campo y ponerlo.
ejem.
<?php
print render($content['field_campo_fecha']);
?>
De esa manera puedes darle la estructura que quieres y arreglarlo con CSS.
hola elpoderosoperu :)
Se me ocurren dos cosas segun tu nivel de experiencia con drupal:
1ra: la mas simple, coloca tu code dentro de una DIV y con estilos posicionala donde te sea necesario.
2do: si conoces un poco mas de drupal, agrega areas dentro de tu template, genera dentro de body ,segun el tipo de node, un top-body donde pongas el teaser del node, un left-body donde coloques el bloque que mencionas y un right-body donde coloques el resto del content del node.
Pero basicamente lo que te falta es tocar los estilos :)
saludos
Una pregunta
Este bloque lo quieres desplegar solamente en cierto tipo de contenido?
Algo así como que el bloque se muestre después del título y body del tipo de contenido "Artículo", pero antes de la imagen y los links, por ejemplo?
O aparece siempre en todos los tipos de contenido?
Hola Elias, te cuento..El
Hola Elias, te cuento..El bloque lo quiero al costado derecho o izquierdo del texto de un nodo, es decir bajo el título, la fecha y la imagen. Actualmente mis publicaciones sólo están en tipo de contenido artículo.
DisplaySuite
Hola,
Te recomiendo usar Display Suite http://drupal.org/project/ds
Con eso resolveras lo que necesitas:
https://github.com/jmolivas/Display-Suite esa es una buena presentacion sobre lo que puedes hacer con Display suite.
Espero resuelvas tu problema con este modulo
Saludos.
Hola Kaasi, use Display
Hola Kaasi, use Display Suite, el problema es que me recarga la base de datos y me quita memoria, por eso lo descarté..
Usa krumo
Ah, ya veo.
Si display suite no es opción entonces puedes hacer un template especial para tu tipo de contenido.
Si estás usando Drupal7 puedes copiar tu archivo node.tpl.php y renombrarlo node--articulo.tpl.php
dentro de ese archivo borra la línea que imprime el $content y reemplaza esa línea por
krumo($content)
esto vá a hacer que la siguiente vez que cargues tu nodo aparezca desplegado como un arreglo de campos, de esa manera puedes explícitamente desplegar los campos en el orden que quieras, puedes poner primero el body, como dijo antonio, y debajo imprimir tu bloque, después de eso seguir rendereando los demás fields que componen tu nodo.
No estoy seguro de darme a entender bien, así que si tienes alguna duda hazla saber.
Saludos.
módulos
con EVA pueses hacerlo también http://drupal.org/project/eva
o este otro http://drupal.org/project/views_field_view
o este http://drupal.org/project/viewfield
o con panels y page manager, puedes modificar todo el contenido y el orden en que aparecen los campos de tu nodo aqui un video (un poco largo) que explica page manager
http://www.youtube.com/watch?v=gV0xs89mIOY&feature=related
Saludos
Solucionado, viewfield es lo que necesitaba
Encontré la solución con http://drupal.org/project/viewfield, lo que hace este módulo es imprimir una vista como si fuera un campo, así de simple, para ordenar la distribución de los campos usé http://drupal.org/project/field_group, en una misma linea puse el body, artículos relacionados y botones sociales, luego los ordené editando la CSS.
Gracias