Drupal: teaser extrait à la vue
-
28-09-2019 - |
Question
Comment puis-je diviser le teaser du reste du contenu de la node.tpl.php pour envelopper le texte teaser dans le balisage spécial?
La solution
Vous pourriez prétraiter les variables thème pour récupérer le teaser et le stocker séparément, sinon poignées Drupal en interne et ne vous donnera pas un choix.
Voici le code: http://www.mydiary.digiprosoft.com/?p = 244 et ci-dessous sont les points saillants de ce lien.
template.php
function phptemplate_preprocess_node(&$variables) {
// we like to display teasers on the node view pages in a different style,
// but only if they were NOT set to “show summary on full view” (which seems
// backward, but the implication with that checkbox is that the teaser is
// PART of the node’s body, instead of an actual summary of the entire
// node’s body). if a node’s unbuilt body starts with , then
// a teaser has been manually set, and “show summary” is not checked.
if ($variables['page'] == TRUE) { // only do this on full page views.
$node = node_load($variables['nid']); // we reload the node because
// by the time it gets here has already been filtered out.
// this if logic stolen from node.module’s node_teaser_include_verify().
if (strpos($node->body, '') === 0) {
$variables['style_teaser_differently'] = TRUE;
$variables['teaser'] = check_markup($node->teaser, $node->format, FALSE);
}
}
}
node.tpl.php
<?php
if ($style_teaser_differently){
print '<div class="fullview-teaser">'.$teaser.'<div>';
}
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow