Merge branch 'master' of git://github.com/thelia/thelia
* 'master' of git://github.com/thelia/thelia: undo removing Response::prepare call HttpCache can not be activated as default remove specific code testing esi integration create smarty tag for smarty renderer remove Thelia ResponseListener add new route for testing esi tag tweak httpFoundation cache part for compatibility with Thelia\HttpFoundation part add httpcache into index_dev.php file start using symfony 2 reverse proxy update wiki url in composer file create smarty tag for smarty renderer remove Thelia ResponseListener add new route for testing esi tag Added some translations in the Customer Creation Form tweak httpFoundation cache part for compatibility with Thelia\HttpFoundation part add httpcache into index_dev.php file start using symfony 2 reverse proxy
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"homepage" : "http://thelia.net/v2",
|
"homepage" : "http://thelia.net/v2",
|
||||||
"support" : {
|
"support" : {
|
||||||
"forum" : "http://thelia.net/forum",
|
"forum" : "http://thelia.net/forum",
|
||||||
"wiki" : "http://thelia.net/wiki"
|
"wiki" : "http://doc.thelia.net"
|
||||||
},
|
},
|
||||||
"require":{
|
"require":{
|
||||||
"php": ">=5.4",
|
"php": ">=5.4",
|
||||||
|
|||||||
2
composer.lock
generated
2
composer.lock
generated
@@ -3,7 +3,7 @@
|
|||||||
"This file locks the dependencies of your project to a known state",
|
"This file locks the dependencies of your project to a known state",
|
||||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||||
],
|
],
|
||||||
"hash": "009aced8b279e1c14558460fff2cc993",
|
"hash": "6dee359d61c06345d0e4cc045b19dc4e",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "ensepar/html2pdf",
|
"name": "ensepar/html2pdf",
|
||||||
|
|||||||
@@ -63,8 +63,6 @@ class ModuleActivateCommand extends BaseModuleGenerate
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
new \TheliaDebugBar\TheliaDebugBar();
|
|
||||||
|
|
||||||
$moduleReflection = new \ReflectionClass($module->getFullNamespace());
|
$moduleReflection = new \ReflectionClass($module->getFullNamespace());
|
||||||
|
|
||||||
$moduleInstance = $moduleReflection->newInstance();
|
$moduleInstance = $moduleReflection->newInstance();
|
||||||
|
|||||||
@@ -4,12 +4,6 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
|
xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
|
||||||
|
|
||||||
<parameters>
|
|
||||||
<parameter key="thelia.actionEvent" type="collection">
|
|
||||||
|
|
||||||
</parameter>
|
|
||||||
</parameters>
|
|
||||||
|
|
||||||
<services>
|
<services>
|
||||||
|
|
||||||
<service id="thelia.action.cart" class="Thelia\Action\Cart">
|
<service id="thelia.action.cart" class="Thelia\Action\Cart">
|
||||||
|
|||||||
@@ -4,11 +4,15 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
|
xsi:schemaLocation="http://thelia.net/schema/dic/config http://thelia.net/schema/dic/config/thelia-1.0.xsd">
|
||||||
|
|
||||||
|
<parameters>
|
||||||
|
<parameter key="esi.class">Symfony\Component\HttpKernel\HttpCache\Esi</parameter>
|
||||||
|
<parameter key="esi_listener.class">Symfony\Component\HttpKernel\EventListener\EsiListener</parameter>
|
||||||
|
<parameter key="fragment.renderer.esi.class">Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer</parameter>
|
||||||
|
<parameter key="fragment.renderer.inline.class">Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer</parameter>
|
||||||
|
</parameters>
|
||||||
|
|
||||||
<services>
|
<services>
|
||||||
|
|
||||||
<!-- URL maganement -->
|
<!-- URL maganement -->
|
||||||
|
|
||||||
<service id="thelia.url.manager" class="Thelia\Tools\URL">
|
<service id="thelia.url.manager" class="Thelia\Tools\URL">
|
||||||
<argument type="service" id="service_container" />
|
<argument type="service" id="service_container" />
|
||||||
</service>
|
</service>
|
||||||
@@ -17,6 +21,20 @@
|
|||||||
<argument type="service" id="service_container" />
|
<argument type="service" id="service_container" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service id="esi" class="%esi.class%" />
|
||||||
|
|
||||||
|
<service id="esi_listener" class="%esi_listener.class%">
|
||||||
|
<tag name="kernel.event_subscriber" />
|
||||||
|
<argument type="service" id="esi" on-invalid="ignore" />
|
||||||
|
</service>
|
||||||
|
<service id="fragment.renderer.inline" class="%fragment.renderer.inline.class%">
|
||||||
|
<argument type="service" id="http_kernel" />
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service id="fragment.renderer.esi" class="%fragment.renderer.esi.class%">
|
||||||
|
<argument type="service" id="esi" />
|
||||||
|
<argument type="service" id="fragment.renderer.inline" />
|
||||||
|
</service>
|
||||||
<!--
|
<!--
|
||||||
A ControllerResolver that supports "a:b:c", "service:method" and class::method" notations,
|
A ControllerResolver that supports "a:b:c", "service:method" and class::method" notations,
|
||||||
thus allowing the definition of controllers as service (see http://symfony.com/fr/doc/current/cookbook/controller/service.html)
|
thus allowing the definition of controllers as service (see http://symfony.com/fr/doc/current/cookbook/controller/service.html)
|
||||||
@@ -70,8 +88,6 @@
|
|||||||
<service id="mailer" class="Thelia\Mailer\MailerFactory">
|
<service id="mailer" class="Thelia\Mailer\MailerFactory">
|
||||||
<argument type="service" id="event_dispatcher"/>
|
<argument type="service" id="event_dispatcher"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
|
||||||
</services>
|
</services>
|
||||||
|
|
||||||
</config>
|
</config>
|
||||||
|
|||||||
@@ -91,7 +91,11 @@
|
|||||||
<argument type="service" id="request" />
|
<argument type="service" id="request" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service id="smarty.plugin.esi" class="Thelia\Core\Template\Smarty\Plugins\Esi" scope="request">
|
||||||
|
<tag name="thelia.parser.register_plugin"/>
|
||||||
|
<argument type="service" id="fragment.renderer.esi" />
|
||||||
|
<argument type="service" id="request" />
|
||||||
|
</service>
|
||||||
|
|
||||||
</services>
|
</services>
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
namespace Thelia\Core\Bundle;
|
namespace Thelia\Core\Bundle;
|
||||||
|
|
||||||
|
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
|
||||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
use Symfony\Component\DependencyInjection\Scope;
|
use Symfony\Component\DependencyInjection\Scope;
|
||||||
@@ -61,7 +62,7 @@ class TheliaBundle extends Bundle
|
|||||||
|
|
||||||
$container
|
$container
|
||||||
->addCompilerPass(new TranslatorPass())
|
->addCompilerPass(new TranslatorPass())
|
||||||
->addCompilerPass(new RegisterListenersPass())
|
->addCompilerPass(new RegisterListenersPass(), PassConfig::TYPE_AFTER_REMOVING)
|
||||||
->addCompilerPass(new RegisterParserPluginPass())
|
->addCompilerPass(new RegisterParserPluginPass())
|
||||||
->addCompilerPass(new RegisterRouterPass())
|
->addCompilerPass(new RegisterRouterPass())
|
||||||
->addCompilerPass(new RegisterCouponPass())
|
->addCompilerPass(new RegisterCouponPass())
|
||||||
|
|||||||
@@ -85,19 +85,11 @@ class ViewListener implements EventSubscriberInterface
|
|||||||
$content = $parser->render($request->attributes->get('_view').".html");
|
$content = $parser->render($request->attributes->get('_view').".html");
|
||||||
|
|
||||||
if ($content instanceof Response) {
|
if ($content instanceof Response) {
|
||||||
$response = $content;$event->setResponse($content);
|
$response = $content;
|
||||||
} else {
|
} else {
|
||||||
$response = new Response($content, $parser->getStatus() ?: 200);
|
$response = new Response($content, $parser->getStatus() ?: 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* $response->setCache(array(
|
|
||||||
'last_modified' => new \DateTime(),
|
|
||||||
'max_age' => 600,
|
|
||||||
's_maxage' => 600,
|
|
||||||
'private' => false,
|
|
||||||
'public' => true,
|
|
||||||
));*/
|
|
||||||
|
|
||||||
$event->setResponse($response);
|
$event->setResponse($response);
|
||||||
} catch (ResourceNotFoundException $e) {
|
} catch (ResourceNotFoundException $e) {
|
||||||
throw new NotFoundHttpException();
|
throw new NotFoundHttpException();
|
||||||
|
|||||||
71
core/lib/Thelia/Core/HttpKernel/HttpCache/HttpCache.php
Normal file
71
core/lib/Thelia/Core/HttpKernel/HttpCache/HttpCache.php
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
|
||||||
|
namespace Thelia\Core\HttpKernel\HttpCache;
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpKernel\HttpCache\Esi;
|
||||||
|
use Symfony\Component\HttpKernel\HttpCache\HttpCache as BaseHttpCache;
|
||||||
|
use Symfony\Component\HttpKernel\HttpCache\Store;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
|
|
||||||
|
use Thelia\Core\HttpFoundation\Request as TheliaRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class HttpCache
|
||||||
|
* @package Thelia\Core\HttpKernel\HttpCache
|
||||||
|
* @author manuel raynaud <mraynaud@openstudio.fr>
|
||||||
|
*/
|
||||||
|
class HttpCache extends BaseHttpCache implements HttpKernelInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct(HttpKernelInterface $kernel, $options = array())
|
||||||
|
{
|
||||||
|
parent::__construct(
|
||||||
|
$kernel,
|
||||||
|
new Store($kernel->getCacheDir().'/http_cache'),
|
||||||
|
new Esi(),
|
||||||
|
array_merge(
|
||||||
|
array('debug' => $kernel->isDebug()),
|
||||||
|
$options
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
|
||||||
|
{
|
||||||
|
if (!($request instanceof \Thelia\Core\HttpFoundation\Request)) {
|
||||||
|
$request = TheliaRequest::create(
|
||||||
|
$request->getUri(),
|
||||||
|
$request->getMethod(),
|
||||||
|
$request->getMethod() == 'GET' ? $request->query->all() : $request->request->all(),
|
||||||
|
$request->cookies->all(),
|
||||||
|
$request->files->all(),
|
||||||
|
$request->server->all(),
|
||||||
|
$request->getContent()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return parent::handle($request, $type, $catch);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
82
core/lib/Thelia/Core/Template/Smarty/Plugins/Esi.php
Normal file
82
core/lib/Thelia/Core/Template/Smarty/Plugins/Esi.php
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
|
||||||
|
namespace Thelia\Core\Template\Smarty\Plugins;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer;
|
||||||
|
use Thelia\Core\Template\Smarty\AbstractSmartyPlugin;
|
||||||
|
use Thelia\Core\Template\Smarty\an;
|
||||||
|
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Esi
|
||||||
|
* @package Thelia\Core\Template\Smarty\Plugins
|
||||||
|
* @author Manuel Raynaud <mraynaud@openstudio.fr>
|
||||||
|
*/
|
||||||
|
class Esi extends AbstractSmartyPlugin
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $esiFragmentRender;
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
public function __construct(EsiFragmentRenderer $esiFragmentRenderer, Request $request)
|
||||||
|
{
|
||||||
|
$this->esiFragmentRender = $esiFragmentRenderer;
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderEsi($params, $template = null)
|
||||||
|
{
|
||||||
|
$path = $this->getParam($params, 'path');
|
||||||
|
$alt = $this->getParam($params, 'alt');
|
||||||
|
$ignore_errors = $this->getParam($params, 'ignore_errors');
|
||||||
|
$comment = $this->getParam($params, 'comment');
|
||||||
|
|
||||||
|
if(null === $path) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = $this->esiFragmentRender->render($path, $this->request, array(
|
||||||
|
'alt' => $alt,
|
||||||
|
'ignore_errors' => $ignore_errors,
|
||||||
|
'comment' => $comment
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!$response->isSuccessful()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response->getContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return an array of SmartyPluginDescriptor
|
||||||
|
*/
|
||||||
|
public function getPluginDescriptors()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
new SmartyPluginDescriptor('function', 'render_esi', $this, 'renderEsi')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -43,6 +43,7 @@ use Thelia\Model;
|
|||||||
|
|
||||||
class TheliaHttpKernel extends HttpKernel
|
class TheliaHttpKernel extends HttpKernel
|
||||||
{
|
{
|
||||||
|
protected static $session;
|
||||||
|
|
||||||
protected $container;
|
protected $container;
|
||||||
|
|
||||||
@@ -79,8 +80,11 @@ class TheliaHttpKernel extends HttpKernel
|
|||||||
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
|
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
|
||||||
{
|
{
|
||||||
//$request->headers->set('X-Php-Ob-Level', ob_get_level());
|
//$request->headers->set('X-Php-Ob-Level', ob_get_level());
|
||||||
$request = $this->initSession($request);
|
if ($type == HttpKernelInterface::MASTER_REQUEST) {
|
||||||
$this->initParam($request);
|
$request = $this->initSession($request);
|
||||||
|
$this->initParam($request);
|
||||||
|
}
|
||||||
|
|
||||||
$this->container->enterScope('request');
|
$this->container->enterScope('request');
|
||||||
$this->container->set('request', $request, 'request');
|
$this->container->set('request', $request, 'request');
|
||||||
|
|
||||||
@@ -211,26 +215,29 @@ class TheliaHttpKernel extends HttpKernel
|
|||||||
|
|
||||||
protected function initSession(Request $request)
|
protected function initSession(Request $request)
|
||||||
{
|
{
|
||||||
|
if(null === self::$session) {
|
||||||
|
$storage = new Session\Storage\NativeSessionStorage();
|
||||||
|
|
||||||
$storage = new Session\Storage\NativeSessionStorage();
|
if (Model\ConfigQuery::read("session_config.default")) {
|
||||||
|
$storage->setSaveHandler(new Session\Storage\Handler\NativeFileSessionHandler(Model\ConfigQuery::read("session_config.save_path", THELIA_ROOT . '/local/session/')));
|
||||||
|
} else {
|
||||||
|
$handlerString = Model\ConfigQuery::read("session_config.handlers", 'Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler');
|
||||||
|
|
||||||
if (Model\ConfigQuery::read("session_config.default")) {
|
$handler = new $handlerString;
|
||||||
$storage->setSaveHandler(new Session\Storage\Handler\NativeFileSessionHandler(Model\ConfigQuery::read("session_config.save_path", THELIA_LOCAL_DIR . 'session/')));
|
|
||||||
|
$storage->setSaveHandler($handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Model\ConfigQuery::read("session_config.config", null)) {
|
||||||
|
$storage->setOptions(json_decode(Model\ConfigQuery::read("session_config.config")));
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$session = $session = new \Thelia\Core\HttpFoundation\Session\Session($storage);
|
||||||
} else {
|
} else {
|
||||||
$handlerString = Model\ConfigQuery::read("session_config.handlers", 'Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler');
|
$session = self::$session;
|
||||||
|
|
||||||
$handler = new $handlerString;
|
|
||||||
|
|
||||||
$storage->setSaveHandler($handler);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Model\ConfigQuery::read("session_config.config", null)) {
|
|
||||||
$storage->setOptions(json_decode(Model\ConfigQuery::read("session_config.config")));
|
|
||||||
}
|
|
||||||
|
|
||||||
$session = new \Thelia\Core\HttpFoundation\Session\Session($storage);
|
|
||||||
$session->start();
|
$session->start();
|
||||||
|
|
||||||
$request->setSession($session);
|
$request->setSession($session);
|
||||||
|
|
||||||
return $request;
|
return $request;
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class CustomerCreateForm extends AddressCreateForm
|
|||||||
array($this, "verifyPasswordField")
|
array($this, "verifyPasswordField")
|
||||||
)))
|
)))
|
||||||
),
|
),
|
||||||
"label" => "Password confirmation",
|
"label" => Translator::getInstance()->trans("Password confirmation"),
|
||||||
"label_attr" => array(
|
"label_attr" => array(
|
||||||
"for" => "password_confirmation"
|
"for" => "password_confirmation"
|
||||||
)
|
)
|
||||||
@@ -102,6 +102,7 @@ class CustomerCreateForm extends AddressCreateForm
|
|||||||
"constraints" => array(
|
"constraints" => array(
|
||||||
new Constraints\True(array("message" => "Please accept the Terms and conditions in order to register."))
|
new Constraints\True(array("message" => "Please accept the Terms and conditions in order to register."))
|
||||||
),
|
),
|
||||||
|
"label"=>"Test",
|
||||||
"label_attr" => array(
|
"label_attr" => array(
|
||||||
"for" => "agreed"
|
"for" => "agreed"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -8,12 +8,12 @@
|
|||||||
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
||||||
<default key="_view">includes/mini-cart</default>
|
<default key="_view">includes/mini-cart</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="ajax.addCartMessage" path="/ajax/addCartMessage">
|
<route id="ajax.addCartMessage" path="/ajax/addCartMessage">
|
||||||
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
<default key="_controller">Thelia\Controller\Front\DefaultController::noAction</default>
|
||||||
<default key="_view">includes/addedToCart</default>
|
<default key="_view">includes/addedToCart</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
|
|
||||||
<!-- Register -->
|
<!-- Register -->
|
||||||
<route id="customer.create.process" path="/register" methods="post">
|
<route id="customer.create.process" path="/register" methods="post">
|
||||||
<default key="_controller">Front\Controller\CustomerController::createAction</default>
|
<default key="_controller">Front\Controller\CustomerController::createAction</default>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ return array(
|
|||||||
'Address %nb' => 'Adresse n°',
|
'Address %nb' => 'Adresse n°',
|
||||||
'Address Update' => 'Mise à jour de l\'adresse',
|
'Address Update' => 'Mise à jour de l\'adresse',
|
||||||
'Address' => 'Adresse',
|
'Address' => 'Adresse',
|
||||||
|
'Address Line 2'=>'Complément d\'adresse',
|
||||||
'Amount' => 'Montant',
|
'Amount' => 'Montant',
|
||||||
'Availability' => 'Disponibilité',
|
'Availability' => 'Disponibilité',
|
||||||
'Available' => 'Disponible',
|
'Available' => 'Disponible',
|
||||||
@@ -22,6 +23,7 @@ return array(
|
|||||||
'Cancel' => 'Annuler',
|
'Cancel' => 'Annuler',
|
||||||
'Cart' => 'Panier',
|
'Cart' => 'Panier',
|
||||||
'Categories' => 'Catégories',
|
'Categories' => 'Catégories',
|
||||||
|
'Cellphone'=> 'Portable',
|
||||||
'Change address' => 'Changer d\'adresse',
|
'Change address' => 'Changer d\'adresse',
|
||||||
'Change my account information' => 'Modifier mes informations personnelles',
|
'Change my account information' => 'Modifier mes informations personnelles',
|
||||||
'Change my password' => 'Changer mon mot de passe',
|
'Change my password' => 'Changer mon mot de passe',
|
||||||
@@ -32,6 +34,7 @@ return array(
|
|||||||
'Choose your delivery method' => 'Choisissez votre moyen de livraison',
|
'Choose your delivery method' => 'Choisissez votre moyen de livraison',
|
||||||
'Choose your payment method' => 'Choisissez voter moyen de paiement',
|
'Choose your payment method' => 'Choisissez voter moyen de paiement',
|
||||||
'Code :' => 'Code',
|
'Code :' => 'Code',
|
||||||
|
'Company Name'=>'Entreprise',
|
||||||
'Complementary address' => 'Résidence secondaire',
|
'Complementary address' => 'Résidence secondaire',
|
||||||
'Contact Us' => 'Contactez-nous',
|
'Contact Us' => 'Contactez-nous',
|
||||||
'Continue Shopping' => 'Continuer mes achats',
|
'Continue Shopping' => 'Continuer mes achats',
|
||||||
@@ -53,6 +56,7 @@ return array(
|
|||||||
'Edit this address' => 'Editer cette adresse',
|
'Edit this address' => 'Editer cette adresse',
|
||||||
'Edit' => 'Editer',
|
'Edit' => 'Editer',
|
||||||
'Email address' => 'Adresse e-mail',
|
'Email address' => 'Adresse e-mail',
|
||||||
|
'Email Address' => 'Adresse e-mail',
|
||||||
'Follow us' => 'Suivez-nous',
|
'Follow us' => 'Suivez-nous',
|
||||||
'Forgot your Password?' => 'Mot de passé oublié ?',
|
'Forgot your Password?' => 'Mot de passé oublié ?',
|
||||||
'Free shipping' => 'Livraison gratuite',
|
'Free shipping' => 'Livraison gratuite',
|
||||||
@@ -63,6 +67,7 @@ return array(
|
|||||||
'In Stock' => 'Disponible',
|
'In Stock' => 'Disponible',
|
||||||
'instead of' => 'au lieu de',
|
'instead of' => 'au lieu de',
|
||||||
'Item(s)' => 'Produit(s)',
|
'Item(s)' => 'Produit(s)',
|
||||||
|
'I would like to receive the newsletter or the latest news.' => 'Je veux m\'inscrire à la newsletter pour rester informé.',
|
||||||
'Language:' => 'Langue',
|
'Language:' => 'Langue',
|
||||||
'Latest articles' => 'Nouveaux articles',
|
'Latest articles' => 'Nouveaux articles',
|
||||||
'Latest products' => 'Derniers produits',
|
'Latest products' => 'Derniers produits',
|
||||||
@@ -106,6 +111,7 @@ return array(
|
|||||||
'Pagination' => 'Pagination',
|
'Pagination' => 'Pagination',
|
||||||
'Password Forgotten' => 'Mot de passe oublié',
|
'Password Forgotten' => 'Mot de passe oublié',
|
||||||
'Password' => 'Mot de passe',
|
'Password' => 'Mot de passe',
|
||||||
|
'Password confirmation'=>"Confirmer le mot de passe",
|
||||||
'per page' => 'par page',
|
'per page' => 'par page',
|
||||||
'Personal Information' => 'Informations personnelles',
|
'Personal Information' => 'Informations personnelles',
|
||||||
'Placeholder address label' => 'Maison, Domicile, Travail...',
|
'Placeholder address label' => 'Maison, Domicile, Travail...',
|
||||||
@@ -170,6 +176,7 @@ return array(
|
|||||||
'Sort By' => 'Trier par',
|
'Sort By' => 'Trier par',
|
||||||
'Special Price:' => 'Prix en promotion :',
|
'Special Price:' => 'Prix en promotion :',
|
||||||
'Status' => 'Etat',
|
'Status' => 'Etat',
|
||||||
|
'Street Address'=>"Adresse",
|
||||||
'Subscribe' => 'Inscription',
|
'Subscribe' => 'Inscription',
|
||||||
'Tax Inclusive' => 'TVA incluse',
|
'Tax Inclusive' => 'TVA incluse',
|
||||||
'Thank you for the trust you place in us.' => 'Merci pour votre confiance. ',
|
'Thank you for the trust you place in us.' => 'Merci pour votre confiance. ',
|
||||||
|
|||||||
@@ -265,7 +265,7 @@
|
|||||||
<div class="control-input">
|
<div class="control-input">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label class="control-label" for="{$label_attr.for}">
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if} {if $required} aria-required="true" required{/if}>I've read and agreed on <a href="#">Terms & Conditions</a></a>.
|
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if} {if $required} aria-required="true" required{/if}>I've read and agreed on <a href="#">Terms & Conditions</a>.
|
||||||
</label>
|
</label>
|
||||||
{if $error }
|
{if $error }
|
||||||
<span class="help-block">{$message}</span>
|
<span class="help-block">{$message}</span>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
use Thelia\Core\HttpKernel\HttpCache\HttpCache;
|
||||||
use Thelia\Core\Thelia;
|
use Thelia\Core\Thelia;
|
||||||
use Thelia\Core\HttpFoundation\Request;
|
use Thelia\Core\HttpFoundation\Request;
|
||||||
|
|
||||||
@@ -10,7 +11,7 @@ require __DIR__ . '/../core/bootstrap.php';
|
|||||||
$request = Request::createFromGlobals();
|
$request = Request::createFromGlobals();
|
||||||
|
|
||||||
$thelia = new Thelia("prod", false);
|
$thelia = new Thelia("prod", false);
|
||||||
|
//$thelia = new HttpCache($thelia);
|
||||||
$response = $thelia->handle($request)->prepare($request)->send();
|
$response = $thelia->handle($request)->prepare($request)->send();
|
||||||
|
|
||||||
$thelia->terminate($request, $response);
|
$thelia->terminate($request, $response);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
use Thelia\Core\Thelia;
|
use Thelia\Core\Thelia;
|
||||||
use Thelia\Core\HttpFoundation\Response;
|
use Thelia\Core\HttpFoundation\Response;
|
||||||
use Thelia\Core\HttpFoundation\Request;
|
use Thelia\Core\HttpFoundation\Request;
|
||||||
|
use Thelia\Core\HttpKernel\HttpCache\HttpCache;
|
||||||
|
|
||||||
//use Symfony\Component\DependencyInjection;
|
//use Symfony\Component\DependencyInjection;
|
||||||
|
|
||||||
@@ -45,6 +46,7 @@ if ( false === in_array($request->getClientIp(), $trustedIp)) {
|
|||||||
} else {
|
} else {
|
||||||
$response = $thelia->handle($request)->prepare($request)->send();
|
$response = $thelia->handle($request)->prepare($request)->send();
|
||||||
$thelia->terminate($request, $response);
|
$thelia->terminate($request, $response);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user