Child pages
  • New Developers Features In PrestaShop 1.5

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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}