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.
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 -- michel@ziobuddalabs.it
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