Dans ce post vous allez découvrir comment ajouter une page PHP sur votre ecommerce conçu sous Prestashop 1.6. Dans cette page vous pourrez y insérer de nouveaux hooks, y placer du contenu traductible et dynamique ou non, vous aurez un large choix de possibilité pour rendre cette page dynamique et attrayante ...

Tout d'abord sachez que pour créer cette nouvelle page PHP, il vous faudra créer 3 fichiers, ces trois fichiers seront à placer dans les dossiers suivants :
  • /
  • controllers/front/
  • themes/VOTRETHEME/


Pour notre exemple je nommerais cette nouvelle page "Ma Page" et celle-ci sera eccessible via "http://www.urldevotresite.com/ma-page.php".

Commençons par créer la page PHP qui devra se trouver à la racine de votre site web (racine de l'installation de Prestashop).
Ce fichier se nommera ma-page.php, ouvrez votre éditeur de texte (par exemple NotePad ++) et insérez-y ce contenu :
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
require_once(dirname(__FILE__).'/config/config.inc.php');
Controller::getController('MaPageController')->run();



Puis nous allons créer le controller qui sera à placer dans le dossier controllers/font/ nous le nommerons MaPageController.php, dont voici son contenu  :

<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
class MaPageControllerCore extends FrontController
{
 
    public $php_self = 'mapage';
    public function initContent()
    {
        parent::initContent();
        $this->context->smarty->assign('content_only', 0);
        $this->setTemplate(_PS_THEME_DIR_.'mapage.tpl');
        

        $this->context->smarty->assign(array(
            'HOOK_MAPAGEHOOK'        => Hook::exec('displayMaPagehook'),
            //'body_classes'         => array($this->php_self.'-'.$this->php_self->link_rewrite)
        ));
    }
}



Pour finir nous allons créer le troisième et dernier fichier dans lequel vous pourrez placer le contenu à afficher du côté Front Office, ce fichier sera à place dans le dossier themes/VOTRETHEME/ et il se nommera ma-page.tpl, voici donc son contenu :


{*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2015 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{capture name=path}{l s='mapage'}{/capture}
{include file="$tpl_dir./errors.tpl"}
{hook h="displayMaPagehook"}


Comme vous avez sûrement du le constater j'ai placer dans 2 de ces fichiers quelques lignes de code qui permette l'affichage d'un nouveau hook que j'ai précédemment créer, dans ce hook, vous pourrez y faire afficher vos modules. Je vous montrerez dans un autre post comment créer un hook pour votre site ecommerce conçu sous Prestashop.

Il ne vous reste donc plus qu'à mettre ces trois fichiers sur votre FTP et vous pourrez accéder à votre nouvelle page depuis l'url suivante : "http://www.urldevotresite.com/ma-page.php".

J'espère que ce post vous aura aidé.

A très bientôt pour un nouveau post.