Intercaler le titre entre 2 fields View (surtitre - soustitre) dans un block

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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.

Version de Drupal : 

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 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 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'