{"id":456,"date":"2009-06-30T20:47:19","date_gmt":"2009-06-30T19:47:19","guid":{"rendered":"https:\/\/www.magavenue.com\/blog\/?p=456"},"modified":"2009-06-30T20:47:19","modified_gmt":"2009-06-30T19:47:19","slug":"prestashop-attention-vos-templates-sont-facilement-copiables","status":"publish","type":"post","link":"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/","title":{"rendered":"Prestashop : Attention, vos templates sont facilement copiables"},"content":{"rendered":"<p>Pour personnaliser votre boutique Prestashop, vous avez besoin de cr\u00e9er ou d&rsquo;acheter un th\u00e8me. Ces th\u00e8mes sont plus commun\u00e9ment appel\u00e9s \u00ab\u00a0templates\u00a0\u00bb.<br \/>\nPour traiter le code de ces th\u00e8mes, Prestashop utilise un moteur de template : Smarty, qui est aussi utilis\u00e9 dans de nombreux autres CMS ou applications. (Plici, Pligg, Joomla, WordPress avec un plugin, etc&#8230;).<br \/>\nLe probl\u00e8me que nous souhaitons d\u00e9crire aujourd&rsquo;hui est qu&rsquo;<strong>un template Prestashop peut \u00eatre copi\u00e9, pill\u00e9, vol\u00e9, en quelques secondes<\/strong>.<br \/>\nNous allons donc voir <strong>comment prot\u00e9ger votre template ou th\u00e8me Prestashop<\/strong>.<br \/>\n<strong>La proc\u00e9dure d\u00e9crite ci-dessous est \u00e0 ex\u00e9cuter \u00e0 vos risques et p\u00e9rils. Nous ne pourrons en aucun cas \u00eatre tenu pour responsable, si votre boutique ne fonctionne plus, ou votre th\u00e8me ne s&rsquo;affiche plus. Pensez \u00e0 faire une sauvegarde des fichiers que vous allez modifier.<\/strong><\/p>\n<h2>Sommaire<\/h2>\n<ul>\n<li>\n<h3><a title=\"Comment peut-on vous voler votre template ou th\u00e8me Prestashop\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables#voler-un-theme-prestashop\">1. Comment peut-on vous voler votre template ou th\u00e8me Prestashop<\/a><\/h3>\n<\/li>\n<li>\n<h3><a title=\"Se prot\u00e9ger simplement du vol de votre th\u00e8me Prestashop par un .htaccess\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables#proteger-htaccess\">2. Se prot\u00e9ger simplement du vol de votre th\u00e8me Prestashop par un .htaccess<\/a><\/h3>\n<\/li>\n<li>\n<h3><a title=\"Comment prot\u00e9ger son template Prestashop de l'affichage\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables#proteger-affichage-prestashop\">3. Comment prot\u00e9ger son template Prestashop de l&rsquo;affichage<\/a><\/h3>\n<\/li>\n<li>\n<h3><a title=\"Autre solution\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables#autre-solution\">4. Autre solution<\/a><\/h3>\n<\/li>\n<li>\n<h3><a title=\"Conclusion\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables#conclusion\">5. Conclusion<\/a><\/h3>\n<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h2><a name=\"voler-un-theme-prestashop\">1. Comment peut-on vous voler votre template ou th\u00e8me Prestashop ?<\/a><\/h2>\n<p>Nous allons dans un premier temps expliquer o\u00f9 se situe le probl\u00e8me dans l&rsquo;utilisation de Smarty par Prestashop.<br \/>\nIl faut savoir que n&rsquo;importe quel CMS qui utiliserait Smarty de la fa\u00e7on dont l&rsquo;utilise Prestashop aurait ce probl\u00e8me. Ce n&rsquo;est donc ni une faille de Smarty, ni de Prestashop. C&rsquo;est juste une utilisation maladroite.<br \/>\nPour afficher le code html de votre th\u00e8me, Smarty compile les diff\u00e9rents fichiers provenant de votre template. Ces fichiers peuvent \u00eatre des fichiers ayant l&rsquo;extension \u00ab\u00a0.tpl\u00a0\u00bb, \u00ab\u00a0.php\u00a0\u00bb ou autres.<br \/>\nC&rsquo;est ici que le probl\u00e8me se situe. Prestashop utilise des templates \u00e0 base de fichiers ayant l&rsquo;extension \u00ab\u00a0.tpl\u00a0\u00bb.<\/p>\n<h3>En quoi est-ce un probl\u00e8me ?<\/h3>\n<p>Lorsque l&rsquo;on tente d&rsquo;acc\u00e9der directement \u00e0 un fichier avec l&rsquo;extension \u00ab\u00a0.tpl\u00a0\u00bb, son contenu est affich\u00e9 en \u00ab\u00a0clair\u00a0\u00bb.<br \/>\nAvec le code de Prestashop, nous savons que dans un th\u00e8me, il y a des fichiers obligatoires pour afficher le th\u00e8me de la boutique (\u00e0 moins d&rsquo;avoir chang\u00e9 plusieurs parties du code Prestashop, ce qui semble compliqu\u00e9). Nous savons donc que Prestashop appellera les fichiers : \u00a0\u00ab\u00a0index.tpl\u00a0\u00bb, \u00ab\u00a0header.tpl\u00a0\u00bb, \u00ab\u00a0footer.tpl\u00a0\u00bb, \u00ab\u00a0404.tpl\u00a0\u00bb etc.<br \/>\nNous allons prendre un exemple concret, notre \u00e9quipe poss\u00e8de une boutique tournant sous Prestashop <a href=\"https:\/\/www.magavenue.com\/fr\/\">https:\/\/www.magavenue.com\/<\/a><br \/>\nNous savons que les fichiers de styles (css), permettants de styliser le th\u00e8me, se situent dans un sous dossier du th\u00e8me (dossier \/css\/). Il en est de m\u00eame pour les images relatives au th\u00e8me, ou pour les fichiers javascript.<br \/>\nIl suffit donc d&rsquo;afficher la source de notre boutique (avec n&rsquo;importe quel navigateur), de chercher la ligne indiquant l&rsquo;adresse du fichier css \u00e0 charger et nous avons l&rsquo;adresse o\u00f9 se trouve le th\u00e8me utilis\u00e9 par notre boutique. (Nous aurions pu faire de m\u00eame avec une image par exemple).<br \/>\nSi nous affichons la source de notre boutique nous avons, au tout d\u00e9but du code, la ligne suivante :<\/p>\n<div class=\"divcode\">&lt;link href=\u00a0\u00bb\/themes\/magavenue\/css\/global.css\u00a0\u00bb rel=\u00a0\u00bbstylesheet\u00a0\u00bb type=\u00a0\u00bbtext\/css\u00a0\u00bb media=\u00a0\u00bball\u00a0\u00bb \/&gt;<\/div>\n<p>Nous savons donc maintenant que notre th\u00e8me Prestashop se trouve \u00e0 l&rsquo;adresse : https:\/\/www.magavenue.com\/themes\/magavenue\/<br \/>\nUne fois celle-ci obtenu, rien de plus simple pour r\u00e9cup\u00e9rer les fichiers du th\u00e8me de notre boutique. Il suffit de rajouter les diff\u00e9rents noms de fichiers \u00e0 la suite de cette adresse.<br \/>\nPar exemple :<\/p>\n<div class=\"divcode\">https:\/\/www.magavenue.com\/themes\/magavenue\/404.tpl<br \/>\nhttps:\/\/www.magavenue.com\/themes\/magavenue\/header.tpl<br \/>\nhttps:\/\/www.magavenue.com\/themes\/magavenue\/footer.tpl<\/div>\n<p>Il ne nous reste plus qu&rsquo;\u00e0 r\u00e9cup\u00e9rer les fichiers css, javascript, et les diff\u00e9rents fichiers images. Qui eux seront toujours diffus\u00e9s en clair.<br \/>\nEn quelques minutes, vous aurez r\u00e9cup\u00e9r\u00e9 un th\u00e8me complet Prestashop.<\/p>\n<h3>Quelles diff\u00e9rences entre r\u00e9cup\u00e9rer les fichiers .tpl d&rsquo;une boutique Prestashop et acc\u00e9der au source directement ?<\/h3>\n<p>Si vous acc\u00e8der \u00e0 une boutique Prestashop et que vous affichez la source la page, vous ne verrez que le code compil\u00e9 du th\u00e8me, c&rsquo;est \u00e0 dire de l&rsquo;html. Mais il sera tr\u00e8s dur, de pouvoir l&rsquo;assembler de sorte \u00e0 obtenir le th\u00e8me utilisable sur une autre boutique. Alors qu&rsquo;en r\u00e9cup\u00e9rant les fichiers .tpl, vous obtenez un th\u00e8me complet que vous pourrez mettre en place sur une boutique Prestashop, pour g\u00e9n\u00e9rer le code html facilement.<\/p>\n<h2><a name=\"proteger-htaccess\">2. Se prot\u00e9ger simplement du vol de votre th\u00e8me Prestashop par un .htaccess<\/a><\/h2>\n<p>Une premi\u00e8re fa\u00e7on d&#8217;emp\u00eacher le vol de votre template Prestashop est d&rsquo;utiliser un fichier .htaccess.<br \/>\nEn effet si quelqu&rsquo;un essai d&rsquo;acc\u00e9der directement aux diff\u00e9rents fichiers .tpl comme nous l&rsquo;avons montr\u00e9 pr\u00e9c\u00e9demment, il sera redirig\u00e9 vers une autre page (l&rsquo;index de votre site par exemple).<br \/>\nPour faire cela, vous devez cr\u00e9er un fichier .htaccess dans le dossier de votre th\u00e8me puis y rentrer le code suivant :<\/p>\n<div class=\"divcode\">RewriteEngine on<br \/>\nRewriteCond %{HTTP_REFERER} !^https:\/\/magavenue.com\/.*$ [NC]<br \/>\nRewriteCond %{HTTP_REFERER} !^https:\/\/magavenue.com\/$ [NC]<br \/>\nRewriteCond %{HTTP_REFERER} !^https:\/\/www.magavenue.com\/.*$ [NC]<br \/>\nRewriteCond %{HTTP_REFERER} !^https:\/\/www.magavenue.com$ [NC]<br \/>\nRewriteRule .*\\.(jpg|jpeg|gif|png|bmp|swf|tpl|css)$ https:\/\/www.magavenue.com\/ [R,NC]<\/div>\n<p>Vous aurez bien entendu compris, qu&rsquo;il faudra remplacer https:\/\/www.magavenue.com\/ par l&rsquo;adresse de votre boutique.<br \/>\n<strong>Si les images, ou le th\u00e8me de votre boutique Prestashop ne s&rsquo;affichent plus, c&rsquo;est que vous avez s\u00fbrement entr\u00e9 une mauvaise adresse \u00e0 cette \u00e9tape.<\/strong><\/p>\n<h3>Le .htaccess n&rsquo;est pas fiable, et votre template Prestashop peut toujours \u00eatre vol\u00e9.<\/h3>\n<p>Vous avez mis en place une premi\u00e8re barri\u00e8re de protection. Si nous essayons d&rsquo;acc\u00e9der directement \u00e0 un fichier de votre th\u00e8me, nous serons rediriger vers l&rsquo;index de votre boutique.<br \/>\nN\u00e9anmoins le probl\u00e8me n&rsquo;est pas r\u00e9solu pour autant, cette protection peut se contourner facilement, il faut donc arriver \u00e0 prot\u00e9ger les fichiers .tpl de l&rsquo;affichage.<\/p>\n<h2><a name=\"proteger-affichage-prestashop\">3. Comment prot\u00e9ger son th\u00e8me ou template Prestashop de l&rsquo;affichage<\/a><\/h2>\n<p>Comme nous l&rsquo;avions expliqu\u00e9 dans la premi\u00e8re partie, le probl\u00e8me que nous mettons en \u00e9vidence, vient du fait que les fichiers des templates Prestashop sont \u00e0 la base des fichiers .tpl qui s&rsquo;affichent en clair. Il faudrait donc arriver \u00e0 faire en sorte que si nous acc\u00e9dons au fichier, celui-ci ne soit pas consid\u00e9r\u00e9 comme un simple fichier \u00ab\u00a0texte\u00a0\u00bb, mais soit ex\u00e9cut\u00e9 par le serveur sur lequel il se trouve.<br \/>\nPlus clairement il faudrait donc que les fichiers du template soit des fichiers avec l&rsquo;extension \u00ab\u00a0.php\u00a0\u00bb, afin que ceux-ci ne puissent \u00eatre affich\u00e9s directement, mais ex\u00e9cut\u00e9s.<br \/>\nPour prot\u00e9ger notre th\u00e8me Prestashop du vol, nous allons donc modifier tout nos fichiers contenu dans le dossier de notre th\u00e8me. En changeant leurs extensions de \u00ab\u00a0.tpl\u00a0\u00bb \u00e0 \u00ab\u00a0.php\u00a0\u00bb. Il existe d\u00e9j\u00e0 un fichier index.php, permettant de rediriger l&rsquo;utilisateur acc\u00e9dant directement au dossier de votre template. Vous devez donc le supprimer pour pouvoir renommer le fichier index.tpl en index.php. Le .htaccess redirigeant d\u00e9j\u00e0 l&rsquo;utilisateur.<br \/>\nSi l&rsquo;on acc\u00e8de \u00e0 un fichier .php ne contenant pas de php, celui-ci affichera le code du template malgr\u00e9 tout.<br \/>\nEn effet si nous acc\u00e9dons directement \u00e0 un fichier .tpl, renomm\u00e9 en .php, nous aurons toujours acc\u00e8s \u00e0 la source du template.<br \/>\nIl faut donc que le code s&rsquo;ex\u00e9cute en tant que du code PHP.<br \/>\nNous allons donc ajouter en haut de chaque fichier \u00ab\u00a0.tpl\u00a0\u00bb le code suivant :<\/p>\n<div class=\"divcode\">{if $magavenueblog ==1}<br \/>\n&lt;?<br \/>\n{\/if}<\/div>\n<h3>Que fait ce code ?<\/h3>\n<p>Si nous acc\u00e9dons \u00e0 un fichier directement contenant ce code, la partie \u00ab\u00a0{if $magavenueblog ==1}\u00a0\u00bb sera trait\u00e9 comme du texte pur et simple, il ne sera donc pas interpr\u00e9t\u00e9 comme du PHP.<br \/>\nPar contre \u00e0 partir du moment, o\u00f9 l&rsquo;interpr\u00e9teur tombera sur le \u00ab\u00a0&lt;?\u00a0\u00bb, le fichier sera interpr\u00e9t\u00e9 comme du PHP, et une erreur se produira. En effet le code \u00ab\u00a0{\/if}\u00a0\u00bb n&rsquo;est pas une instruction valide en PHP. Il ne sera donc plus possible d&rsquo;afficher directement le code du template.<br \/>\nPar contre, si nous somme dans le cadre de l&rsquo;utilisation du template par Prestashop et donc Smarty, au moment ou l&rsquo;interpr\u00e9teur arrivera sur \u00ab\u00a0{if $magavenueblog ==1}\u00a0\u00bb, il cherchera s&rsquo;il existe dans le th\u00e8me une variable $magavenueblog. Celle-ci n&rsquo;existant pas il n&rsquo;affichera pas le \u00ab\u00a0&lt;?\u00a0\u00bb. L&rsquo;affichage du template pourra alors se d\u00e9rouler correctement, sans que le code ajout\u00e9 ne pose probl\u00e8me.<\/p>\n<h3>Comment modifier Prestashop pour qu&rsquo;il prenne en compte les fichier .php au lieu des .tpl ?<\/h3>\n<p>Le probl\u00e8me principal pour s\u00e9curiser les templates, \u00e9tait de pouvoir facilement modifier Prestashop pour prendre en compte les templates avec des fichiers .php au lieu des fichiers .tpl.<br \/>\nEn effet dans chaque page de votre boutique, vous avez des fonctions Smarty appelant les fichiers .tpl. Il serait donc tr\u00e8s long de tous les modifier un par un, de ne pas en oublier, et de refaire cela \u00e0 chaque mise \u00e0 jour.<br \/>\nIl faut donc intercepter la fonction entre Prestashop et Smarty appelant les fichiers, afin de rediriger les requ\u00eates d&rsquo;un fichier .tpl vers un fichier .php.<\/p>\n<h3>Dois-je modifier les fichiers .tpl contenus dans les modules Prestashop et autres ?<\/h3>\n<p>Un autre probl\u00e8me dans notre solution, est qu&rsquo;il faut dans un premier temps modifier tous les fichiers .tpl de notre th\u00e8me en fichier .php. Mais il faudrait alors aussi modifier tous les fichiers .tpl contenu dans les modules, le faire \u00e0 chaque fois que l&rsquo;on installe un nouveau module. Bref cela semble aussi tr\u00e8s compliqu\u00e9 \u00e0 mettre en place.<br \/>\nNous allons donc dans notre redirection de requ\u00eate mettre en place une condition. Celle-ci testera si un fichier .tpl existe, et sinon appellera un fichier .php.<br \/>\nAinsi, si les fichiers de votre th\u00e8me, sont des .php, Prestashop les prendra en compte, mais il prendra aussi en compte, les fichiers .tpl contenu dans les modules, sans que vous ayez besoin de les renommer.<\/p>\n<h3>Comment r\u00e9aliser la redirection Smarty ?<\/h3>\n<p>Il faut modifier le fichier Smarty.class.php contenu dans le dossier \/tools\/smarty\/ de votre boutique Prestashop.<br \/>\nA la ligne 1106, il faut modifier la fonction display et y ajouter :<\/p>\n<div class=\"divcode\">if (!file_exists($resource_name))<br \/>\n$resource_name=substr($resource_name, 0, -4).&rsquo;.php&rsquo;;<\/div>\n<p>Avant :<\/p>\n<div class=\"divcode\">\nfunction display($resource_name, $cache_id = null, $compile_id = null)<br \/>\n{<br \/>\n$this-&gt;currentTemplate = substr(basename($resource_name), 0, -4);<br \/>\n$this-&gt;fetch($resource_name, $cache_id, $compile_id, true);<br \/>\n}<\/div>\n<p>Apr\u00e8s<\/p>\n<div class=\"divcode\">\nfunction display($resource_name, $cache_id = null, $compile_id = null)<br \/>\n{<br \/>\nif (!file_exists($resource_name))<br \/>\n$resource_name=substr($resource_name, 0, -4).&rsquo;.php&rsquo;;<br \/>\n$this-&gt;currentTemplate = substr(basename($resource_name), 0, -4);<br \/>\n$this-&gt;fetch($resource_name, $cache_id, $compile_id, true);<br \/>\n}<\/div>\n<p>Il faut ensuite modifier la fonction fetch \u00e0 la ligne 1123 et y ajouter :<\/p>\n<div class=\"divcode\">if (!file_exists($resource_name))<br \/>\n$resource_name=substr($resource_name, 0, -4).&rsquo;.php&rsquo;;<\/div>\n<p>Avant :<\/p>\n<div class=\"divcode\">\nfunction fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)<br \/>\n{<br \/>\nstatic $_cache_info = array();<br \/>\n$_smarty_old_error_level = $this-&gt;debugging ? error_reporting() : error_reporting(isset($this-&gt;error_reporting)<br \/>\n? $this-&gt;error_reporting : error_reporting() &amp; ~E_NOTICE);<br \/>\n[&#8230;]<\/div>\n<p>Apr\u00e8s :<\/p>\n<div class=\"divcode\">\nfunction fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)<br \/>\n{<br \/>\nstatic $_cache_info = array();<br \/>\nif (!file_exists($resource_name))<br \/>\n$resource_name=substr($resource_name, 0, -4).&rsquo;.php&rsquo;;<br \/>\n$_smarty_old_error_level = $this-&gt;debugging ? error_reporting() : error_reporting(isset($this-&gt;error_reporting)<br \/>\n? $this-&gt;error_reporting : error_reporting() &amp; ~E_NOTICE);<br \/>\n[&#8230;]<\/div>\n<p>Et enfin la fonction _smarty_include \u00e0 la ligne 1854 et y ajouter :<\/p>\n<div class=\"divcode\">if (!file_exists($params[&lsquo;smarty_include_tpl_file&rsquo;]))<br \/>\n$params[&lsquo;smarty_include_tpl_file&rsquo;]=substr($params[&lsquo;smarty_include_tpl_file&rsquo;], 0, -4).&rsquo;.php&rsquo;;<\/div>\n<p>Avant :<\/p>\n<div class=\"divcode\">\nfunction _smarty_include($params)<br \/>\n{<br \/>\n$backup = $this-&gt;currentTemplate;<br \/>\n$this-&gt;currentTemplate = substr(basename($params[&lsquo;smarty_include_tpl_file&rsquo;]), 0, -4);<br \/>\n[&#8230;]<\/div>\n<p>Apr\u00e8s :<\/p>\n<div class=\"divcode\">\nfunction _smarty_include($params)<br \/>\n{<br \/>\n$backup = $this-&gt;currentTemplate;<br \/>\nif (!file_exists($params[&lsquo;smarty_include_tpl_file&rsquo;]))<br \/>\n$params[&lsquo;smarty_include_tpl_file&rsquo;]=substr($params[&lsquo;smarty_include_tpl_file&rsquo;], 0, -4).&rsquo;.php&rsquo;;<br \/>\n$this-&gt;currentTemplate = substr(basename($params[&lsquo;smarty_include_tpl_file&rsquo;]), 0, -4);<br \/>\n[&#8230;]<\/div>\n<p>Votre template est donc prot\u00e9g\u00e9 du probl\u00e8me mis en \u00e9vidence pr\u00e9c\u00e9demment.<br \/>\n<strong>Conscient que la d\u00e9marche d\u00e9crite est compliqu\u00e9e, nous pouvons ex\u00e9cuter la proc\u00e9dure pour vous. Vous pouvez commander <a href=\"https:\/\/www.magavenue.com\/fr\/37-protection-theme-prestashop-vol-hack.html\">cette prestation sur notre boutique<\/a>.<\/strong><\/p>\n<h2><a name=\"autre-solution\">4. Autre solution<\/a><\/h2>\n<p>Une autre solution, pourrait \u00eatre de d\u00e9placer les dossiers contenant les templates, dans une partie du serveur n&rsquo;\u00e9tant pas accessible par Internet. Mais cela peut \u00eatre fait seulement par les personnes ayant un serveur capable de faire cela (par exemple, un serveur d\u00e9di\u00e9). Il faudra alors modifier le fichier de configuration de Smarty, et lui donner l&rsquo;adresse du dossier pour acc\u00e9der au th\u00e8me.<\/p>\n<h2><a name=\"conclusion\">5. Conclusion<\/a><\/h2>\n<p>Ces solutions permettent de prot\u00e9ger efficacement votre template ou th\u00e8me de votre boutique, du probl\u00e8me que nous avons mis en \u00e9vidence.<br \/>\nIl faut n\u00e9anmoins savoir que cela ne signifie pas que votre template est compl\u00e9tement s\u00e9curis\u00e9. Vous ne serez pas prot\u00e9g\u00e9 si vous avez :<\/p>\n<ul>\n<li>une faille dans votre serveur<\/li>\n<li>fait une erreur<\/li>\n<li> ou s&rsquo;il existe un probl\u00e8me pas encore mis \u00e0 jour.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Pour personnaliser votre boutique Prestashop, vous avez besoin de cr\u00e9er ou d&rsquo;acheter un th\u00e8me. Ces th\u00e8mes sont plus commun\u00e9ment appel\u00e9s \u00ab\u00a0templates\u00a0\u00bb. Pour traiter le code de ces th\u00e8mes, Prestashop utilise un moteur de template : Smarty, qui est aussi utilis\u00e9 dans de nombreux autres CMS ou applications. (Plici, Pligg, Joomla, WordPress avec un plugin, etc&#8230;).&hellip;&nbsp;<a href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/\" class=\"\" rel=\"bookmark\">Lire la suite &raquo;<span class=\"screen-reader-text\">Prestashop : Attention, vos templates sont facilement copiables<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[66,177,182,195,219,240],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Prestashop : Attention, vos templates sont facilement copiables - Magavenue : Le Blog du ecommerce Open-source<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prestashop : Attention, vos templates sont facilement copiables - Magavenue : Le Blog du ecommerce Open-source\" \/>\n<meta property=\"og:description\" content=\"Pour personnaliser votre boutique Prestashop, vous avez besoin de cr\u00e9er ou d&rsquo;acheter un th\u00e8me. Ces th\u00e8mes sont plus commun\u00e9ment appel\u00e9s \u00ab\u00a0templates\u00a0\u00bb. Pour traiter le code de ces th\u00e8mes, Prestashop utilise un moteur de template : Smarty, qui est aussi utilis\u00e9 dans de nombreux autres CMS ou applications. (Plici, Pligg, Joomla, WordPress avec un plugin, etc&#8230;).&hellip;&nbsp;Lire la suite &raquo;Prestashop : Attention, vos templates sont facilement copiables\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/\" \/>\n<meta property=\"og:site_name\" content=\"Magavenue : Le Blog du ecommerce Open-source\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/magavenue\/\" \/>\n<meta property=\"article:published_time\" content=\"2009-06-30T19:47:19+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Magavenue\" \/>\n<meta name=\"twitter:site\" content=\"@Magavenue\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture est.\">\n\t<meta name=\"twitter:data1\" content=\"11 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.magavenue.com\/blog\/#website\",\"url\":\"https:\/\/www.magavenue.com\/blog\/\",\"name\":\"Magavenue : Le Blog du ecommerce Open-source\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.magavenue.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/#webpage\",\"url\":\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/\",\"name\":\"Prestashop : Attention, vos templates sont facilement copiables - Magavenue : Le Blog du ecommerce Open-source\",\"isPartOf\":{\"@id\":\"https:\/\/www.magavenue.com\/blog\/#website\"},\"datePublished\":\"2009-06-30T19:47:19+00:00\",\"dateModified\":\"2009-06-30T19:47:19+00:00\",\"author\":{\"@id\":\"https:\/\/www.magavenue.com\/blog\/#\/schema\/person\/583c008caa8ac9ecf5994ed089fffbad\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.magavenue.com\/blog\/prestashop\/prestashop-attention-vos-templates-sont-facilement-copiables\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.magavenue.com\/blog\/#\/schema\/person\/583c008caa8ac9ecf5994ed089fffbad\",\"name\":\"Magavenue\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.magavenue.com\/blog\/#personlogo\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5eaa47e1e657a76ab2fb0f045063b303?s=96&d=mm&r=g\",\"caption\":\"Magavenue\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/posts\/456"}],"collection":[{"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/comments?post=456"}],"version-history":[{"count":0,"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/posts\/456\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/media?parent=456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/categories?post=456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.magavenue.com\/blog\/wp-json\/wp\/v2\/tags?post=456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}