Voici un petit tutoriel pour vous montrer comment créer une landing page avec Prestashop.
Avant d’aller plus loin pensez à vous inscrire à la BlackBox et développer vos ventes.
Le code se base sur une version 1.6 de Prestashop mais le principe est le même depuis la version 1.5
Etape 1: Création du controller
On commence par créer le fichier « override/controllers/front/MapageController.php » et on y ajoute le code suivant:
class MapageController extends FrontController {
public function initContent()
{
parent::initContent();
$this->setTemplate(_PS_THEME_DIR_.’mapage.tpl’);
}
}
?>
[/php]
Etape 2 : Création du fichier de template
On crée ensuite le template associé « themes/nomdevotretheme/mapage.tpl »
[/html]
Etape 3: Rafraîchir le cache
Il faut ensuite supprimer le fichier « cache/class_index.php » pour que l’override soit pris en compte.
Il ne vous reste plus qu’à aller sur l’url suivante:
[/html]
Pour voir apparaître le texte que vous avez rentré dans votre fichier « mapage.tpl »
Passionné d’e-commerce et de SEO, je suis le créateur du site reussir-mon-ecommerce.fr. Depuis plus de 15 années, j’aide les e-commerçants à développer sainement leur entreprise. Et si je ne suis pas devant mon écran, c’est que je suis derrière ma batterie à jouer du rock ! !
Bonjour,
Merci pour cette explication.
Petite question cependant, comment fait-on pour associer une css spécifique pour la page ?
Dans le fichier MapageController.php j’ai ajouté :
public function setMedia()
{
parent::setMedia();
if ($this->assignCase == 1)
$this->addCSS(_THEME_CSS_DIR_.’macss.css’);
}
Or elle n’est pas prise en compte. Si je mets les éléments de macss.css dans global.css, là cela fonctionne.
merci.
heu, autant pour moi, petite erreur dans le code c’est :
public function setMedia()
{
parent::setMedia();
$this->addCSS(_THEME_CSS_DIR_.’macss.css’);
}
Et la cela fonctionne!
Bonjour,
Génial, merci pour cette astuce, c’est super simple comme méthode. Et moi qui me prenait la tête à faire un module à chaque fois :-).
Et à mon avis on peut compléter un peu la chose en utilisant des urls rewrite personnalisées, histoire d’avoir quelque chose de plus sympa que : « http://www.urldevotresite.com/index.php?controller=mapage »
Pour info dans les modules j’utilise la méthode hookModuleRoutes.
Vous trouverez plus d’infos ici : http://blog.dev-net.fr/utiliser-des-urls-rewrite-personnalisees-dans-vos-modules/
Hello,
Pourquoi ne pas utiliser une page de cms ?
Bonjour Seb,
Tout dépend de ce que l’on souhaite faire.
Si le but est d’afficher uniquement du texte en effet la page cms est conseillé (toutes fois cela implique qu’elle se retrouvera dans le sitemap eventuellement dans les menus, etc…)
Par contre s’il s’agit de créer un formulaire de contact par exemple, une landing page, etc… l’outil CMS sera très vite dépasser et ne permettra pas de faire ce que l’on veut.
Oui biensur, je me suis laisse abuser par le ‘statique’ ;)
Merci pour ces précisions.
Bonjour,
Comment utiliser l’url de la page dans le CMS?
merci
Bonjour Walter,
comme n’importe quel liens tu reprend l’url de ta page (http://www.urldevotresite.com/index.php?controller=mapage) et tu crée un lien avec la fonction native de l’editeur de texte.
Bonjour,
j’ai quelques problèmes avec mon prestashop 1.6.1.0, le .htaccess peut être, et google avec ces pages introuvables.
Alors je regarde dans mon back office pour essayer de comprendre.
Par exemple dans paramètres avancés / informations, j’ai :
Vérifiez votre configuration
Paramètres requis Veuillez consulter la/les erreur(s) suivante(s)
Certains fichiers PrestaShop sont absents de votre serveur.
(/override/controllers/front/index.php)
Paramètres optionnels ok
Que pensez-vous que ça veut dire, et que dois-je faire ?
Merci
Bonjour Gaillard,
difficile de répondre à ta question c’est un peu « vague ».
Pour ce qui est du fichier index.php manquant il ne sert pas à grand chose excepté pour renforcer un peu la sécurité.
Tu peux aller copier le fichier index.php du dossier « controllers/back » par exemple et le coller dans le dossier front (où il est attendu).
C’est un simple fichier vide en réalité, qui n’ai là que pour empêcher de lire le contenu du dossier en question.
Bonjour,
Avez vous trouvé une solution car moi j’ai le même problème après l’ ugrade de la version 1.6.1.6.
Je ne sais plus voire mon site car j’ai le message « Couldnt execute query2 » dans mon navigateur.
De même lorsque je suis sur la fiche article et que je veux visualiser le produit, comme s’il était dans la boutique – même message « Couldnt execute query2 »
merci d’avance pour la réponse
Bonjour Brigitte.
Un peu comme Gaillard, difficile de te donner plus d’info.
Je te conseille de poser ta question sur le forum de prestashop et si tu as la requête (query) en question ça serait bien de la mettre ça donnerait plus de pistes.
Bonjour,
Merci pour ce tuto, c’est top!
Une petite question : comment supprimer les colonnes de gauche et de droite sur cette page?
J’aurai bien mis un code de ce genre dans mon footer.tpl et header.tpl (selon la colonne ciblée) :
{if mapage}
{else}
{$HOOK_RIGHT_COLUMN}
{/if}
Mais comment identifier ma page dans le {if}?
Merci
Bonjour Julie,
non il y a plus simple.
Dans ton contrôler dans la fonction « init » tu rajoute:
$this->display_column_left = false;
Bonjour,
Merci pour ce tuto :)
Cette méthode fonctionne à merveille pour moi et je suis ravi d’être tombé dessus, cependant, j’ai un problème avec le breadcrumb. Le nom de la page ne s’affiche pas dans celui-ci (la page a été déclarée au niveau de préférences>SEO/URLs) mais rien ne remonte.
Je pense avoir zapé une étape.
Une petite idée ?
Bonjour Steph,
j’avoue ne pas me souvenir si j’avais intégré le breadCrumb avec ma page.
As-tu regardé le template d’une page classique qui utilise le BreadCrumb pour reprendre le code ?
Bonjour Olivier
Cela marche-t-il pour prestashop 1.7 ? Si non as-tu une solution
Bonjour Serge,
je n’ai pas testé sur 1.7 donc je ne peux pas te dire.