...
What's
...
new
...
in
...
PrestaShop
...
1.5
...
The
...
new
...
version
...
of
...
PrestaShop
...
brings
...
a
...
lot
...
of
...
new
...
and
...
updated
...
features
...
to
...
improve
...
online
...
shopping
...
for
...
both
...
customers
...
and
...
shop
...
owners,
...
and
...
the
...
API
...
have
...
been
...
dutifuly
...
updated
...
and
...
expanded
...
in
...
order
...
to
...
help
...
developers
...
and
...
designers
...
leverage
...
these
...
new
...
possibilities.
...
The
...
technical
...
documentation
...
itself
...
has
...
been
...
updated
...
to
...
reflect
...
the
...
new
...
state
...
of
...
working
...
with
...
PrestaShop.
...
This
...
chapter
...
describes
...
all
...
the
...
changes
...
between
...
v1.4
...
and
...
v1.5,
...
in
...
order
...
to
...
help
...
you
...
get
...
up
...
to
...
date
...
quickly.
...
PrestaShop Core
Info |
---|
Coming soon... {info} h2. Module API There are six main aspects of |
Module API
There are six main aspects of PrestaShop's
...
Module
...
API
...
which
...
received
...
a
...
significant
...
overhaul
...
for
...
version
...
1.5:
...
dynamic
...
hooks,
...
evolution
...
of
...
the
...
override
...
system,
...
new
...
filetree
...
and
...
operations,
...
multishop
...
feature,
...
Addons
...
webservice,
...
and
...
the
...
update
...
system.
...
We
...
will
...
explore
...
these
...
one
...
by
...
one.
...
Dynamic Hooks
Liste des looks 1.5
...
:
...
Définition
...
des
...
hooks
...
dynamiques
Evolution Of The Override System
Possibilité d'override
...
des
...
classes
...
et
...
les
...
controllers
...
de
...
PrestaShop
...
:
...
Depuis
...
la
...
1.4
...
il
...
est
...
possible
...
d'overrider
...
des
...
classes
...
et
...
des
...
controllers
...
de
...
PrestaShop
...
Pour
...
les
...
modules
...
dans
...
PrestaShop
...
1.5,
...
il
...
existe
...
un
...
système
...
pour
...
overrider
...
les
...
classes
...
et
...
les
...
controllers
...
facilement.
...
Par
...
exemple,
...
pour
...
overrider
...
la
...
class
...
Cart.php
...
dans
...
un
...
module
...
il
...
suffit
...
de
...
créer
...
le
...
dossier
...
/override/classes/
...
dans
...
le
...
module
...
et
...
y
...
placer
...
l'override
...
Cart.php
...
PrestaShop
...
fera
...
un
...
merge
...
automatique
...
de
...
l'override
...
du
...
module
...
et
...
de
...
l'override
...
déjà
...
présent.
...
New Filetree And Operations
A présent, il est conseillé d'éviter l'appel de fichier de module directement.
Exemple avant, lors d'un paiement par le module cheque, on arrivait sur une url du type : http://localhost/prestashop-14x/modules/cheque/payment.php
...
Cette
...
méthode
...
fonctionne
...
toujours
...
en
...
1.5
...
mais
...
il
...
est
...
possible
...
(et
...
fortement
...
conseillé)
...
de
...
construire
...
ces
...
modules
...
afin
...
d'appeler
...
les
...
pages
...
des
...
modules
...
sous
...
la
...
forme
...
suivante
...
:
...
http://localhost/prestashop-15x/index.php?fc=module&module=cheque&controller=payment
...
Pour
...
procéder
...
ainsi,
...
on
...
place
...
des
...
FrontController
...
dans
...
le
...
module.
...
Dans
...
le
...
cas
...
du
...
paiement
...
pour
...
le
...
module
...
cheque,
...
on
...
a
...
placé
...
le
...
fichier
...
suivant
...
dans
...
le
...
module
...
:
...
/modules/cheque/controllers/front/payment.php
...
Le
...
nom
...
de
...
la
...
"classe"
...
doit
...
être
...
composé
...
de
...
la
...
manière
...
suivante
...
NomDuModule
...
NomDeLaPage
...
suivi
...
de
...
"ModuleFrontController"
Code Block |
---|
class ChequePaymentModuleFrontController extends ModuleFrontController { public $display_column_left = false; public $ssl = true; /** * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $cart = $this->context->cart; if (!$this->module->checkCurrency($cart)) Tools::redirect('index.php?controller=order'); $this->context->smarty->assign(array( 'nbProducts' => $cart->nbProducts(), 'cust_currency' => $cart->id_currency, 'currencies' => $this->module->getCurrency((int)$cart->id_currency), 'total' => $cart->getOrderTotal(true, Cart::BOTH), 'isoCode' => $this->context->language->iso_code, 'chequeName' => $this->module->chequeName, 'chequeAddress' => Tools::nl2br($this->module->address), 'this_path' => $this->module->getPathUri(), 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->module->name.'/' )); $this->setTemplate('payment_execution.tpl'); } } |
Le
...
template
...
payment_execution.tpl
...
appelé
...
dans
...
ce
...
controller
...
doit
...
être
...
placé
...
de
...
la
...
manière
...
suivante
...
:
...
/modules/cheque/views/templates/front/payment_execution.tpl
...
Avec
...
l'url
...
http://localhost/prestashop-15x/index.php?fc=module&module=cheque&controller=payment,
...
PrestaShop
...
chargera
...
automatiquement
...
le
...
controller
...
si
...
il
...
est
...
bien
...
placé
...
et
...
bien
...
nommé.
...
D'une
...
manière
...
générale,
...
il
...
est
...
conseillé
...
que
...
l'architecture
...
des
...
modules
...
doit
...
ressembler
...
à
...
ceci
...
en
...
1.5
Code Block |
---|
/config.xml (créé automatiquement par PrestaShop lors du chargement de la page modules) /monmodule.php /monmodule.jpg (logo 16 x 16 pour les versions PrestaShop 1.4 et inférieures) /monmodule.png (logo 32 x 32 pour la version PrestaShop 1.5) /controllers/ /controllers/front/monfichier.php (fonctionnement vu juste au dessus) /translations/ /translations/fr.php (fichier langue française créé automatiquement lorsque vous le traduisez dans le back office) /translations/de.php (fichier langue allemande créé automatiquement lorsque vous le traduisez dans le back office) /translations/ etc… /views/ /views/css/ (pour placer tous les fichiers css) /views/js/ (pour placer les fichiers js) /views/templates/front/ (pour placer les fichiers tpl qui sont utilisés par les controllers du module) /views/templates/hooks/ (pour placer les fichiers tpl qui sont utilisés par le module directement, pour ces tpl il est également possible de les placer à la racine pour la rétrocompatibilité). h3. |
Multishop
...
Feature
...
Si
...
votre
...
module
...
ne
...
fait
...
qu'utiliser
...
des
...
Configuration::get
...
et
...
Configuration::updateValue
...
pour
...
stocker
...
des
...
données,
...
alors
...
il
...
est
...
déjà
...
compatible
...
multiboutique.
...
Si
...
votre
...
module
...
créé
...
des
...
tables
...
de
...
données
...
spécifiques
...
à
...
son
...
fonctionnement,
...
il
...
faut
...
penser
...
à
...
ajouter
...
une
...
ligne
...
id_shop
...
que
...
vous
...
pourrez
...
remplir
...
avec
...
l'id
...
shop
...
du
...
content
...
lors
...
des
...
insertions
...
en
...
base.
...
Un
...
module
...
dit
...
"non
...
compatible"
...
multiboutique,
...
est
...
un
...
module
...
qui
...
aura
...
une
...
seule
...
configuration
...
pour
...
toutes
...
les
...
boutiques.
...
Cela
...
n'empêchera
...
donc
...
pas
...
son
...
bon
...
fonctionnement.
...
Addons Webservice
Vous l'avez
...
surement
...
remarqué
...
beaucoup
...
de
...
modules
...
natifs
...
(tels
...
que
...
PayPal)
...
ne
...
sont
...
plus
...
présents
...
physiquement
...
en
...
1.5
...
La
...
liste
...
des
...
modules
...
natifs
...
est
...
récupéré
...
via
...
webservices
...
avec
...
PrestaShop
...
Addons
...
et
...
varie
...
selon
...
le
...
pays
...
par
...
défaut
...
de
...
votre
...
boutique
...
(ainsi
...
les
...
modules
...
qui
...
vous
...
sont
...
proposés
...
sont
...
en
...
rapport
...
avec
...
votre
...
pays).
...
Lors
...
du
...
clic
...
sur
...
le
...
bouton
...
"install",
...
PrestaShop
...
récupère
...
automatiquement
...
la
...
dernière
...
version
...
du
...
module
...
vous
...
permettant
...
ainsi
...
de
...
bénéficier
...
des
...
nouvelles
...
fonctionnalités
...
du
...
module
...
sans
...
avoir
...
à
...
le
...
mettre
...
à
...
jour
...
manuellement
...
par
...
la
...
suite.
...
Update System
Si il s'agit
...
d'un
...
module
...
présent
...
sur
...
Addons
...
(un
...
module
...
acheté
...
ou
...
un
...
module
...
natif),
...
PrestaShop
...
proposera
...
un
...
bouton
...
"Mise
...
à
...
jour"
...
au
...
niveau
...
du
...
module
...
et
...
il
...
sera
...
alors
...
possible
...
de
...
mettre
...
à
...
jour
...
le
...
module
...
en
...
un
...
clic.
...
Le
...
bouton
...
apparait
...
aussi
...
si
...
vous
...
faites
...
une
...
mise
...
à
...
jour
...
du
...
module
...
en
...
uploadant
...
le
...
zip
...
manuellement
...
et
...
que
...
PrestaShop
...
détecte
...
que
...
la
...
version
...
a
...
changé.
...
Il
...
est
...
également
...
possible
...
de
...
faire
...
des
...
fichiers
...
d'upgrade
...
:
...
Créer
...
un
...
répertoire
...
/upgrade/
...
et
...
placer
...
vos
...
fichiers
...
d'upgrade
...
à
...
l'intérieur
...
sous
...
la
...
forme
...
install-VersionModule.php
...
//
...
Code
...
Le
...
fichier
...
install-1.8.0.php
...
devra
...
être
...
construit
...
de
...
la
...
manière
...
suivante
...
:
Code Block |
---|
<?php
// File Example for upgrade
if (!defined('_PS_VERSION_'))
exit;
// object module ($this) available
function upgrade_module_1_8_0($object)
{
}
|
//
...
Code
...
Par
...
exemple
...
si
...
le
...
répertoire
...
contient
...
les
...
fichiers
...
suivants
...
:
...
install-1.8.0.php
...
install-1.8.1.php
...
install-1.8.2.php
...
install-1.8.3.php
...
Et
...
que
...
vous
...
passez
...
de
...
la
...
version
...
1.8.1
...
à
...
la
...
version
...
1.8.3,
...
seuls
...
les
...
fichiers
...
install-1.8.2.php
...
et
...
install-1.8.3.php
...
seront
...
appelés
Theme API
Info |
---|
Coming soon... {info} |