Message d'avertissement

The subscription service is currently unavailable. Please try again later.

php template

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.

bonjour,
qu'est ce que le php template svp!
j'arrive pas à comprendre est ce indépendant de Drupal ou bien le contraire?
tout ce que je sais c'est qu'il est présent lorsqu'on parle de la création des thèmes sous Drupal (et sur laquelle je travaille actuellement).
merci d'avance

Version de Drupal : 

Bonjour,

Alors pour commencer le mot 'php template', correspond à deux choses.
On va bien distinguer les templates PHP et le moteur de theme PHPTemplate pour que ça soit compréhensible.

Pour faciliter la création de thème sous Drupal, on utilise des templates PHP qui sont lus et traduits par le moteur PHPTemplate.

Qu'est ce qu'un template PHP ?
C'est tous ces fichiers .tpl.php que tu vois dans ton dossier Drupal.
Un fichier tpl.php est un patron, qui permet de spécifier une structure :

  • node.tpl.php te donne la structure des 'nodes' de ton site
  • page.tpl.php te donne la structure des 'pages' de ton site
  • block.tpl.php la structure des blocs de ton site, etc...

Prenons l'exemple de page.tpl.php (du theme Garland), tu as quelque chose comme ça :

<?php
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
  <head>
    <?php print $head ?>
    <title><?php print $head_title ?></title>
    <?php print $styles ?>
    <?php print $scripts ?>
    <!--[if lt IE 7]>
      <?php print phptemplate_get_ie_styles(); ?>
    <![endif]-->
  </head>
  <body<?php print phptemplate_body_class($left, $right); ?>>

...
      <div id="center"><div id="squeeze"><div class="right-corner"><div class="left-corner">
          <?php print $breadcrumb; ?>
          <?php if ($mission): print '<div id="mission">'. $mission .'</div>'; endif; ?>
          <?php if ($tabs): print '<div id="tabs-wrapper" class="clear-block">'; endif; ?>
          <?php if ($title): print '<h2'. ($tabs ? ' class="with-tabs"' : '') .'>'. $title .'</h2>'; endif; ?>
          <?php if ($tabs): print '<ul class="tabs primary">'. $tabs .'</ul></div>'; endif; ?>
          <?php if ($tabs2): print '<ul class="tabs secondary">'. $tabs2 .'</ul>'; endif; ?>
          <?php if ($show_messages && $messages): print $messages; endif; ?>
          <?php print $help; ?>
          <div class="clear-block">
            <?php print $content ?>
          </div>
   ...

  <?php print $closure ?>
  </body>
</html>

Tu reconnais des élements

  • en HTML : html, body, div, id
  • en PHP (toutes ces balises <?php ... ?>)

Tu vois également de nombreuses variables PHP (symbolisées par le '$') : $mission, $title, $search_box, $style , variables que tu n'as pas toi-même définies à la main dans le fichier page.tpl.php, mais que tu as définies dans Drupal...

Lorsque tu demandes une page, ces variables sont traduites en leur contenu html par le moteur PHPTemplate : $mission devient 'Mission du site, $title devient 'Titre de ta page', $search_box devient un bloc html <input>, $styles devient des balises html <styles>...
Le serveur web te renvoit donc une page html qui est lisible par ton navigateur.

En lui même, le moteur PHPTemplate n'est pas le seul moteur de theme de Drupal. Lorsque tu veux créer un thème, tu as la possibilité de choisir le moteur de theme que tu veux (après l'avoir installer), parmi lesquels PHPTemplate qui est celui par défaut pour Drupal, Haml , Zengine. (http://drupal.org/project/theme+engines). Chaque moteur de theme a un vocabulaire différent et une manière de fonctionner différente.

Voilà, ta question est très générale et ne connaissant pas ton niveau de connaissance générale, j'espère que ma réponse sera assez simple et compréhensible. Si quelqu'un a une meilleur manière d'expliquer, je suis preneur.

un petit lien pour commencer http://drupalfr.org/node/24114