Submitted by souhiji on
Salut à tous,
Avant toute chose je tiens à remercier toute la communauté drupal qui milite activement pour ce fabuleux CMS; Je suis developpeur php/mysql à la base et cela fais quelques mois que je travail sur Drupal, jusque là je n'avais pas rencontré de problèmes insurmontable, et je dois avouer que le problème qui mêne mes pas à vous, est relativement simple, mais voilà la solution m'échappe quelques peu( Au risque de paraitre ridicule - bien que le ridicule ne tue pas lol). Mon problème est le suivant: --> Je voudrais afficher une image dans mon header qui est definis comme suit dans ma page.tpl.php:
<div id="header" class="clear-block">
<div id="info-header">
<a href="#">Plan du site</a>
<a href="#">Flux RSS</a>
<div id="time">
<script type="text/javascript" language="javascript" src="clock.js"></script>
<noscript><a href="http://www.editeurjavascript.com/">ajax</a></noscript>
</div>
</div>
<?php if ($search_box): print $search_box; endif; ?>
<?php if ($header): ?>
<div id="header-blocks" class="sectionregion"><?php print $header; ?></div> <!-- /header-blocks -->
<?php endif; ?>
<table id="header-tab" width="980" cellpadding="1" border="0" border-color= #000;>
<tr>
<td>
<?php if ($site_logo or $site_name or $site_slogan): ?>
<div id="branding">
<?php if ($site_logo or $site_name): ?>
<?php if ($title): ?>
<div class="logo-site-name"><strong>
<?php if ($site_logo): ?><span id="logo"><?php print $site_logo; ?></span><?php endif; ?>
<?php if ($site_name): ?><span id="site-name"><?php print $site_name; ?></span><?php endif; ?>
</strong></div>
<?php else: /* Use h1 when the content title is empty */ ?>
<h1 class="logo-site-name">
<?php if ($site_logo): ?><span id="logo"><?php print $site_logo; ?></span><?php endif; ?>
<?php if ($site_name): ?><span id="site-name"><?php print $site_name; ?></span><?php endif; ?>
</h1>
<?php endif; ?>
<?php endif; ?>
<?php if ($site_slogan): ?>
<div id="site-slogan"><?php print $site_slogan; ?></div>
<?php endif; ?>
</div> <!-- /branding -->
</td>
<td>
<?php endif; ?>
<?php if ($primary_menu or $secondary_menu): ?>
<div id="nav" class="clear-block">
<?php if ($primary_menu): print $primary_menu; endif; ?>
<?php if ($secondary_menu): print $secondary_menu; endif; ?>
</div> <!-- /nav -->
<?php endif; ?>
</td>
</tr>
<tr>
<td><div id="head-img"><img src="../images/diapo_01.jpeg" width="968"></div></td>
</tr>
</table>
</div> <!-- /header -->
seulement j'ignore pourquoi cela ne fonctionne pas. Je pensais employer une fonction du genre drupal_get_path afin de mieux repérer le chemin de mon fichier seulement j'ignore si cela est indiqué. Etant debutant, je préfère m'en remettre à vos conseils avisés.
Bien cordialement.
j'ai édité ton message
Permalien Soumis par nyl auster le 19 Octobre, 2009 - 18:07
j'ai édité ton message pour ajouter des balises de code.
De manière générale il faut utiliser base_path() pour être sur que le chemin de l'image soit toujours bon:
<img src="<?php print base_path();?>sites/all/themes/montheme/images/monimage.jpg">
tu peux aussi avoir dynamiquement le chemin de ton theme avec path_to_theme() (ce qui ne dispense pas d'utiliser base_path)
J'ajouterais que tu peux
Permalien Soumis par blaise35 le 20 Octobre, 2009 - 09:30
J'ajouterais que tu peux utiliser theme('image', $path, $alt, $title, $attributes) pour générer automatiquement une balise img.
http://api.drupal.org/api/function/theme_image/6
Dans ton cas :
[...]
<td><div id="head-img"><?php print theme('image', 'images/diapo_01.jpeg'); ?> </div></td>
[...]
Merci pour vos infos cela
Permalien Soumis par souhiji le 20 Octobre, 2009 - 09:35
Merci pour vos infos cela confirme bien ce que je pensais. Je ferais ainsi. Cela dis Blaise35, pour utiliser "theme('image', 'images/disapo_01.jpeg')" il faudrait, je crois definir cela dans mon template.php non?
Non ce n'est pas
Permalien Soumis par blaise35 le 20 Octobre, 2009 - 09:51
Non ce n'est pas nécessaire.
Je ne vais pas expliquer en long et en large le système de theming de Drupal, mais pour être court :
Lorsque tu appelle theme('image'...) :
Drupal détermine à travers le theme registry s'il s'agit d'une fonction de theme ou d'un template.
Dans le cas d'une fonction (notre cas), il recherche une liste de fonctions candidates (les suggestions) :
Donc pour résumé si tu ne déclare ni la première ni la seconde fonction, Drupal prendra la fonction par défaut qui est toujours déclarée. Le lien que je t'ai donné est la doc de la fonction par défaut.
Un peu de lecture :
http://drupal.org/files/theme_flow_6_0.pdf
C'est déjà un peu plus
Permalien Soumis par souhiji le 20 Octobre, 2009 - 09:57
C'est déjà un peu plus clair là Blaise35. Merci encore pour ces éclaircissements. Un très très grand merci à toi ainsi qu'à tous.
rha je connaissais pas
Permalien Soumis par nyl auster le 20 Octobre, 2009 - 10:09
rha je connaissais pas theme_image . Ca rajoute automatiquement la base_path() si besoin dans le chemin apparemment... Merci pour le tuyau :-)
J'aurais une autre question
Permalien Soumis par souhiji le 20 Octobre, 2009 - 11:23
J'aurais une autre question concernant toujours le même type de soucis mais à présent c'est différent, je m'explique. J'ai différents type de contenus (article, page, verbiages,...), et différentes sections (visiter, connaître, vivre...), j'aimerais que dans chaque section l'image soit différente sachant que toutes ces sections utiliserons les mêmes type de contenu.
Tu pourrais créer un bloc
Permalien Soumis par nyl auster le 20 Octobre, 2009 - 11:28
Tu pourrais créer un bloc par section, chacun contenant l'image que tu souhaites et ne s'affichant que là où tu le souhaites.
Il faut que tu fasses un
Permalien Soumis par blaise35 le 20 Octobre, 2009 - 11:28
Il faut que tu fasses un nouveau sujet pour ta nouvelle question, et que tu indiques celui ci comme résolu.
Soit un peu plus clair sur ta question car j'ai pas compris grand chose...
Ooops!! désolé d'avoir mis
Permalien Soumis par souhiji le 20 Octobre, 2009 - 11:36
Ooops!! désolé d'avoir mis ma question ici Blaise. je le mets dans un nouveau sujet.