Jump to content

[Résolu] Nouvelle page .tpl


Recommended Posts

Je souhaite créer une page book.tpl afin de l'intégrer a mon thème prestashop.

 

Sous PS 1.4 la méthode était "simple" :

 

1. Créer un fichier book.php à la racine de la boutique Prestashop

<?php
require(dirname(__FILE__).'/config/config.inc.php');  
ControllerFactory::getController('BookController')--->run();  
?>

 

2. Créer un fichier BookController.php dans le dossier controllers de Prestashop.

<?php  
class BookControllerCore extends FrontController  
{  
	public $php_self = 'book.php';  

	public function displayContent()  
	{  
		parent::displayContent();  
		self::$smarty->display(_PS_THEME_DIR_.'book.tpl');  
	}  
}  
?>

 

3. Créer le fichier Book.php dans le dossier classes :

<?php  
class BookCore extends ObjectModel  
{  

}  
?>

 

4. Créer un fichier book.tpl dans le dossier du thème utilisé

 

--

Quelle est la procédure pour prestashop 1.5 ainsi que la meilleure solution pour ne pas avoir à modifier tous les fichiers à chaque mise à jour ?

Edited by Weetabix40 (see edit history)
Link to comment
Share on other sites

Bonjour,

 

il y a ce topic ou j'explique comment j'ai créé une page accueil.php avant index.php sur prestashop 1.5.2 mais la démarche est la même pour créer une autre page (pas besoin du coup d'aller dans le htaccess)...

 

je te mets le lien c'est en fin de topic...

 

http://www.prestasho...40#entry1038440

 

et il n'y aura pas de soucis concernant les mises a jours normalement puisque les mises a jours remplace les fichiers existant mais pas les fichiers créés par nous même...

Edited by misterpink (see edit history)
  • Like 1
Link to comment
Share on other sites

En effet, bonne pioche... merci pour cette réponse :D

 

J'avais lu ce topic mais j'étais focalisé sur l'ouverture de accueil.php avant index.php.

 

Pour résumer la réponse :

 

1/ Créer un fichier "mapage.php" à la racine de prestashop :

 

<?php
require(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=mapage'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');

( ! modifier "mapage" par le nom de la page souhaité)

 

2/ Créer un fichier "MapageController.php" dans ../controllers/front/ :

 

<?php  

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');
 }
public function setMedia()
{
 parent::setMedia();
 if ($this->assignCase == 1)
  $this->addJS(_THEME_JS_DIR_.'mapage.js');
  $this->addCSS(_THEME_CSS_DIR_.'mapage.css');
}
/**
 * Assign template vars related to page content
 * @see FrontController::initContent()
 */

}

?>

( ! modifier "mapage" par le nom de la page souhaité)

 

3/ Créer un fichier "mapage.tpl" à la racine de son fichier de thème :

<h1>Ma nouvelle page<h1>
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.<p>

( ! modifier "mapage" par le nom de la page souhaité)

 

Maintenant, il faut juste espérer que prestashop n'efface pas cette modification lors de ses mises à jour.

Edited by Weetabix40 (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 6 months later...

En effet, bonne pioche... merci pour cette réponse :D

 

J'avais lu ce topic mais j'étais focalisé sur l'ouverture de accueil.php avant index.php.

 

Pour résumer la réponse :

 

1/ Créer un fichier "mapage.php" à la racine de prestashop :

 

<?php
require(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=mapage'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');

( ! modifier "mapage" par le nom de la page souhaité)

 

2/ Créer un fichier "MapageController.php" dans ../controllers/front/ :

 

<?php  

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');
 }
public function setMedia()
{
 parent::setMedia();
 if ($this->assignCase == 1)
  $this->addJS(_THEME_JS_DIR_.'mapage.js');
  $this->addCSS(_THEME_CSS_DIR_.'mapage.css');
}
/**
 * Assign template vars related to page content
 * @see FrontController::initContent()
 */

}

?>

( ! modifier "mapage" par le nom de la page souhaité)

 

3/ Créer un fichier "mapage.tpl" à la racine de son fichier de thème :

<h1>Ma nouvelle page<h1>
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.<p>

( ! modifier "mapage" par le nom de la page souhaité)

 

Maintenant, il faut juste espérer que prestashop n'efface pas cette modification lors de ses mises à jour.

 

Merci!

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...