Accueil / Optimisation du code et développement / Conditions sur URL en smarty

Conditions sur URL en smarty

Il est souvent nécessaire d’effectuer des conditions sur URL pour optimiser ses pages.

Ces lignes de code changent selon le langage de programmation de votre site.

Cet article cible spécifiquement le moteur Smarty, qui est utilisé par exemple par Prestashop, CMSMS et bien d’autres CMS.

Le code

{if $smarty.server.REQUEST_URI=="/"}
{else} 
{/if}

Le code ci-dessus vous permet de tester si vous êtes sur l’accueil de votre site.

Exemple d’utilisation :

{if $smarty.server.REQUEST_URI=="/"}{trans}{/trans}
{elseif $smarty.server.REQUEST_URI=="/url1/"}{trans}{/trans}  
{elseif $smarty.server.REQUEST_URI=="/url2/"}{trans}{/trans}  
{else}{trans}{/trans}
{/if}

Le code ci-dessus vous permet de mettre les titres suivants

  • « Titre Accueil » sur votre home page
  • « Titre URL1 » sur votre page ayant l’url www.site.com/url1/
  • « Titre URL2 » sur votre page ayant l’url www.site.com/url2/
  • « Titre toutes autres pages » sur toutes les autres pages.

Bien entendu, vous pouvez adapter le code pour le type d’utilisation dont vous avez besoin (donc pas forcément le title).

Voir aussi

Activer PHP 5 avec HTACCESS

Si vous ne savez pas comment activer PHP 5 sur votre hébergeur, voici un listing assez exhaustif pour le faire avec les principaux hébergeurs européens.

2 commentaires

  1. Excellente astuce, je cherche justement à faire cela sur prestashop pour afficher une balise H1 au tout début du code source de chaque page selon si on se trouve sur une page de type catégorie ou fiche produit ou accueil…
    Est-ce la même méthode à utiliser ? Si je remplace "title" par "h1" cela marchera t-il ?
    L’idée est de récupérer le nom d’une catégorie ou d’une fiche produit pour construire dynamiquement le titre h1… Quelles sont les variables permettant de récupérer le nom d’une catégorie ou d’un fiche produit ?

  2. @Kriss : Bien entendu, on peut remplacer le title par n'importe quelle balise souhaitée.

    Pour la variable de category, je crois que c'est {$category->name} et pour le nom du produit, ce serait {$product.name}.

    N'hésites pas à nous tenir au courant.