[RESOLU] Affichage d'images

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.

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>&nbsp;
  <a href="#">Flux RSS</a>&nbsp;
  <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.

Version de Drupal : 

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)

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 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'...) :

  1. Drupal détermine à travers le theme registry s'il s'agit d'une fonction de theme ou d'un template.

  2. Dans le cas d'une fonction (notre cas), il recherche une liste de fonctions candidates (les suggestions) :

  1. nomDuTheme_image(...) : généralement déclaré dans le template.php
  2. nomDuThemeEngine_image(...)
  3. theme_image(...) : la fonction de thème par défaut

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

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.