Submitted by numidviking on
Je suis arrivé au bout de mes peines pour afficher, comme je le désirais, des pages spécifiques à chaque vue.
/**
* http://drupal.org/node/117491
* Different node templates depending on URL aliases
*/
function _phptemplate_variables($hook, $vars = array()) {
switch ($hook) {
case 'node':
// this example creates custom node templates, but
// it is very similar for page templates
// proceed only if the path module is enabled
if (!module_exists('path')) {
break;
}
$url_alias = drupal_get_path_alias('node/' . $vars['node']->nid);
// if there is no URL alias defined, stop processing
if ($url_alias == ('node/' . $vars['node']->nid)) {
break;
}
// Finally, build suggestions array. More generic paths should go first,
// more specific last.
// The templates filenames pattern is node_<something>_<something>
$suggestions = array();
$path_parts = explode('/', $url_alias);
$template_filename = "node";
foreach ($path_parts as $path_part) {
$template_filename = $template_filename . '_' . $path_part;
$suggestions[] = $template_filename;
}
$vars['template_files'] = $suggestions;
break;
}
return $vars;
}
La solution : nommer la page de la view comme ceci : page-nomdemavue.tpl
>Néanmoins, je tourne en rond sur l'affichage des views en frontpage.
Je m'explique : j'ai donc créé différents blocks.
Grandtitre
Titres
Presse, par exemple
Chacun possède son template de block
J'aurais besoin de me servir de certains fields dans content, ou par exemple intercaler le titre (subject) avec le field Surtitre affiché lui correctement dans content.
Comment feriez-vous pour remplacer &block->content par des champs séparés plus maléables auxquels je pourrais attribuer une classe css en particulier ?
D'ailleurs, je constate que certains champs censés s'afficher dans le block de view ne s'affichent que sur la page de rendu mais pas dans le bloc, ainsi l'avatar des contributeurs, mais pas dans le block qu'ais-je omis de faire selon vous ?
Merci à la communauté pour son éventuelle réponse.
tu veux attribuer une classe
Permalien Soumis par jubjub le 5 Avril, 2007 - 00:40
tu veux attribuer une classe a ton block c ca?
<div class="laclasse">
<?php
if ($block->subject):
?>
<?php
print $block->subject
?>
<div>
et fait le css de la classe dans style.css de ton theme.
laclasse .block.content pour le contenu
laclasse .block .title pour le titre du block
Ce n'est pas vraiment ce que
Permalien Soumis par numidviking le 5 Avril, 2007 - 12:08
Ce n'est pas vraiment ce que je recherche Jubjub. J'aimerais simplement pouvoir afficher sur ma page d'accueil, un bloc 'dernieres nouvelles' ou le titre serait intercalé entre deux champs CCK pour mon cas actuel (récupérés par view). Visuellement çà donnerait un champ image au dessous duquel je retrouverais un surtitre puis le titre puis enfin au dessous un sous titre.
Si je supprime $title dans node.tpl.php le titre disparait partout dans ce cas, y compris sur le node de l'article. Avec &page=!0 les block situés en frontpage perdent forcément le titre, mais aussi sur mes pages de views.
Je trouve assez bizarre qu'il soit difficile de placer un champ surtitre et un autre sous titre au dessus d'un titre sur Drupal.
Et tu ne peux pas déclarer
Permalien Soumis par yched@drupal.org le 5 Avril, 2007 - 21:04
Et tu ne peux pas déclarer la views qui définit le block comme étant de type 'liste' ?
Ca te permet de choisir précisément quels champs des noeuds tu veux utiliser (titre, champs CCK, etc), et de préciser l'ordre, sans que cela interfère avec l'affichage des noeuds en teaser ou 'full-node'
Oui !!! J'ai été induit en
Permalien Soumis par numidviking le 5 Avril, 2007 - 22:37
Oui !!! J'ai été induit en erreur par le choix de teaser. Gracié millé Yched !