Problema con theme_hook_suggestions

6 contenuti / 0 new
Ultimo contenuto
Problema con theme_hook_suggestions

Ciao a tutti, sono nuovo del mondo drupal es to esplorando un poco le capacità di questo CMS.

Ho letto un pò di documentazione sparsa per assegnare un template specifico ad uno specifico view mode.

Per cui ho creato il modulo sites/all/modules/rubentest , contenente i seguenti file.
- rubentest.module
- rubentest.info
- node--article-another-teaser.tpl.php (è praticamente la copia di node.tpl.php)

[rubentest.module]

<?php
/**
 * Implements hook_entity_info_alter().
 */
function rubentest_entity_info_alter(&$entity_info) {
   
$entity_info['node']['view modes']['another_teaser'] = array(
           
'label' => t('Another teaser'),
           
'custom settings' => TRUE,
    );
}
/**
 * Implements hook_preprocess_node().
 */
function rubentest_preprocess_node(&$vars) {
    if(
$vars['view_mode'] == 'another_teaser') {
            
$vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->type . "_another_teaser";
    }
}
?>

[rubentest.info]

name = Ruben Test
description = "Add a custom view type"
core = 7.x
files[] = rubentest.module

Poi attraverso pannelo di amministrazione ho creato una view assegnandogli come RowOptions->viewmode : another-teaser

Ma il template che prende per "stampare" i nodi è sempre themes/bartik/templates/node.tpl.php.

Cosa sto sbagliando?

Ringrazio anticipatamente se qualche buon samaritano vorrà rispondermi.

Drupal Version:

se non ho capito male.. ti stai complicando la vita.. se vuoi creare una view che venga visualizzata tramite il tuo node--article-another-teaser.tpl.php, lo devi chiamare innanzitutto views--nome_tua_view.tpl.php (o qualcosa di simile) e mettere nella cartella del tema in uso.
cerca 'template suggestions' che ti viene spiegato come funziona il tutto.

anzi, ecco qua:
http://drupal.org/node/1089656

anche se.. forse non è quello che volevi fare tu!

Ciao, se vuoi utilizzare un file chiamato node--XYZ.tpl.php, nella directory del tuo tema deve esserci anche node.tpl.php.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Forse devi mettere __another_theaser (NB: 2 underscore iniziali).

@ziobudda: no, funziona anche solo se c'è node--XYZ.tpl.php, non deve esserci necessariamente anche node.tpl.php.

Ciao
Marco
--
My blog
Working at @agavee

Dipende dalla versione.
Con D6, perché venga preso un template aggiuntivo nella cartella deve esserci anche quello originale (node.tpl.php, block.tpl.php)
Con D7 dovrebbero aver risolto quel problema.

Angelo Turetta