Un des principes fondamentaux du framework Gantry est la possibilité d'être ovverridé. Cela lui permet d'être aussi souple que possible afin de répondre aux besoins d'un site ou d'un template. Gantry vous permets de surcharger les mises en page des modules, des Modules Chromes , des layouts, et propose une plateforme pour les surcharges d'extensions. La partie spécifique que nous allons traité dans ce tutoriel sera la surcharge des fonctionnalités (features)

Qu'est-ce qu'une Fonctionnalité (Feature)?

Une fonctionnalité est un élément autonome qui ajoute une utilité spécifique au template. Elles améliorent les fonctionnalités du template et peuvent être configurées de façon générale, ou pour des éléments de menu spécifiques à l'aide de l'interface administrateur Gantry.

Les fonctionnalités sont situées dans /libraries/gantry/features/ et incluent un grand choix de différents types tels que la date, le Copyright, et le logo. Il existe de nombreuses autres fonctionnalités par défaut inclus.

Voici un exemple de la fonctionnalité /libraries/gantry/features/copyright.php :

    <?php
    defined('JPATH_BASE') or die();
    gantry_import('core.gantryfeature');
    class GantryFeatureCopyright extends GantryFeature
    {
      var $_feature_name = 'copyright';
      function render($position)
       {
       ob_start();
      ?>
       <div class="clear"></div>
         <div class="rt-block">
           <a href="http://www.rockettheme.com/" title="rockettheme.com" id="rocket"></a>
           <?php echo $this->get('text'); ?>
         </div>
      <?php
      return ob_get_clean();
      }
    }

Il y a plusieurs éléments dans une fonctionnalité. D'abord, le code suivant définit le fichier comme une fonctionnalité Gantry, important les fonctions nécessaires:

    <?php
      defined('JPATH_BASE') or die();
      gantry_import('core.gantryfeature');

Ensuite, la fonctionnalité est alors différenciée par un nom, dans ce cas, GantryFeatureCopyright et 'copyright':

    class GantryFeatureCopyright extends GantryFeature
    {
      var $_feature_name = 'copyright';

Juste après le nommage de la fonctionnalité, il y a un code de traitement complémentaire qui ne devrait pas être modifié.

    function render($position)
    {
    ob_start();
    ?>

La prochaine zone de la fonctionnalité est la mise en page XHTML, à laquelle vous pouvez ajouter votre code XHTML personnalisé à l'intérieur:

    <div class="clear"></div>
    <div class="rt-block">
    <a href="http://www.rockettheme.com/" title="rockettheme.com" id="rocket"></a>
    <?php echo $this->get('text'); ?>
    </div>

Après la structure XHTML, vous terminez la fonctionnalité avec ce qui suit:

    <?php
    return ob_get_clean();
    }
    }

Surcharger une fonctionnalité Gantry

Gantry permet aux fonctionnalités d'être surchargées  soit en créant une copie directement de la fonction depuis  /libraries/gantry/features/ou en créant un nouveau fichier feature.php file dans /templates/[TEMPLATE]/features/.

A feature file must follow the format in the section above. There is, in effect, two areas of modification. The first is the name that must be unique. The second is the XHTML layout where you can construct the feature's structure to meet your ends.

Les fonctionnalités et l'Administrateur

Selon le niveau de modification que vous envisagez pour une fonctionnalité particulière, vous pouvez vouloir éditer ses paramètres. Pour cela vous devrez modifier le fichier /templates/[TEMPLATE]/template-options.xml .

L'élément concerné de ce fichier XML commence par:

<fieldset name="features" label="FEATURES">

Ici vous pouvez repérer le(s) champ(s) pour la fonctionnalité que vous souhaitez modifier comme copyright:

    <fields name="copyright" type="chain" label="COPYRIGHT" description="COPYRIGHT_DESC">
       <field name="enabled" type="toggle" default="0" label="SHOW" />
       <field name="position" type="position" default="copyright-a" label="POSITION" />
       <field name="text" type="text" default="Designed by RocketTheme" label="TEXT" class="text-long" />
    </fields>
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Fonctionnels