Comment afficher un champ CCK personnalisé (texte ou image) dans la page de résultats de recherche principale de Drupal?Comment afficher le champ CCK dans le résultat de la recherche?
Répondre
Cela dépend de la façon dont vous effectuez la recherche.
Si vous utilisez des vues pour créer une recherche, vous pouvez décider vous-même de ce que vous souhaitez afficher.
Si vous utilisez d'autres mécanismes de recherche, vous pouvez utiliser une combinaison d'un hook Proprocess, d'une fonction thématique, d'un modèle pour obtenir la sortie souhaitée. Vous devriez avoir l'objet node disponible, donc afficher un CCK devrait être assez facile.
Edit:
Pour le module de recherche de base Drupal vous devez remplacer la recherche-result.tpl.php dans votre thème, de modifier la façon dont les résultats de recherche sont imprimés. Ici vous pouvez ajouter ou supprimer des informations. Si vous avez besoin de plus de variables, vous pouvez les créer pour les utiliser dans le modèle process hook. C'est thématique de base Drupal, consultez le handbook.
Vous devez remplacer search-result-tpl.php dans votre thème. Copiez-le à partir de modules/recherche dans votre répertoire de thèmes, effacez le cache de thème, et vous êtes défini. Vous verrez qu'il y a un tableau disponible pour le fichier de thème appelé 'result', qui contient un tas de données, y compris un objet node. Donc, votre fichier devient quelque chose comme:
<dt class="title">
<a href="<?php print $url; ?>"><?php print $title; ?></a>
</dt>
<dd>
<?php
// Here is the change
print $result['node']->field_name_of_cck_field['view'];
?>
<?php if ($snippet) : ?>
<p class="search-snippet"><?php print $snippet; ?></p>
<?php endif; ?>
<?php if ($info) : ?>
<p class="search-info"><?php print $info; ?></p>
<?php endif; ?>
</dd>
Bonne chance!
Cela peut être simplement $ node-> plutôt que $ result ['node']. Je n'ai pas d'installation à portée de main pour vérifier. – cam8001
['view'] ne fonctionne pas, j'utilise ['value'] à la place. – romandor
La valeur est un champ de saisie utilisateur brut, donc potentiellement, il peut contenir des données dangereuses. La vue est traitée et garantie en toute sécurité. – cam8001
1 Copier recherche-result.tpl.php fichier de modules/recherche dans votre dossier thématique
2 Pour champ texte CCK ajouter:
<?php if ($result['node']->field_name[0]['value']): ?>
<h4><?php print($result['node']->field_name[0]['value']); ?></h4>
<?php endif; ?>
3 Pour ImageField avec imagecache:
<?php if ($result['node']->field_logo[0]['filename']): ?>
<img src="/sites/default/files/imagecache/path_to_file/<?php print $result['node']->field_logo[0]['filename']; ?>" />
<?php endif; ?>
4 Style CSS suivant.
Merci pour cam8001 & googletorp!
Merci beaucoup! Il n'y a pas de problème avec Views, mais vous ne trouvez pas de solution pour le module de recherche de base de Drupal. Peut-être avez-vous un exemple? – romandor