He agregado un campo personalizado llamado 'field_header' al tipo de contenido de página básico. ¿Cómo accedo a este campo en la plantilla page.tpl.php para que pueda mostrarlo donde quiera? Idealmente, me gustaría eliminarlo de $ contenido también. ¡Gracias!Drupal 7 cómo representar el campo personalizado
7
A
Respuesta
10
No olvide que no todas las páginas son necesariamente una página de nodos por lo que sería mejor que intente acceder a esto en node.tpl.php
, no en page.tpl.php
.
En node.tpl.php
puede hacer que el campo particular de esta manera:
echo render($content['field_header']);
hide($content['field_header']); // This line isn't necessary as the field has already been rendered, but I've left it here to show how to hide part of a render array in general.
Si es absolutamente necesario hacer esto en page.tpl.php
continuación, se desea implementar una función de preproceso en el archivo de plantilla para obtener la variable que necesita:
function mymodule_preproces_page(&$vars) {
if ($node = menu_get_object() && $node->type == 'page') {
$view = node_view($node);
$vars['my_header'] = render($view['field_header']);
}
}
Luego, en page.tpl.php
tendrá acceso a la variable $my_header
que contendrá su campo rendido completa.
1
En su node.tpl que tienen que utilizar siguiente código, por ejemplo, el nombre de campo: field_header
<!-- For Showing only custom field's Value Use below code -->
<h2 class="title"><?php print $node->field_header['und']['0']['value'];?></h2>
<!-- ========================= OR ========================= -->
<!-- For Showing custom field Use below code , which shows custom field's value and title-->
<h2 class="title"><?php print render(field_view_field('node', $node, 'field_header')); ?></h2>
<!-- ========================= OR ========================= -->
<h2 class="title"><?php print render($content['field_header']); ?></h2>
0
de page.tpl.php tiene acceso a $ nodo y así todos los campos de $ nodo
print ($node->body['und']['0']['value']);
Cuestiones relacionadas
- 1. Agregar campo CCK al formulario personalizado en Drupal 7
- 2. Drupal 7: Acceso al campo de nodo personalizado en page.tpl.php
- 3. Grupos de campo/conjuntos de campo condicionales en Drupal 7
- 4. ¿Cómo se usa un tipo de datos personalizado como un campo en drupal 7?
- 5. ¿Cómo creo un token personalizado en Drupal 7?
- 6. ¿Cómo imprimir un menú personalizado en Drupal 7?
- 7. Drupal 7: Mejor práctica para una lista de selección dinámica en Drupal 7
- 8. Agregar un filtro personalizado a las vistas en Drupal 7
- 9. convertir texto de campo a List (texto) drupal 7
- 10. Módulo Drupal 7 OpenID
- 11. ¿Debo usar Drupal 6 o Drupal 7?
- 12. Drupal 7 Default .htaccess
- 13. Drupal 7 drupal_mail eliminando HTML?
- 14. Drupal Menú personalizado Posicionamiento
- 15. Drupal 6 contraseña de usuario importada a Drupal 7
- 16. Desactivando el caché de Drupal 7
- 17. Cómo agregar JS a Drupal 7
- 18. Cargar múltiples archivos en Drupal 7
- 19. Drupal 7 preprocess_views no trabajar
- 20. Drupal 7 Get image field path
- 21. cómo representar un campo vacío en yaml
- 22. ¿Cómo aplico la validación de formularios web en drupal 7?
- 23. Forma de nodo personalizado de Drupal
- 24. Cómo ocultar un campo en formato drupal
- 25. ¿Cómo generar un archivo de traducción para un módulo personalizado de Drupal 7?
- 26. Cómo representar el campo de formulario django en la plantilla
- 27. ¿Drupal 7 es más lento que Drupal 6?
- 28. Drupal 7 - Insertar taxonomía en el objeto nodo
- 29. Configuración de Gmail smtp para Drupal 7
- 30. Cambio de Drupal 7 Enviado por formato
Gracias! Necesitaba colocar mi encabezado en un lugar determinado, así que probé tu segunda opción, pero no pude hacer que funcionara. Afortunadamente, usando la primera opción (y algo de jQuery) pude resolver mi problema. Me pregunto por qué echo $ vars ['my_header] no funcionó en mi page.tpl.php – martincho
No necesitaría $ vars [' my_header '] en page.tpl.php en ese caso, solo $ my_header es suficiente. – Jasmo
Gracias por esta respuesta simple pero efectiva. – Drake