Merge branch 'master' of github.com:thelia/thelia

This commit is contained in:
Etienne Roudeix
2013-11-08 11:26:22 +01:00
40 changed files with 1168 additions and 1071 deletions

View File

@@ -7,7 +7,6 @@ Thelia
[Thelia](http://thelia.net/v2) is an open source tool for creating e-business websites and managing online content. This software is published under GPL. [Thelia](http://thelia.net/v2) is an open source tool for creating e-business websites and managing online content. This software is published under GPL.
Here is the current developping next major version. You can download this version for testing or see the code.
Here is the most recent developed code for the next major version (v2). You can download this version for testing or having a look on the code (or anything you wish, respecting GPL). See http://thelia.net/v2 web site for more information. Here is the most recent developed code for the next major version (v2). You can download this version for testing or having a look on the code (or anything you wish, respecting GPL). See http://thelia.net/v2 web site for more information.
Most part of the code can possibly change, a large part will be refactor soon, graphical setup does not exist yet. Most part of the code can possibly change, a large part will be refactor soon, graphical setup does not exist yet.

View File

@@ -15,7 +15,7 @@ define('DS' , DIRECTORY_SEPARATOR);
$loader = require __DIR__ . "/vendor/autoload.php"; $loader = require __DIR__ . "/vendor/autoload.php";
if (!file_exists(THELIA_ROOT . '/local/config/database.yml') && !defined('THELIA_INSTALL_MODE')) { if (!file_exists(THELIA_CONF_DIR . 'database.yml') && !defined('THELIA_INSTALL_MODE')) {
$sapi = php_sapi_name(); $sapi = php_sapi_name();
if (substr($sapi, 0, 3) == 'cli') { if (substr($sapi, 0, 3) == 'cli') {
define('THELIA_INSTALL_MODE', true); define('THELIA_INSTALL_MODE', true);
@@ -24,4 +24,4 @@ if (!file_exists(THELIA_ROOT . '/local/config/database.yml') && !defined('THELIA
header('location: '.$request->getSchemeAndHttpHost() . '/install'); header('location: '.$request->getSchemeAndHttpHost() . '/install');
exit; exit;
} }
} }

View File

@@ -180,8 +180,8 @@ class Install extends ContainerAwareCommand
{ {
$fs = new Filesystem(); $fs = new Filesystem();
$sampleConfigFile = THELIA_ROOT . "/local/config/database.yml.sample"; $sampleConfigFile = THELIA_CONF_DIR . "database.yml.sample";
$configFile = THELIA_ROOT . "/local/config/database.yml"; $configFile = THELIA_CONF_DIR . "database.yml";
$fs->copy($sampleConfigFile, $configFile, true); $fs->copy($sampleConfigFile, $configFile, true);

View File

@@ -104,6 +104,24 @@ class CustomerController extends BaseFrontController
$this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent); $this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent);
$newCustomer = $customerCreateEvent->getCustomer();
// Newsletter
if (true === $form->get('newsletter')->getData()) {
$newsletterEmail = $newCustomer->getEmail();
$nlEvent = new NewsletterEvent($newsletterEmail, $this->getRequest()->getSession()->getLang()->getLocale());
$nlEvent->setFirstname($newCustomer->getFirstname());
$nlEvent->setLastname($newCustomer->getLastname());
// Security : Check if this new Email address already exist
if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) {
$nlEvent->setId($newsletter->getId());
$this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent);
} else {
$this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent);
}
}
$this->processLogin($customerCreateEvent->getCustomer()); $this->processLogin($customerCreateEvent->getCustomer());
$cart = $this->getCart($this->getRequest()); $cart = $this->getCart($this->getRequest());

View File

@@ -62,7 +62,7 @@ class TemplateHelper
public function getActiveFrontTemplate() { public function getActiveFrontTemplate() {
return new TemplateDefinition( return new TemplateDefinition(
ConfigQuery::read('active-admin-template', 'default'), ConfigQuery::read('active-front-template', 'default'),
TemplateDefinition::FRONT_OFFICE TemplateDefinition::FRONT_OFFICE
); );
} }
@@ -130,7 +130,7 @@ class TemplateHelper
*/ */
public function walkDir($directory, $walkMode, Translator $translator, $currentLocale, &$strings) { public function walkDir($directory, $walkMode, Translator $translator, $currentLocale, &$strings) {
$num_files = 0; $num_texts = 0;
if ($walkMode == self::WALK_MODE_PHP) { if ($walkMode == self::WALK_MODE_PHP) {
$prefix = '\-\>[\s]*trans[\s]*\('; $prefix = '\-\>[\s]*trans[\s]*\(';
@@ -155,7 +155,7 @@ class TemplateHelper
if ($fileInfo->isDot()) continue; if ($fileInfo->isDot()) continue;
if ($fileInfo->isDir()) $num_files += $this->walkDir($fileInfo->getPathName(), $walkMode, $translator, $currentLocale, $strings); if ($fileInfo->isDir()) $num_texts += $this->walkDir($fileInfo->getPathName(), $walkMode, $translator, $currentLocale, $strings);
if ($fileInfo->isFile()) { if ($fileInfo->isFile()) {
@@ -186,18 +186,19 @@ class TemplateHelper
$strings[$hash]['files'][] = $short_path; $strings[$hash]['files'][] = $short_path;
} }
} }
else else {
$num_files++; $num_texts++;
// remove \' // remove \'
$match = str_replace("\\'", "'", $match); $match = str_replace("\\'", "'", $match);
$strings[$hash] = array( $strings[$hash] = array(
'files' => array($short_path), 'files' => array($short_path),
'text' => $match, 'text' => $match,
'translation' => $translator->trans($match, array(), 'messages', $currentLocale, false), 'translation' => $translator->trans($match, array(), 'messages', $currentLocale, false),
'dollar' => strstr($match, '$') !== false 'dollar' => strstr($match, '$') !== false
); );
}
} }
} }
} }
@@ -205,7 +206,7 @@ class TemplateHelper
} }
} }
return $num_files; return $num_texts;
} catch (\UnexpectedValueException $ex) { } catch (\UnexpectedValueException $ex) {
echo $ex; echo $ex;

View File

@@ -75,7 +75,7 @@ class Thelia extends Kernel
} }
$definePropel = new DefinePropel(new DatabaseConfiguration(), $definePropel = new DefinePropel(new DatabaseConfiguration(),
Yaml::parse(THELIA_ROOT . '/local/config/database.yml')); Yaml::parse(THELIA_CONF_DIR . 'database.yml'));
$serviceContainer = Propel::getServiceContainer(); $serviceContainer = Propel::getServiceContainer();
$serviceContainer->setAdapterClass('thelia', 'mysql'); $serviceContainer->setAdapterClass('thelia', 'mysql');
$manager = new ConnectionManagerSingle(); $manager = new ConnectionManagerSingle();

View File

@@ -215,7 +215,7 @@ class TheliaHttpKernel extends HttpKernel
$storage = new Session\Storage\NativeSessionStorage(); $storage = new Session\Storage\NativeSessionStorage();
if (Model\ConfigQuery::read("session_config.default")) { 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/'))); $storage->setSaveHandler(new Session\Storage\Handler\NativeFileSessionHandler(Model\ConfigQuery::read("session_config.save_path", THELIA_LOCAL_DIR . 'session/')));
} else { } else {
$handlerString = Model\ConfigQuery::read("session_config.handlers", 'Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler'); $handlerString = Model\ConfigQuery::read("session_config.handlers", 'Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler');

View File

@@ -89,6 +89,14 @@ class CustomerCreateForm extends AddressCreateForm
"for" => "password_confirmation" "for" => "password_confirmation"
) )
)) ))
// Add Newsletter
->add("newsletter", "checkbox", array(
"label" => Translator::getInstance()->trans('I would like to receive the newsletter or the latest news.'),
"label_attr" => array(
"for" => "newsletter"
),
"required" => false
))
// Add terms & conditions // Add terms & conditions
->add("agreed", "checkbox", array( ->add("agreed", "checkbox", array(
"constraints" => array( "constraints" => array(

View File

@@ -55,16 +55,7 @@ class CustomerProfileUpdateForm extends CustomerCreateForm
->remove("password") ->remove("password")
->remove("password_confirm") ->remove("password_confirm")
// Remove Terms & conditions // Remove Terms & conditions
->remove("agreed") ->remove("agreed");
// Add Newsletter
->add("newsletter", "checkbox", array(
"label" => Translator::getInstance()->trans('I would like to receive the newsletter or the latest news.'),
"label_attr" => array(
"for" => "newsletter"
),
"required" => false
));
} }
/** /**

View File

@@ -83,7 +83,7 @@ class NewsletterForm extends BaseForm
{ {
$customer = NewsletterQuery::create()->findOneByEmail($value); $customer = NewsletterQuery::create()->findOneByEmail($value);
if ($customer) { if ($customer) {
$context->addViolation("You are already subscribed!"); $context->addViolation("You are already registered!");
} }
} }

View File

@@ -27,6 +27,8 @@ namespace Thelia\Module;
use Propel\Runtime\Connection\ConnectionInterface; use Propel\Runtime\Connection\ConnectionInterface;
use Propel\Runtime\Propel; use Propel\Runtime\Propel;
use Symfony\Component\DependencyInjection\ContainerAware; use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request;
use Thelia\Model\Map\ModuleTableMap; use Thelia\Model\Map\ModuleTableMap;
use Thelia\Model\ModuleI18nQuery; use Thelia\Model\ModuleI18nQuery;
use Thelia\Model\Map\ModuleImageTableMap; use Thelia\Model\Map\ModuleImageTableMap;
@@ -37,7 +39,8 @@ use Thelia\Model\Module;
use Thelia\Model\ModuleImage; use Thelia\Model\ModuleImage;
use Thelia\Model\ModuleQuery; use Thelia\Model\ModuleQuery;
abstract class BaseModule extends ContainerAware
class BaseModule extends ContainerAware implements BaseModuleInterface
{ {
const CLASSIC_MODULE_TYPE = 1; const CLASSIC_MODULE_TYPE = 1;
const DELIVERY_MODULE_TYPE = 2; const DELIVERY_MODULE_TYPE = 2;
@@ -48,10 +51,8 @@ abstract class BaseModule extends ContainerAware
protected $reflected; protected $reflected;
public function __construct() protected $dispatcher = null;
{ protected $request = null;
}
public function activate($moduleModel = null) public function activate($moduleModel = null)
{ {
@@ -102,7 +103,7 @@ abstract class BaseModule extends ContainerAware
public function hasContainer() public function hasContainer()
{ {
return null === $this->container; return null !== $this->container;
} }
public function getContainer() public function getContainer()
@@ -114,6 +115,41 @@ abstract class BaseModule extends ContainerAware
return $this->container; return $this->container;
} }
public function hasRequest() {
return null !== $this->request;
}
public function setRequest(Request $request) {
$this->request = $request;
}
public function getRequest() {
if ($this->hasRequest() === false) {
throw new \RuntimeException("Sorry, the request is not available in this context");
}
return $this->request;
}
public function hasDispatcher() {
return null !== $this->dispatcher;
}
public function setDispatcher(EventDispatcherInterface $dispatcher) {
$this->dispatcher = $dispatcher;
}
public function getDispatcher() {
if ($this->hasDispatcher() === false) {
throw new \RuntimeException("Sorry, the dispatcher is not available in this context");
}
return $this->dispatcher;
}
public function setTitle(Module $module, $titles) public function setTitle(Module $module, $titles)
{ {
if (is_array($titles)) { if (is_array($titles)) {
@@ -226,6 +262,7 @@ abstract class BaseModule extends ContainerAware
public function install(ConnectionInterface $con = null) public function install(ConnectionInterface $con = null)
{ {
// Implement this method to do something useful.
} }
public function preActivation(ConnectionInterface $con = null) public function preActivation(ConnectionInterface $con = null)
@@ -235,7 +272,7 @@ abstract class BaseModule extends ContainerAware
public function postActivation(ConnectionInterface $con = null) public function postActivation(ConnectionInterface $con = null)
{ {
// Implement this method to do something useful.
} }
public function preDeactivation(ConnectionInterface $con = null) public function preDeactivation(ConnectionInterface $con = null)
@@ -245,12 +282,11 @@ abstract class BaseModule extends ContainerAware
public function postDeactivation(ConnectionInterface $con = null) public function postDeactivation(ConnectionInterface $con = null)
{ {
// Implement this method to do something useful.
} }
public function destroy(ConnectionInterface $con = null) public function destroy(ConnectionInterface $con = null, $deleteModuleData = false)
{ {
// Implement this method to do something useful.
} }
}
}

View File

@@ -23,14 +23,21 @@
namespace Thelia\Module; namespace Thelia\Module;
use Propel\Runtime\Connection\ConnectionInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
interface BaseModuleInterface interface BaseModuleInterface
{ {
public function setRequest(Request $request); public function install(ConnectionInterface $con = null);
public function getRequest();
public function setDispatcher(EventDispatcherInterface $dispatcher); public function preActivation(ConnectionInterface $con = null);
public function getDispatcher();
public function postActivation(ConnectionInterface $con = null);
public function preDeactivation(ConnectionInterface $con = null);
public function postDeactivation(ConnectionInterface $con = null);
public function destroy(ConnectionInterface $con = null, $deleteModuleData = false);
} }

View File

@@ -41,6 +41,9 @@ class ModuleActivateCommandTest extends \PHPUnit_Framework_TestCase
$module = ModuleQuery::create()->findOne(); $module = ModuleQuery::create()->findOne();
if (null !== $module) { if (null !== $module) {
$prev_activation_status = $module->getActivate();
$application = new Application($this->getKernel()); $application = new Application($this->getKernel());
$module->setActivate(BaseModule::IS_NOT_ACTIVATED); $module->setActivate(BaseModule::IS_NOT_ACTIVATED);
@@ -58,7 +61,12 @@ class ModuleActivateCommandTest extends \PHPUnit_Framework_TestCase
"module" => $module->getCode(), "module" => $module->getCode(),
)); ));
$this->assertEquals(BaseModule::IS_ACTIVATED, ModuleQuery::create()->findPk($module->getId())->getActivate()); $activated = ModuleQuery::create()->findPk($module->getId())->getActivate();
// Restore activation status
$module->setActivate($prev_activation_status)->save();
$this->assertEquals(BaseModule::IS_ACTIVATED, $activated);
} }
} }

View File

@@ -7,7 +7,7 @@ INSERT INTO `lang`(`id`,`title`,`code`,`locale`,`url`,`date_format`,`time_format
INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updated_at`) VALUES INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updated_at`) VALUES
('session_config.default', '1', 1, 1, NOW(), NOW()), ('session_config.default', '1', 1, 1, NOW(), NOW()),
('verifyStock', '1', 0, 0, NOW(), NOW()), ('verifyStock', '1', 0, 0, NOW(), NOW()),
('active-template', 'default', 0, 0, NOW(), NOW()), ('active-front-template', 'default', 0, 0, NOW(), NOW()),
('active-admin-template', 'default', 0, 0, NOW(), NOW()), ('active-admin-template', 'default', 0, 0, NOW(), NOW()),
('active-pdf-template', 'default', 0, 0, NOW(), NOW()), ('active-pdf-template', 'default', 0, 0, NOW(), NOW()),
('default_lang_without_translation', '1', 1, 1, NOW(), NOW()), ('default_lang_without_translation', '1', 1, 1, NOW(), NOW()),

View File

@@ -79,7 +79,7 @@ return array (
'Address Line 2' => 'Adresse suite', 'Address Line 2' => 'Adresse suite',
'Additional address' => 'Adresse complémentaire', 'Additional address' => 'Adresse complémentaire',
'Address Line 3' => 'Adresse suite', 'Address Line 3' => 'Adresse suite',
'Zip code' => 'Code posta', 'Zip code' => 'Code postal',
'City' => 'Ville', 'City' => 'Ville',
'Country' => 'Pays', 'Country' => 'Pays',
'Email Address' => 'Adresse e-mail', 'Email Address' => 'Adresse e-mail',

View File

@@ -1,6 +1,6 @@
{extends file="admin-layout.tpl"} {extends file="admin-layout.tpl"}
{block name="page-title"}{intl l='Taxes rules'}{/block} {block name="page-title"}{intl l='Back-office users'}{/block}
{block name="check-resource"}admin.configuration.administrator{/block} {block name="check-resource"}admin.configuration.administrator{/block}
{block name="check-access"}view{/block} {block name="check-access"}view{/block}
@@ -9,12 +9,12 @@
<div> <div>
<div id="wrapper" class="container"> <div id="wrapper" class="container">
<div class="clearfix"> <div class="clearfix">
<ul class="breadcrumb"> <ul class="breadcrumb">
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li> <li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li> <li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li>
<li><a href="{url path='/admin/configuration/administrators'}">{intl l="Administrators"}</a></li> <li><a href="{url path='/admin/configuration/administrators'}">{intl l="Back-office users"}</a></li>
</ul> </ul>
</div> </div>
@@ -37,8 +37,8 @@
<thead> <thead>
<tr> <tr>
<th>{intl l="Login"}</th> <th>{intl l="Login"}</th>
<th>{intl l="FirstName"}</th> <th>{intl l="First Name"}</th>
<th>{intl l="LastName"}</th> <th>{intl l="Last Name"}</th>
<th>{intl l="Profile"}</th> <th>{intl l="Profile"}</th>
<th class="col-md-1">{intl l="Actions"}</th> <th class="col-md-1">{intl l="Actions"}</th>
</tr> </tr>
@@ -82,7 +82,7 @@
{/loop} {/loop}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>

View File

@@ -21,9 +21,9 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="general-block-decorator"> <div class="general-block-decorator">
<form action="" method=""> <form action="" method="">
<table class="table table-striped table-condensed table-left-aligned"> <table class="table table-striped table-condensed table-left-aligned">
<caption> <caption>
{intl l="Languages management"} {intl l="Languages management"}
@@ -98,13 +98,13 @@
<div class="form-group {if $error}has-error{/if}" > <div class="form-group {if $error}has-error{/if}" >
<label for="{$label_attr.for}" class="label-control">{intl l="If a translation is missing or incomplete :"}</label> <label for="{$label_attr.for}" class="label-control">{intl l="If a translation is missing or incomplete :"}</label>
<div class="input-group"> <div class="input-group">
<select name="{$name}" id="{$label_attr.for}" data-toggle="selectpicker"> <select name="{$name}" id="{$label_attr.for}" data-toggle="selectpicker" class="form-control">
{foreach $choices as $choice} {foreach $choices as $choice}
<option value="{$choice->value}" {if $lang_without_translation == $choice->value}selected="selected"{/if}>{$choice->label}</option> <option value="{$choice->value}" {if $lang_without_translation == $choice->value}selected="selected"{/if}>{$choice->label}</option>
{/foreach} {/foreach}
</select> </select>
<div class="input-group-btn"> <div class="input-group-btn">
<button type="submit" class="btn btn-default btn-primary"><span class="glyphicon glyphicon-check"></span></button> <button type="submit" class="btn btn-default btn-primary"><span class="glyphicon glyphicon-check"></span> {intl l='Save'}</button>
</div> </div>
</div> </div>
</div> </div>
@@ -115,7 +115,7 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="general-block-decorator clearfix"> <div class="general-block-decorator clearfix">
<div class="title title-without-tabs">{intl l="Using a domain or subdomain for each language"}</div> <div class="title title-without-tabs">{intl l="Using a domain or subdomain for each language"}</div>
{form name="thelia.lang.url"} {form name="thelia.lang.url"}
<form action="{url path="/admin/configuration/languages/updateUrl"}" method="post"> <form action="{url path="/admin/configuration/languages/updateUrl"}" method="post">

View File

@@ -1,195 +1,205 @@
<?php <?php
return array( return array(
'404' => '404', '%nb Item' => '%nb Item',
'The page cannot be found' => 'The page cannot be found', '%nb Items' => '%nb Items',
'Account' => 'Account', '+ View All' => '+ View All',
'Change Password' => 'Change Password', '404' => '404',
'Login Information' => 'Login Information', 'A summary of your order email has been sent to the following address' => 'A summary of your order email has been sent to the following address',
'Update Profile' => 'Update Profile', 'Account' => 'Account',
'Personal Informations' => 'Personal Informations', 'Add a new address' => 'Add a new address',
'Select Title' => 'Select Title', 'Add to cart' => 'Add to cart',
'Placeholder firstname' => 'John', 'Additional Info' => 'Additional Info',
'Placeholder lastname' => 'Doe', 'Address %nb' => 'Address %nb',
'Placeholder email' => 'johndoe@domain.com', 'Address Update' => 'Address update',
'Update' => 'Update', 'Address' => 'Address',
'My Account' => 'My Account', 'Amount' => 'Amount',
'Personal Information' => 'Personal Information', 'Availability' => 'Availability',
'Change my account information' => 'Change my account information', 'Available' => 'Available',
'Change my password' => 'Change my password', 'Back' => 'Back',
'My Address book' => 'My Address book', 'Billing address' => 'Billing address',
'Add a new address' => 'Add a new address', 'Billing and delivery' => 'Billing and delivery',
'My Address Books' => 'My Address Books', 'Cancel' => 'Cancel',
'Address %nb' => 'Address %nb', 'Cart' => 'Cart',
'Edit this address' => 'Edit this address', 'Categories' => 'Categories',
'Edit' => 'Edit', 'Change address' => 'Change address',
'Do you really want to delete this address ?' => 'Do you really want to delete this address ?', 'Change my account information' => 'Change my account information',
'Remove this address' => 'Remove this address', 'Change my password' => 'Change my password',
'Cancel' => 'Cancel', 'Change Password' => 'Change Password',
'My Orders' => 'My Orders', 'Check my order' => 'Check my order',
'List of orders' => 'List of orders', 'Checkout' => 'Checkout',
'Order Number' => 'Order Number', 'Choose your delivery address' => 'Choose your delivery address',
'Date' => 'Date', 'Choose your delivery method' => 'Choose your delivery method',
'Amount' => 'Amount', 'Choose your payment method' => 'Choose your payment method',
'Status' => 'Status', 'Code :' => 'Code :',
'View' => 'View', 'Complementary address' => 'Complementary address',
'View order %ref as pdf document' => 'View order %ref as pdf document', 'Contact Us' => 'Contact Us',
'Order details' => 'Order details', 'Continue Shopping' => 'Continue Shopping',
'Warning' => 'Warning', 'Copyright' => 'Copyright',
'You don\'t have orders yet.' => 'You don\'t have orders yet.', 'Coupon code' => 'Coupon code',
'Address Update' => 'Address update', 'Create New Account' => 'Create New Account',
'missing or invalid data' => 'missing or invalid data', 'Create New Address' => 'Create New Address',
'Address' => 'Address', 'Create' => 'Create',
'Placeholder address label' => 'Home, Work office, other', 'Currency:' => 'Currency:',
'Placeholder address1' => '76 Ninth Avenue', 'Date' => 'Date',
'Placeholder address2' => 'Address', 'Delete address' => 'Delete address',
'Placeholder zipcode' => 'NY 10011', 'Delivery address' => 'Delivery address',
'Placeholder city' => 'New York', 'Delivery Informations' => 'Delivery Informations',
'Select Country' => 'Select Country', 'Demo product description' => 'Demo product description',
'Placeholder phone' => 'Phone number', 'Demo product title' => 'Demo product title',
'Placeholder cellphone' => 'Cellular phone number', 'Description' => 'Description',
'Add a New Address' => 'Add a new address', 'Do you have an account?' => 'Do you have an account?',
'Create New Address' => 'Create New Address', 'Do you really want to delete this address ?' => 'Do you really want to delete this address ?',
'Create' => 'Create', 'Edit this address' => 'Edit this address',
'Cart' => 'Cart', 'Edit' => 'Edit',
'Your Cart' => 'Your Cart', 'Email address' => 'Email address',
'Product Name' => 'Product Name', 'Follow us' => 'Follow us',
'Name' => 'Name', 'Forgot your Password?' => 'Forgot your Password?',
'Unit Price' => 'Unit Price', 'Free shipping' => 'Free shipping',
'Price' => 'Price', 'Go home' => 'Go home',
'Quantity' => 'Quantity', 'Grid' => 'Grid',
'Qty' => 'Qty', 'Home address' => 'Home address',
'Total' => 'Total', 'Home' => 'Home',
'Available' => 'Available', 'In Stock' => 'In Stock',
'In Stock' => 'In Stock', 'instead of' => 'instead of',
'Out of Stock' => 'Out of stock', 'Item(s)' => 'Item(s)',
'No.' => 'No.', 'Language:' => 'Language:',
'Remove' => 'Remove', 'Latest articles' => 'Latest articles',
'instead of' => 'instead of', 'Latest products' => 'Latest products',
'Continue Shopping' => 'Continue Shopping', 'Latest' => 'Latest',
'Proceed checkout' => 'Proceed checkout', 'List of orders' => 'List of orders',
'You have no items in your shopping cart.' => 'You have no items in your shopping cart.', 'List' => 'List',
'Upsell Products' => 'Upsell Products', 'Log In!' => 'Log In!',
'No products available in this category' => 'No products available in this category', 'Log out!' => 'Log out!',
'Thanks !' => 'Thanks !', 'Login Information' => 'Login Information',
'Thanks for your message, we will contact as soon as possible.' => 'Thanks for your message, we will contact as soon as possible.', 'Login' => 'Login',
'Contact us' => 'Contact us', 'Main Navigation' => 'Main Navigation',
'Send us a message' => 'Send us a message', 'Minimum 2 characters.' => 'Minimum 2 characters.',
'Placeholder contact name' => 'What\'s your name?', 'missing or invalid data' => 'missing or invalid data',
'Placeholder contact email' => 'So I can get back to you.', 'Multi-payment platform' => 'Multi-payment platform',
'Placeholder contact subject' => 'The subject of your message.', 'My Account' => 'My Account',
'Placeholder contact message' => 'And your message...', 'My Address book' => 'My Address book',
'Send' => 'Send', 'My Address Books' => 'My Address Books',
'View cart' => 'View cart', 'My order' => 'My order',
'Related' => 'Related', 'My Orders' => 'My Orders',
'Categories' => 'Categories', 'Name ascending' => 'Name ascending',
'View Cart' => 'View Cart', 'Name descending' => 'Name descending',
'Checkout' => 'Checkout', 'Name' => 'Name',
'Special Price:' => 'Special Price:', 'Need help ?' => 'Need help ?',
'Regular Price:' => 'Regular Price:', 'Newsletter Subscription' => 'Newsletter Subscription',
'Add to cart' => 'Add to cart', 'Newsletter' => 'Newsletter',
'View product' => 'View product', 'Next product' => 'Next product',
'Item(s)' => 'Item(s)', 'Next Step' => 'Next Step',
'Show' => 'Show', 'Next' => 'Next',
'per page' => 'per page', 'No articles currently' => 'No articles currently',
'Sort By' => 'Sort By', 'No products available in this category' => 'No products available in this category',
'Position' => 'Position', 'No results found' => 'No results found',
'Name ascending' => 'Name ascending', 'No.' => 'No.',
'Name descending' => 'Name descending', 'Offers' => 'Offers',
'Price ascending' => 'Price ascending', 'Ok' => 'Ok',
'Price descending' => 'Price descending', 'Order details' => 'Order details',
'Rating' => 'Rating', 'Order number' => 'Order number',
'View as' => 'View as', 'Orders over $50' => 'Orders over $50',
'Grid' => 'Grid', 'Out of Stock' => 'Out of stock',
'List' => 'List', 'Pagination' => 'Pagination',
'Pagination' => 'Pagination', 'Password Forgotten' => 'Password Forgotten',
'Previous' => 'Previous', 'Password' => 'Password',
'Next' => 'Next', 'per page' => 'per page',
'Latest' => 'Latest', 'Personal Informations' => 'Personal Informations',
'+ View All' => '+ View All', 'Placeholder address label' => 'Home, Work office, other',
'Offers' => 'Offers', 'Placeholder address1' => '76 Ninth Avenue',
'Thelia V2' => 'Thelia V2', 'Placeholder address2' => 'Address',
'Skip to content' => 'Skip to content', 'Placeholder cellphone' => 'Cellular phone number',
'Toggle navigation' => 'Toggle navigation', 'Placeholder city' => 'New York',
'Main Navigation' => 'Main Navigation', 'Placeholder company' => 'Google',
'Log out!' => 'Log out!', 'Placeholder contact email' => 'So I can get back to you.',
'Register!' => 'Register!', 'Placeholder contact message' => 'And your message...',
'Log In!' => 'Log In!', 'Placeholder contact name' => 'What\'s your name?',
'Sign In' => 'Sign In', 'Placeholder contact subject' => 'The subject of your message.',
'Register' => 'Register', 'Placeholder email' => 'johndoe@domain.com',
'Home' => 'Home', 'Placeholder firstname' => 'John',
'Search a product' => 'Search a product', 'Placeholder lastname' => 'Doe',
'Search...' => 'Search...', 'Placeholder phone' => 'Phone number',
'Minimum 2 characters.' => 'Minimum 2 characters.', 'Placeholder zipcode' => 'NY 10011',
'Search' => 'Search', 'Please enter your email address below.' => 'Please enter your email address below.',
'Language:' => 'Language:', 'Position' => 'Position',
'Currency:' => 'Currency:', 'Previous product' => 'Previous product',
'Free shipping' => 'Free shipping', 'Previous' => 'Previous',
'Orders over $50' => 'Orders over $50', 'Price ascending' => 'Price ascending',
'Secure payment' => 'Secure payment', 'Price descending' => 'Price descending',
'Multi-payment platform' => 'Multi-payment platform', 'Price' => 'Price',
'Need help ?' => 'Need help ?', 'Proceed checkout' => 'Proceed checkout',
'Questions ? See or F.A.Q.' => 'Questions ? See or F.A.Q.', 'Product Empty Button' => 'Add my first product',
'Latest articles' => 'Latest articles', 'Product Empty Message' => 'It\'s really quick to add a product.
'No articles currently' => 'No articles currently', <ol>
'Useful links' => 'Useful links', <li>Check <strong>NEW</strong> under the details tab if you want to see your product in the latest product section.</li>
'Login' => 'Login', <li>Check <strong>SALE</strong> under the details tab if you want to see your product in the offer product section.</li>
'Follow us' => 'Follow us', </ol>',
'Newsletter' => 'Newsletter', 'Product Empty Title' => 'Welcome',
'Sign up to receive our latest news.' => 'Sign up to receive our latest news.', 'Product Name' => 'Product Name',
'Email address' => 'Email address', 'Product Offers' => 'Product Offers',
'Your email address' => 'Your email address', 'products' => 'products',
'Subscribe' => 'Subscribe', 'Qty' => 'Qty',
'Contact Us' => 'Contact Us', 'Quantity' => 'Quantity',
'Copyright' => 'Copyright', 'Questions ? See or F.A.Q.' => 'Questions ? See or F.A.Q.',
'Do you have an account?' => 'Do you have an account?', 'Rating' => 'Rating',
'Forgot your Password?' => 'Forgot your Password?', 'Ref.' => 'Ref.',
'You are here:' => 'You are here:', 'Register!' => 'Register!',
'Billing and delivery' => 'Billing and delivery', 'Register' => 'Register',
'Check my order' => 'Check my order', 'Regular Price:' => 'Regular Price:',
'Newsletter Subscription' => 'Newsletter Subscription', 'Related' => 'Related',
'You want to subscribe to the newsletter? Please enter your email address below.' => 'You want to subscribe to the newsletter? Please enter your email address below.', 'Remove this address' => 'Remove this address',
'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.', 'Remove' => 'Remove',
'Choose your delivery address' => 'Choose your delivery address', 'Search a product' => 'Search a product',
'Choose your delivery method' => 'Choose your delivery method', 'Search Result for' => 'Search Result for',
'Back' => 'Back', 'Search' => 'Search',
'Next Step' => 'Next Step', 'Search...' => 'Search...',
'My order' => 'My order', 'Secure payment' => 'Secure payment',
'Shipping Tax' => 'Shipping Tax', 'Secure Payment' => 'Secure Payment',
'You may have a coupon ?' => 'You may have a coupon ?', 'Select Country' => 'Select Country',
'Code :' => 'Code :', 'Select Title' => 'Select Title',
'Coupon code' => 'Coupon code', 'Send us a message' => 'Send us a message',
'Ok' => 'Ok', 'Send' => 'Send',
'Delivery address' => 'Delivery address', 'Shipping Tax' => 'Shipping Tax',
'Billing address' => 'Billing address', 'Show' => 'Show',
'Change address' => 'Change address', 'Sign In' => 'Sign In',
'Choose your payment method' => 'Choose your payment method', 'Sign up to receive our latest news.' => 'Sign up to receive our latest news.',
'Secure Payment' => 'Secure Payment', 'Skip to content' => 'Skip to content',
'You choose to pay by' => 'You choose to pay by', 'Sort By' => 'Sort By',
'Thank you for the trust you place in us.' => 'Thank you for the trust you place in us.', 'Special Price:' => 'Special Price:',
'A summary of your order email has been sent to the following address' => 'A summary of your order email has been sent to the following address', 'Status' => 'Status',
'Your order will be confirmed by us upon receipt of your payment.' => 'Your order will be confirmed by us upon receipt of your payment.', 'Subscribe' => 'Subscribe',
'Order number' => 'Order number', 'Tax Inclusive' => 'Tax Inclusive',
'Go home' => 'Go home', 'Thank you for the trust you place in us.' => 'Thank you for the trust you place in us.',
'Password' => 'Password', 'Thanks !' => 'Thanks !',
'Password Forgotten' => 'Password Forgotten', 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.',
'Please enter your email address below.' => 'Please enter your email address below.', 'Thanks for your message, we will contact as soon as possible.' => 'Thanks for your message, we will contact as soon as possible.',
'You will receive a link to reset your password.' => 'You will receive a link to reset your password.', 'The page cannot be found' => 'The page cannot be found',
'Ref.' => 'Ref.', 'Thelia V2' => 'Thelia V2',
'Availability' => 'Availability', 'Toggle navigation' => 'Toggle navigation',
'In stock' => 'In stock', 'Total' => 'Total',
'Out of stock' => 'Out of stock', 'TTC' => 'TTC',
'Description' => 'Description', 'Unit Price' => 'Unit Price',
'Additional Info' => 'Additional Info', 'Update Profile' => 'Update Profile',
'Previous product' => 'Previous product', 'Update' => 'Update',
'Next product' => 'Next product', 'Upsell Products' => 'Upsell Products',
'Create New Account' => 'Create New Account', 'Useful links' => 'Useful links',
'Delivery Informations' => 'Delivery Informations', 'View all' => 'View all',
'Placeholder company' => 'Google', 'View as' => 'View as',
'Sign in' => 'Sign in', 'View Cart' => 'View Cart',
'Search Result for' => 'Search Result for', 'View order %ref as pdf document' => 'View order %ref as pdf document',
'No results found' => 'No results found', 'View product' => 'View product',
'View all' => 'View all', 'View' => 'View',
'products' => 'products', 'Warning' => 'Warning',
'offers' => 'offers', 'Yes' => 'Yes',
'You are here:' => 'You are here:',
'You choose to pay by' => 'You choose to pay by',
'You don\'t have orders yet.' => 'You don\'t have orders yet.',
'You have no items in your shopping cart.' => 'You have no items in your shopping cart.',
'You may have a coupon ?' => 'You may have a coupon ?',
'You want to subscribe to the newsletter? Please enter your email address below.' => 'You want to subscribe to the newsletter? Please enter your email address below.',
'You will receive a link to reset your password.' => 'You will receive a link to reset your password.',
'Your Cart' => 'Your Cart',
'Your email address' => 'Your email address',
'Your order will be confirmed by us upon receipt of your payment.' => 'Your order will be confirmed by us upon receipt of your payment.',
); );

View File

@@ -1,214 +1,201 @@
<?php <?php
return array ( return array(
'+ View All' => '', '%nb Item' => '',
'Thelia V2' => '', '%nb Items' => '',
'Skip to content' => '', '+ View All' => '',
'Toggle navigation' => '', '404' => '',
'Main Navigation' => '', 'A summary of your order email has been sent to the following address' => '',
'Register!' => '', 'Account' => '',
'Log In!' => '', 'Add a new address' => '',
'Sign In' => '', 'Add to cart' => '',
'Register' => '', 'Additional Info' => '',
'Cart' => '', 'Address %nb' => '',
'View Cart' => '', 'Address Update' => '',
'Checkout' => '', 'Address' => '',
'You have no items in your shopping cart.' => '', 'Amount' => '',
'Home' => '', 'Availability' => '',
'Search a product' => '', 'Available' => '',
'Search...' => '', 'Back' => '',
'Minimum 2 characters.' => '', 'Billing address' => '',
'Search' => '', 'Billing and delivery' => '',
'Language:' => '', 'Cancel' => '',
'Currency:' => '', 'Cart' => '',
'Latest' => '', 'Categories' => '',
'Offers' => '', 'Change address' => '',
'Special Price:' => '', 'Change my account information' => '',
'Regular Price:' => '', 'Change my password' => '',
'Free shipping' => '', 'Change Password' => '',
'Orders over $50' => '', 'Check my order' => '',
'Secure payment' => '', 'Checkout' => '',
'Multi-payment platform' => '', 'Choose your delivery address' => '',
'Need help ?' => '', 'Choose your delivery method' => '',
'Questions ? See or F.A.Q.' => '', 'Choose your payment method' => '',
'Latest articles' => '', 'Code :' => '',
'No articles currently' => '', 'Complementary address' => '',
'Useful links' => '', 'Contact Us' => '',
'Login' => '', 'Continue Shopping' => '',
'Follow us' => '', 'Copyright' => '',
'Newsletter' => '', 'Coupon code' => '',
'Sign up to receive our latest news.' => '', 'Create New Account' => '',
'Email address' => '', 'Create New Address' => '',
'Your email address' => '', 'Create' => '',
'Subscribe' => '', 'Currency:' => '',
'Contact Us' => '', 'Date' => '',
'Copyright' => '', 'Delete address' => '',
'You are here:' => '', 'Delivery address' => '',
'Show' => '', 'Delivery Informations' => '',
'per page' => '', 'Demo product description' => '',
'Sort By' => '', 'Demo product title' => '',
'Name ascending' => '', 'Description' => '',
'Name descending' => '', 'Do you have an account?' => '',
'Price ascending' => '', 'Do you really want to delete this address ?' => '',
'Price descending' => '', 'Edit this address' => '',
'View as' => '', 'Edit' => '',
'View product' => '', 'Email address' => '',
'Pagination' => '', 'Follow us' => '',
'No products available in this category' => '', 'Forgot your Password?' => '',
'Categories' => '', 'Free shipping' => '',
'Ref.' => '', 'Go home' => '',
'Availability' => '', 'Grid' => '',
'In stock' => '', 'Home address' => '',
'Out of stock' => '', 'Home' => '',
'Add to cart' => '', 'In Stock' => '',
'Description' => '', 'instead of' => '',
'Additional Info' => '', 'Item(s)' => '',
'View cart' => '', 'Language:' => '',
'Continue Shopping' => '', 'Latest articles' => '',
'Upsell Products' => '', 'Latest products' => '',
'Your Cart' => '', 'Latest' => '',
'Billing and delivery' => '', 'List of orders' => '',
'Check my order' => '', 'List' => '',
'Product Name' => '', 'Log In!' => '',
'Name' => '', 'Log out!' => '',
'Unit Price' => '', 'Login Information' => '',
'Price' => '', 'Login' => '',
'Quantity' => '', 'Main Navigation' => '',
'Qty' => '', 'Minimum 2 characters.' => '',
'Total' => '', 'missing or invalid data' => '',
'Tax Inclusive' => '', 'Multi-payment platform' => '',
'TTC' => '', 'My Account' => '',
'Available' => '', 'My Address book' => '',
'In Stock' => '', 'My Address Books' => '',
'No.' => '', 'My order' => '',
'Remove' => '', 'My Orders' => '',
'Proceed checkout' => '', 'Name ascending' => '',
'Warning' => '', 'Name descending' => '',
'missing or invalid data' => '', 'Name' => '',
'Do you have an account?' => '', 'Need help ?' => '',
'Forgot your Password?' => '', 'Newsletter Subscription' => '',
'Next' => '', 'Newsletter' => '',
'Log out!' => '', 'Next product' => '',
'My Account' => '', 'Next Step' => '',
'Previous product' => '', 'Next' => '',
'Next product' => '', 'No articles currently' => '',
'instead of' => '', 'No products available in this category' => '',
'Add a new address' => '', 'No results found' => '',
'Choose your delivery address' => '', 'No.' => '',
'Address %nb' => '', 'Offers' => '',
'Edit this address' => '', 'Ok' => '',
'Edit' => '', 'Order details' => '',
'Remove this address' => '', 'Order number' => '',
'Cancel' => '', 'Orders over $50' => '',
'Choose your delivery method' => '', 'Out of Stock' => '',
'Back' => '', 'Pagination' => '',
'Next Step' => '', 'Password Forgotten' => '',
'Delete address' => '', 'Password' => '',
'Do you really want to delete this address ?' => '', 'per page' => '',
'No' => '', 'Personal Informations' => '',
'Yes' => '', 'Placeholder address label' => '',
'Shipping Tax' => '', 'Placeholder address1' => '',
'You may have a coupon ?' => '', 'Placeholder address2' => '',
'Code :' => '', 'Placeholder cellphone' => '',
'Coupon code' => '', 'Placeholder city' => '',
'Ok' => '', 'Placeholder company' => '',
'Delivery address' => '', 'Placeholder contact email' => '',
'Billing address' => '', 'Placeholder contact message' => '',
'Change address' => '', 'Placeholder contact name' => '',
'Choose your payment method' => '', 'Placeholder contact subject' => '',
'Secure Payment' => '', 'Placeholder email' => '',
'You choose to pay by' => '', 'Placeholder firstname' => '',
'Thank you for the trust you place in us.' => '', 'Placeholder lastname' => '',
'A summary of your order email has been sent to the following address' => '', 'Placeholder phone' => '',
'Your order will be confirmed by us upon receipt of your payment.' => '', 'Placeholder zipcode' => '',
'Order number' => '', 'Please enter your email address below.' => '',
'Date' => '', 'Position' => '',
'Go home' => '', 'Previous product' => '',
'Account' => '', 'Previous' => '',
'Personal Information' => '', 'Price ascending' => '',
'Change my account information' => '', 'Price descending' => '',
'Change my password' => '', 'Price' => '',
'My Address book' => '', 'Proceed checkout' => '',
'My Address Books' => '', 'Product Empty Button' => '',
'My Orders' => '', 'Product Empty Message' => '',
'List of orders' => '', 'Product Empty Title' => '',
'Order Number' => '', 'Product Name' => '',
'Amount' => '', 'Product Offers' => '',
'Status' => '', 'products' => '',
'View' => '', 'Qty' => '',
'View order %ref as pdf document' => '', 'Quantity' => '',
'Order details' => '', 'Questions ? See or F.A.Q.' => '',
'You don\'t have orders yet.' => '', 'Rating' => '',
'Update Profile' => '', 'Ref.' => '',
'Personal Informations' => '', 'Register!' => '',
'Select Title' => '', 'Register' => '',
'Update' => '', 'Regular Price:' => '',
'Change Password' => '', 'Related' => '',
'Login Information' => '', 'Remove this address' => '',
'Create New Address' => '', 'Remove' => '',
'Address' => '', 'Search a product' => '',
'Home address' => '', 'Search Result for' => '',
'Complementary address' => '', 'Search' => '',
'Select Country' => '', 'Search...' => '',
'Create' => '', 'Secure payment' => '',
'Related' => '', 'Secure Payment' => '',
'Grid' => '', 'Select Country' => '',
'List' => '', 'Select Title' => '',
'Next' => '', 'Send us a message' => '',
'Previous' => '', 'Send' => '',
/* 'Shipping Tax' => '',
'The page cannot be found' => '', 'Show' => '',
'What\'s your name?' => '', 'Sign In' => '',
'So I can get back to you.' => '', 'Sign up to receive our latest news.' => '',
'The subject of your message.' => '', 'Skip to content' => '',
'And your message...' => '', 'Sort By' => '',
'This email already exists.' => '', 'Special Price:' => '',
'Address label' => '', 'Status' => '',
'Title' => '', 'Subscribe' => '',
'First Name' => '', 'Tax Inclusive' => '',
'Last Name' => '', 'Thank you for the trust you place in us.' => '',
'Company Name' => '', 'Thanks !' => '',
'Street Address' => '', 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => '',
'Address Line 2' => '', 'Thanks for your message, we will contact as soon as possible.' => '',
'Address Line 3' => '', 'The page cannot be found' => '',
'City' => '', 'Thelia V2' => '',
'Zip code' => '', 'Toggle navigation' => '',
'Country' => '', 'Total' => '',
'Phone' => '', 'TTC' => '',
'Cellphone' => '', 'Unit Price' => '',
'Make this address as my primary address' => '', 'Update Profile' => '',
'Full Name' => '', 'Update' => '',
'Your Email Address' => '', 'Upsell Products' => '',
'Subject' => '', 'Useful links' => '',
'Your Message' => '', 'View all' => '',
'Please enter your email address' => '', 'View as' => '',
'No, I am a new customer.' => '', 'View Cart' => '',
'Yes, I have a password :' => '', 'View order %ref as pdf document' => '',
'Please enter your password' => '', 'View product' => '',
'This value should not be blank.' => '', 'View' => '',
'A user already exists with this email address. Please login or if you\'ve forgotten your password, go to Reset Your Password.' => '', 'Warning' => '',
'This email does not exists' => '', 'Yes' => '',
'Current Password' => '', 'You are here:' => '',
'New Password' => '', 'You choose to pay by' => '',
'Password confirmation' => '', 'You don\'t have orders yet.' => '',
'Your current password does not match.' => '', 'You have no items in your shopping cart.' => '',
'Password confirmation is not the same as password field.' => '', 'You may have a coupon ?' => '',
'I would like to receive the newsletter or the latest news.' => '', 'You want to subscribe to the newsletter? Please enter your email address below.' => '',
*/ 'You will receive a link to reset your password.' => '',
'Placeholder firstname' => '', 'Your Cart' => '',
'Placeholder lastname' => '', 'Your email address' => '',
'Placeholder email' => '', 'Your order will be confirmed by us upon receipt of your payment.' => '',
'Placeholder phone' => '', );
'Placeholder cellphone' => '',
'Placeholder company' => '',
'Placeholder address1' => '',
'Placeholder address2' => '',
'Placeholder city' => '',
'Placeholder zipcode' => '',
'Placeholder address label' => '',
'Placeholder contact name' => '',
'Placeholder contact email' => '',
'Placeholder contact subject' => '',
'Placeholder contact message' => '',
)
;

View File

@@ -1,215 +1,208 @@
<?php <?php
return array ( return array(
'%nb Item' => '%nb produit',
'%nb Items' => '%nb produits',
'+ View All' => '+ Voir tout', '+ View All' => '+ Voir tout',
'Thelia V2' => 'Thelia v2', '404' => '404',
'Skip to content' => 'Aller au contenu',
'Toggle navigation' => 'Navigation alternative',
'Main Navigation' => 'Navigation principale',
'Register!' => 'S\'inscrire !',
'Log In!' => 'Se connecter',
'Sign In' => 'S\'inscrire',
'Register' => 'Se connecter',
'Cart' => 'Panier',
'View Cart' => 'Voir mon panier',
'Checkout' => 'Payer',
'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.',
'Home' => 'Accueil',
'Search a product' => 'Chercher un produit',
'Search...' => 'Recherche…',
'Minimum 2 characters.' => '2 caractères minimum.',
'Search' => 'Recherche',
'Language:' => 'Langue',
'Currency:' => 'Monnaie',
'Latest' => 'Nouveautés',
'Offers' => 'Promotions',
'Special Price:' => 'Prix en promotion :',
'Regular Price:' => 'Prix :',
'Free shipping' => 'Livraison gratuite',
'Orders over $50' => 'Commandes supérieures à 50€',//ne devrait-on pas mettre une variable ici?
'Secure payment' => 'Paiement sécurisé',
'Multi-payment plateform' => 'Plateforme multipaiement',// bizarre ?
'Need help ?' => 'Besoin d\'aide? ',
'Questions ? See or F.A.Q.' => 'Des questions ? Voir la F.A.Q.', // bizarre le 'see or '
'Latest articles' => 'Nouveaux articles',
'No articles currently' => 'Actuellement aucun article',
'Useful links' => 'Liens utiles',
'Login' => 'Connexion',
'Follow us' => 'Suivez-nous',
'Newsletter' => 'Newsletter',
'Sign up to receive our latest news.' => 'Inscrivez-vous pour recevoir nos actualités.',
'Email address' => 'Adresse e-mail',
'Your email address' => 'Votre adresse e-mail',
'Subscribe' => 'Inscription',
'Contact Us' => 'Contactez-nous',
'Copyright' => 'Copyright',
'You are here:' => 'Vous êtes ici :',
'Show' => 'Voir',
'per page' => 'par page',
'Sort By' => 'Trier par',
'Name ascending' => 'Nom croissant',
'Name descending' => 'Nom décroissant',
'Price ascending' => 'Prix croissant',
'Price descending' => 'Prix décroissant',
'View as' => 'Voir en tant que ',
'View product' => 'Voir le produit',
'Pagination' => 'Pagination',
'No products available in this category' => 'Aucun produit dans cette catégorie.',
'Categories' => 'Catégories',
'Ref.' => 'Ref.',
'Availability' => 'Disponibilité',
'In stock' => 'En stock',
'Out of stock' => 'Indisponible',
'Add to cart' => 'Ajouter au panier',
'Description' => 'Description',
'Additional Info' => 'Informations complémentaires',
'View cart' => 'Voir mon panier',
'Continue Shopping' => 'Continuer mes achats',
'Upsell Products' => 'Nous vous proposons également',
'Your Cart' => 'Votre panier',
'Billing and delivery' => 'Facturation et livraison',
'Check my order' => 'Vérifier ma commmande',
'Product Name' => 'Nom du produit',
'Name' => 'Nom',
'Unit Price' => 'Prix unitaire',
'Price' => 'Prix',
'Quantity' => 'Quantité',
'Qty' => 'Qté',
'Total' => 'Total',
'Tax Inclusive' => 'TVA incluse',
'Available' => 'Disponible',
'In Stock' => 'Disponible',
'No.' => 'N°',
'Remove' => 'Supprimer',
'Proceed checkout' => 'Payer',
'Warning' => 'Attention',
'missing or invalid data' => 'Information éronnée ou incomplète',
'Do you have an account?' => 'Avez-vous déjà un compte ?',
'Forgot your Password?' => 'Mot de passé oublié ?',
'Next' => 'Suivant',
'Log out!' => 'Se déconnecter',
'My Account' => 'Mon compte',
'Previous product' => 'Produits précédents',
'Next product' => 'Produits suivants',
'instead of' => 'au lieu de',
'Add a new address' => 'Ajouter une nouvelle adresse',
'Choose your delivery address' => 'Choisissez une adresse de livraison',
'Address %nb' => 'Adresse n°',
'Edit this address' => 'Editer cette adresse',
'Edit' => 'Editer',
'Remove this address' => 'Supprimer cette adresse',
'Cancel' => 'Annuler',
'Choose your delivery method' => 'Choisissez votre moyen de livraison',
'Back' => 'Retour',
'Next Step' => 'Etape suivante',
'Delete address' => 'Supprimer cette adresse',
'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?',
'No' => 'Non',
'Yes' => 'Oui',
'Shipping Tax' => 'Frais de livraison',
'You may have a coupon ?' => 'Avez-vous un code promo ?',
'Code :' => 'Code',
'Coupon code' => 'Code promo',
'Ok' => 'Ok',
'Delivery address' => 'Adresse de livraison',
'Billing address' => 'Adresse de facturation',
'Change address' => 'Changer d\'adresse',
'Choose your payment method' => 'Choisissez voter moyen de paiement',
'Secure Payment' => 'Paiement sécurisé',
// Tous les éléments relatifs au message de confirmation de commande devraient être administrables non?
'You choose to pay by' => 'Vous avez choisi de payer par',
'Thank you for the trust you place in us.' => 'Merci pour voter confiance. ',
'A summary of your order email has been sent to the following address' => 'Un récapitulatif de commande vows a été envoyé par e-mail à l\'adresse suivante : ', 'A summary of your order email has been sent to the following address' => 'Un récapitulatif de commande vows a été envoyé par e-mail à l\'adresse suivante : ',
'Your order will be confirmed by us upon receipt of your payment.' => 'Votre commande sera confirmée à réception de votre pavement.',
'Order number' => 'Commande numéro',
'Date' => 'Date',
'Go home' => 'Retour à l\'accueil',
'Account' => 'Mon compte', 'Account' => 'Mon compte',
'Personal Information' => 'Informations personnelles', 'Add a new address' => 'Ajouter une nouvelle adresse',
'Add to cart' => 'Ajouter au panier',
'Additional Info' => 'Informations complémentaires',
'Address %nb' => 'Adresse n°',
'Address Update' => 'Mise à jour de l\'adresse',
'Address' => 'Adresse',
'Amount' => 'Montant',
'Availability' => 'Disponibilité',
'Available' => 'Disponible',
'Back' => 'Retour',
'Billing address' => 'Adresse de facturation',
'Billing and delivery' => 'Facturation et livraison',
'Cancel' => 'Annuler',
'Cart' => 'Panier',
'Categories' => 'Catégories',
'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',
'Change Password' => 'Modifier mon mot de passe',
'Check my order' => 'Vérifier ma commmande',
'Checkout' => 'Payer',
'Choose your delivery address' => 'Choisissez une adresse de livraison',
'Choose your delivery method' => 'Choisissez votre moyen de livraison',
'Choose your payment method' => 'Choisissez voter moyen de paiement',
'Code :' => 'Code',
'Complementary address' => 'Résidence secondaire',
'Contact Us' => 'Contactez-nous',
'Continue Shopping' => 'Continuer mes achats',
'Copyright' => 'Copyright',
'Coupon code' => 'Code promo',
'Create New Account' => 'Créer un nouveau compte',
'Create New Address' => 'Créer une nouvelle adresse',
'Create' => 'Créer',
'Currency:' => 'Monnaie',
'Date' => 'Date',
'Delete address' => 'Supprimer cette adresse',
'Delivery address' => 'Adresse de livraison',
'Delivery Informations' => 'Informations de livraison',
'Demo product description' => 'Example de description de produit',
'Demo product title' => 'Example de titre',
'Description' => 'Description',
'Do you have an account?' => 'Avez-vous déjà un compte ?',
'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?',
'Edit this address' => 'Editer cette adresse',
'Edit' => 'Editer',
'Email address' => 'Adresse e-mail',
'Follow us' => 'Suivez-nous',
'Forgot your Password?' => 'Mot de passé oublié ?',
'Free shipping' => 'Livraison gratuite',
'Go home' => 'Retour à l\'accueil',
'Grid' => 'Grille',
'Home address' => 'Résidence principal',
'Home' => 'Accueil',
'In Stock' => 'Disponible',
'instead of' => 'au lieu de',
'Item(s)' => 'Produit(s)',
'Language:' => 'Langue',
'Latest articles' => 'Nouveaux articles',
'Latest products' => 'Derniers produits',
'Latest' => 'Nouveautés',
'List of orders' => 'Liste de mes commandes',
'List' => 'Liste',
'Log In!' => 'Se connecter',
'Log out!' => 'Se déconnecter',
'Login Information' => 'Informations de connexion',
'Login' => 'Connexion',
'Main Navigation' => 'Navigation principale',
'Minimum 2 characters.' => '2 caractères minimum.',
'missing or invalid data' => 'Information éronnée ou incomplète',
'Multi-payment plateform' => 'Plateforme multipaiement',// bizarre ?
'My Account' => 'Mon compte',
'My Address book' => 'Mon carnet d\'adresses', 'My Address book' => 'Mon carnet d\'adresses',
'My Address Books' => 'Mes carnets d\'adresses', 'My Address Books' => 'Mes carnets d\'adresses',
'My order' => 'Ma commande',
'My Orders' => 'Mes commandes', 'My Orders' => 'Mes commandes',
'List of orders' => 'Liste de mes commandes', 'Name ascending' => 'Nom croissant',
'Order Number' => 'Commande numéro', 'Name descending' => 'Nom décroissant',
'Amount' => 'Montant', 'Name' => 'Nom',
'Status' => 'Etat', 'Need help ?' => 'Besoin d\'aide? ',
'View' => 'Voir', 'Newsletter Subscription' => 'Inscription à la newslatter',
'View order %ref as pdf document' => 'Ouvrir la commande %ref dans un pdf', 'Newsletter' => 'Newsletter',
'Order details' => 'Détail de commande', 'Next product' => 'Produits suivants',
'You don\'t have orders yet.' => 'Vous n\'avez pas encore de commande.', 'Next Step' => 'Etape suivante',
'Update Profile' => 'Mettre à jour votre profil',
'Personal Informations' => 'Informations personnelles',
'Select Title' => 'Civilité',
'Update' => 'Mettre à jour',
'Change Password' => 'Modifier mon mot de passe',
'Login Information' => 'Informations de connexion',
'Create New Address' => 'Créer une nouvelle adresse',
'Address' => 'Adresse',
'Home address' => 'Résidence principal',
'Complementary address' => 'Résidence secondaire',
'Select Country' => 'Choisissez un pays',
'Create' => 'Créer',
'Related' => 'Liés', // voir le contexte pour l'accord
'Grid' => 'Grille',
'List' => 'Liste',
'Next' => 'Suivant', 'Next' => 'Suivant',
'Previous' => 'Précédent', 'Next' => 'Suivant',
'No articles currently' => 'Actuellement aucun article',
/* 'No products available in this category' => 'Aucun produit dans cette catégorie.',
'The page cannot be found' => '', 'No results found' => 'Aucun résultat',
'What\'s your name?' => '', 'No' => 'Non',
'So I can get back to you.' => '', 'No.' => 'N°',
'The subject of your message.' => '', 'Offers' => 'Promotions',
'And your message...' => '', 'Ok' => 'Ok',
'This email already exists.' => '', 'Order details' => 'Détail de commande',
'Address label' => '', 'Order number' => 'Commande numéro',
'Title' => '', 'Orders over $50' => 'Commandes supérieures à 50€',//ne devrait-on pas mettre une variable ici?
'First Name' => '', 'Out of stock' => 'Indisponible',
'Last Name' => '', 'Pagination' => 'Pagination',
'Company Name' => '', 'Password Forgotten' => 'Mot de passe oublié',
'Street Address' => '', 'Password' => 'Mot de passe',
'Address Line 2' => '', 'per page' => 'par page',
'Address Line 3' => '', 'Personal Information' => 'Informations personnelles',
'City' => '', 'Personal Informations' => 'Informations personnelles',
'Zip code' => '', 'Placeholder address label' => 'Maison, Domicile, Travail...',
'Country' => '',
'Phone' => '',
'Cellphone' => '',
'Make this address as my primary address' => '',
'Full Name' => '',
'Your Email Address' => '',
'Subject' => '',
'Your Message' => '',
'Please enter your email address' => '',
'No, I am a new customer.' => '',
'Yes, I have a password :' => '',
'Please enter your password' => '',
'This value should not be blank.' => '',
'A user already exists with this email address. Please login or if you\'ve forgotten your password, go to Reset Your Password.' => '',
'This email does not exists' => '',
'Current Password' => '',
'New Password' => '',
'Password confirmation' => '',
'Your current password does not match.' => '',
'Password confirmation is not the same as password field.' => '',
'I would like to receive the newsletter or the latest news.' => '',
*/
'Placeholder firstname' => 'Prénom',
'Placeholder lastname' => 'Nom de famille',
'Placeholder email' => 'Adresse e-mail',
'Placeholder phone' => 'Téléphone',
'Placeholder cellphone' => 'Portable',
'Placeholder company' => 'Compagnie',
'Placeholder address1' => 'Adresse', 'Placeholder address1' => 'Adresse',
'Placeholder address2' => '', 'Placeholder address2' => '',
'Placeholder cellphone' => 'Portable',
'Placeholder city' => 'Ville', 'Placeholder city' => 'Ville',
'Placeholder zipcode' => 'Code postal', 'Placeholder company' => 'Compagnie',
'Placeholder address label' => 'Maison, Domicile, Travail...',
'Placeholder contact name' => 'Quel est votre nom ?',
'Placeholder contact email' => 'Pour me permettre de vous contacter', 'Placeholder contact email' => 'Pour me permettre de vous contacter',
'Placeholder contact subject' => 'Le sujet de votre message',
'Placeholder contact message' => 'Votre commentaire', 'Placeholder contact message' => 'Votre commentaire',
) 'Placeholder contact name' => 'Quel est votre nom ?',
; 'Placeholder contact subject' => 'Le sujet de votre message',
'Placeholder email' => 'Adresse e-mail',
'Placeholder firstname' => 'Prénom',
'Placeholder lastname' => 'Nom de famille',
'Placeholder phone' => 'Téléphone',
'Placeholder zipcode' => 'Code postal',
'Please enter your email address below.' => 'Veuillez saisir votre adresse e-amil ci-dessous.',
'Position' => 'Position',
'Previous product' => 'Produits précédents',
'Previous' => 'Précédent',
'Price ascending' => 'Prix croissant',
'Price descending' => 'Prix décroissant',
'Price' => 'Prix',
'Proceed checkout' => 'Payer',
'Product Empty Button' => 'Ajouter mon premier produit',
'Product Empty Message' => 'C\'est très simple d\'ajouter un produit dans l\'adminsitration.
<ol>
<li>N\'oubliez pas de sélectionner <strong>NEW</strong> dans l\'onglet Details afin de voir votre produit dans la section des nouveautés.</li>
<li>N\'oubliez pas de sélectionner <strong>SALE</strong> dans l\'onglet Details afin de voir votre produit dans la section des promotions.</li>
</ol>',
'Product Empty Title' => 'Bonjour',
'Product Name' => 'Nom du produit',
'Product Offers' => 'Produits en promotion',
'products' => 'produits',
'Qty' => 'Qté',
'Quantity' => 'Quantité',
'Questions ? See or F.A.Q.' => 'Des questions ? Voir la F.A.Q.', // bizarre le 'see or '
'Rating' => 'Avis',
'Ref.' => '',
'Register!' => 'S\'inscrire !',
'Register' => 'S\'inscrire',
'Regular Price:' => 'Prix :',
'Related' => 'Liés', // voir le contexte pour l'accord
'Remove this address' => 'Supprimer cette adresse',
'Remove' => 'Supprimer',
'Search a product' => 'Chercher un produit',
'Search Result for' => 'Résultat de recherche pour',
'Search' => 'Recherche',
'Search...' => 'Recherche…',
'Secure payment' => 'Paiement sécurisé',
'Secure Payment' => 'Paiement sécurisé',
'Select Country' => 'Choisissez un pays',
'Select Title' => 'Civilité',
'Send us a message' => 'Envoyer nous un message',
'Send' => 'Envoyer',
'Shipping Tax' => 'Frais de livraison',
'Show' => 'Voir',
'Sign In' => 'Se connecter',
'Sign up to receive our latest news.' => 'Inscrivez-vous pour recevoir nos actualités.',
'Skip to content' => 'Aller au contenu',
'Sort By' => 'Trier par',
'Special Price:' => 'Prix en promotion :',
'Status' => 'Etat',
'Subscribe' => 'Inscription',
'Tax Inclusive' => 'TVA incluse',
'Thank you for the trust you place in us.' => 'Merci pour votre confiance. ',
'Thanks !' => 'Merci !',
'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => '',
'Thanks for your message, we will contact as soon as possible.' => '',
'The page cannot be found' => '',
'Thelia V2' => 'Thelia v2',
'Toggle navigation' => 'Navigation alternative',
'Total' => 'Total',
'TTC' => 'TTC',
'Unit Price' => 'Prix unitaire',
'Update Profile' => 'Mettre à jour votre profil',
'Update' => 'Mettre à jour',
'Upsell Products' => 'Nous vous proposons également',
'Useful links' => 'Liens utiles',
'View all' => ' Voir tout',
'View as' => 'Voir en tant que ',
'View Cart' => 'Voir mon panier',
'View order %ref as pdf document' => 'Ouvrir la commande %ref dans un pdf',
'View product' => 'Voir le produit',
'View' => 'Voir',
'Warning' => 'Attention',
'Yes' => 'Oui',
'You are here:' => 'Vous êtes ici :',
'You choose to pay by' => 'Vous avez choisi de payer par',
'You don\'t have orders yet.' => 'Vous n\'avez pas encore de commande.',
'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.',
'You may have a coupon ?' => 'Avez-vous un code promo ?',
'You want to subscribe to the newsletter? Please enter your email address below.' => 'Vous voulez vous inscrire à la newsletter ? Veuillez saisir votre adresse e-amil ci-dessous.',
'You will receive a link to reset your password.' => 'Vous recevrez un lien pour réinitialiser votre mot de passe.',
'Your Cart' => 'Votre panier',
'Your email address' => 'Votre adresse e-mail',
'Your order will be confirmed by us upon receipt of your payment.' => 'Votre commande sera confirmée à réception de votre pavement.',
);

View File

@@ -1,214 +1,201 @@
<?php <?php
return array ( return array(
'+ View All' => '', '%nb Item' => '',
'Thelia V2' => '', '%nb Items' => '',
'Skip to content' => '', '+ View All' => '',
'Toggle navigation' => '', '404' => '',
'Main Navigation' => '', 'A summary of your order email has been sent to the following address' => '',
'Register!' => '', 'Account' => '',
'Log In!' => '', 'Add a new address' => '',
'Sign In' => '', 'Add to cart' => '',
'Register' => '', 'Additional Info' => '',
'Cart' => '', 'Address %nb' => '',
'View Cart' => '', 'Address Update' => '',
'Checkout' => '', 'Address' => '',
'You have no items in your shopping cart.' => '', 'Amount' => '',
'Home' => '', 'Availability' => '',
'Search a product' => '', 'Available' => '',
'Search...' => '', 'Back' => '',
'Minimum 2 characters.' => '', 'Billing address' => '',
'Search' => '', 'Billing and delivery' => '',
'Language:' => '', 'Cancel' => '',
'Currency:' => '', 'Cart' => '',
'Latest' => '', 'Categories' => '',
'Offers' => '', 'Change address' => '',
'Special Price:' => '', 'Change my account information' => '',
'Regular Price:' => '', 'Change my password' => '',
'Free shipping' => '', 'Change Password' => '',
'Orders over $50' => '', 'Check my order' => '',
'Secure payment' => '', 'Checkout' => '',
'Multi-payment platform' => '', 'Choose your delivery address' => '',
'Need help ?' => '', 'Choose your delivery method' => '',
'Questions ? See or F.A.Q.' => '', 'Choose your payment method' => '',
'Latest articles' => '', 'Code :' => '',
'No articles currently' => '', 'Complementary address' => '',
'Useful links' => '', 'Contact Us' => '',
'Login' => '', 'Continue Shopping' => '',
'Follow us' => '', 'Copyright' => '',
'Newsletter' => '', 'Coupon code' => '',
'Sign up to receive our latest news.' => '', 'Create New Account' => '',
'Email address' => '', 'Create New Address' => '',
'Your email address' => '', 'Create' => '',
'Subscribe' => '', 'Currency:' => '',
'Contact Us' => '', 'Date' => '',
'Copyright' => '', 'Delete address' => '',
'You are here:' => '', 'Delivery address' => '',
'Show' => '', 'Delivery Informations' => '',
'per page' => '', 'Demo product description' => '',
'Sort By' => '', 'Demo product title' => '',
'Name ascending' => '', 'Description' => '',
'Name descending' => '', 'Do you have an account?' => '',
'Price ascending' => '', 'Do you really want to delete this address ?' => '',
'Price descending' => '', 'Edit this address' => '',
'View as' => '', 'Edit' => '',
'View product' => '', 'Email address' => '',
'Pagination' => '', 'Follow us' => '',
'No products available in this category' => '', 'Forgot your Password?' => '',
'Categories' => '', 'Free shipping' => '',
'Ref.' => '', 'Go home' => '',
'Availability' => '', 'Grid' => '',
'In stock' => '', 'Home address' => '',
'Out of stock' => '', 'Home' => '',
'Add to cart' => '', 'In Stock' => '',
'Description' => '', 'instead of' => '',
'Additional Info' => '', 'Item(s)' => '',
'View cart' => '', 'Language:' => '',
'Continue Shopping' => '', 'Latest articles' => '',
'Upsell Products' => '', 'Latest products' => '',
'Your Cart' => '', 'Latest' => '',
'Billing and delivery' => '', 'List of orders' => '',
'Check my order' => '', 'List' => '',
'Product Name' => '', 'Log In!' => '',
'Name' => '', 'Log out!' => '',
'Unit Price' => '', 'Login Information' => '',
'Price' => '', 'Login' => '',
'Quantity' => '', 'Main Navigation' => '',
'Qty' => '', 'Minimum 2 characters.' => '',
'Total' => '', 'missing or invalid data' => '',
'Tax Inclusive' => '', 'Multi-payment platform' => '',
'TTC' => '', 'My Account' => '',
'Available' => '', 'My Address book' => '',
'In Stock' => '', 'My Address Books' => '',
'No.' => '', 'My order' => '',
'Remove' => '', 'My Orders' => '',
'Proceed checkout' => '', 'Name ascending' => '',
'Warning' => '', 'Name descending' => '',
'missing or invalid data' => '', 'Name' => '',
'Do you have an account?' => '', 'Need help ?' => '',
'Forgot your Password?' => '', 'Newsletter Subscription' => '',
'Next' => '', 'Newsletter' => '',
'Log out!' => '', 'Next product' => '',
'My Account' => '', 'Next Step' => '',
'Previous product' => '', 'Next' => '',
'Next product' => '', 'No articles currently' => '',
'instead of' => '', 'No products available in this category' => '',
'Add a new address' => '', 'No results found' => '',
'Choose your delivery address' => '', 'No.' => '',
'Address %nb' => '', 'Offers' => '',
'Edit this address' => '', 'Ok' => '',
'Edit' => '', 'Order details' => '',
'Remove this address' => '', 'Order number' => '',
'Cancel' => '', 'Orders over $50' => '',
'Choose your delivery method' => '', 'Out of Stock' => '',
'Back' => '', 'Pagination' => '',
'Next Step' => '', 'Password Forgotten' => '',
'Delete address' => '', 'Password' => '',
'Do you really want to delete this address ?' => '', 'per page' => '',
'No' => '', 'Personal Informations' => '',
'Yes' => '', 'Placeholder address label' => '',
'Shipping Tax' => '', 'Placeholder address1' => '',
'You may have a coupon ?' => '', 'Placeholder address2' => '',
'Code :' => '', 'Placeholder cellphone' => '',
'Coupon code' => '', 'Placeholder city' => '',
'Ok' => '', 'Placeholder company' => '',
'Delivery address' => '', 'Placeholder contact email' => '',
'Billing address' => '', 'Placeholder contact message' => '',
'Change address' => '', 'Placeholder contact name' => '',
'Choose your payment method' => '', 'Placeholder contact subject' => '',
'Secure Payment' => '', 'Placeholder email' => '',
'You choose to pay by' => '', 'Placeholder firstname' => '',
'Thank you for the trust you place in us.' => '', 'Placeholder lastname' => '',
'A summary of your order email has been sent to the following address' => '', 'Placeholder phone' => '',
'Your order will be confirmed by us upon receipt of your payment.' => '', 'Placeholder zipcode' => '',
'Order number' => '', 'Please enter your email address below.' => '',
'Date' => '', 'Position' => '',
'Go home' => '', 'Previous product' => '',
'Account' => '', 'Previous' => '',
'Personal Information' => '', 'Price ascending' => '',
'Change my account information' => '', 'Price descending' => '',
'Change my password' => '', 'Price' => '',
'My Address book' => '', 'Proceed checkout' => '',
'My Address Books' => '', 'Product Empty Button' => '',
'My Orders' => '', 'Product Empty Message' => '',
'List of orders' => '', 'Product Empty Title' => '',
'Order Number' => '', 'Product Name' => '',
'Amount' => '', 'Product Offers' => '',
'Status' => '', 'products' => '',
'View' => '', 'Qty' => '',
'View order %ref as pdf document' => '', 'Quantity' => '',
'Order details' => '', 'Questions ? See or F.A.Q.' => '',
'You don\'t have orders yet.' => '', 'Rating' => '',
'Update Profile' => '', 'Ref.' => '',
'Personal Informations' => '', 'Register!' => '',
'Select Title' => '', 'Register' => '',
'Update' => '', 'Regular Price:' => '',
'Change Password' => '', 'Related' => '',
'Login Information' => '', 'Remove this address' => '',
'Create New Address' => '', 'Remove' => '',
'Address' => '', 'Search a product' => '',
'Home address' => '', 'Search Result for' => '',
'Complementary address' => '', 'Search' => '',
'Select Country' => '', 'Search...' => '',
'Create' => '', 'Secure payment' => '',
'Related' => '', 'Secure Payment' => '',
'Grid' => '', 'Select Country' => '',
'List' => '', 'Select Title' => '',
'Next' => '', 'Send us a message' => '',
'Previous' => '', 'Send' => '',
/* 'Shipping Tax' => '',
'The page cannot be found' => '', 'Show' => '',
'What\'s your name?' => '', 'Sign In' => '',
'So I can get back to you.' => '', 'Sign up to receive our latest news.' => '',
'The subject of your message.' => '', 'Skip to content' => '',
'And your message...' => '', 'Sort By' => '',
'This email already exists.' => '', 'Special Price:' => '',
'Address label' => '', 'Status' => '',
'Title' => '', 'Subscribe' => '',
'First Name' => '', 'Tax Inclusive' => '',
'Last Name' => '', 'Thank you for the trust you place in us.' => '',
'Company Name' => '', 'Thanks !' => '',
'Street Address' => '', 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => '',
'Address Line 2' => '', 'Thanks for your message, we will contact as soon as possible.' => '',
'Address Line 3' => '', 'The page cannot be found' => '',
'City' => '', 'Thelia V2' => '',
'Zip code' => '', 'Toggle navigation' => '',
'Country' => '', 'Total' => '',
'Phone' => '', 'TTC' => '',
'Cellphone' => '', 'Unit Price' => '',
'Make this address as my primary address' => '', 'Update Profile' => '',
'Full Name' => '', 'Update' => '',
'Your Email Address' => '', 'Upsell Products' => '',
'Subject' => '', 'Useful links' => '',
'Your Message' => '', 'View all' => '',
'Please enter your email address' => '', 'View as' => '',
'No, I am a new customer.' => '', 'View Cart' => '',
'Yes, I have a password :' => '', 'View order %ref as pdf document' => '',
'Please enter your password' => '', 'View product' => '',
'This value should not be blank.' => '', 'View' => '',
'A user already exists with this email address. Please login or if you\'ve forgotten your password, go to Reset Your Password.' => '', 'Warning' => '',
'This email does not exists' => '', 'Yes' => '',
'Current Password' => '', 'You are here:' => '',
'New Password' => '', 'You choose to pay by' => '',
'Password confirmation' => '', 'You don\'t have orders yet.' => '',
'Your current password does not match.' => '', 'You have no items in your shopping cart.' => '',
'Password confirmation is not the same as password field.' => '', 'You may have a coupon ?' => '',
'I would like to receive the newsletter or the latest news.' => '', 'You want to subscribe to the newsletter? Please enter your email address below.' => '',
*/ 'You will receive a link to reset your password.' => '',
'Placeholder firstname' => '', 'Your Cart' => '',
'Placeholder lastname' => '', 'Your email address' => '',
'Placeholder email' => '', 'Your order will be confirmed by us upon receipt of your payment.' => '',
'Placeholder phone' => '', );
'Placeholder cellphone' => '',
'Placeholder company' => '',
'Placeholder address1' => '',
'Placeholder address2' => '',
'Placeholder city' => '',
'Placeholder zipcode' => '',
'Placeholder address label' => '',
'Placeholder contact name' => '',
'Placeholder contact email' => '',
'Placeholder contact subject' => '',
'Placeholder contact message' => '',
)
;

View File

@@ -26,7 +26,7 @@
<div class="panel-heading"> <div class="panel-heading">
<h4 class="panel-title"> <h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#account" href="#account-info"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#account" href="#account-info">
{intl l="Personal Information"} {intl l="Personal Informations"}
</a> </a>
</h4> </h4>
</div> </div>
@@ -144,7 +144,7 @@
<table class="table table-orders" summary="{intl l="List of orders"}"> <table class="table table-orders" summary="{intl l="List of orders"}">
<thead> <thead>
<tr> <tr>
<th>{intl l="Order Number"}</th> <th>{intl l="Order number"}</th>
<th>{intl l="Date"}</th> <th>{intl l="Date"}</th>
<th>{intl l="Amount"}</th> <th>{intl l="Amount"}</th>
<th>{intl l="Status"}</th> <th>{intl l="Status"}</th>
@@ -156,7 +156,7 @@
<tr> <tr>
<td>{$REF}</td> <td>{$REF}</td>
<td>{format_date date=$CREATE_DATE}</td> <td>{format_date date=$CREATE_DATE}</td>
<td>{loop type="currency" name="order.currency" id={$CURRENCY}}{$SYMBOL}{/loop} {format_number number=$TOTAL_TAXED_AMOUNT}</td> <td>{format_number number=$TOTAL_TAXED_AMOUNT} {loop type="currency" name="order.currency" id={$CURRENCY}}{$SYMBOL}{/loop}</td>
<td><span class="label-delivered">{loop type="order-status" name="order.status" id={$STATUS}}{$TITLE}{/loop}</span></td> <td><span class="label-delivered">{loop type="order-status" name="order.status" id={$STATUS}}{$TITLE}{/loop}</span></td>
<td><a href="#" class="btn btn-order-details" data-toggle="tooltip" title="{intl l="View order %ref as pdf document" ref={$REF}}"><span class="icon-cloud-download"></span> {intl l="Order details"}</a></td> <td><a href="#" class="btn btn-order-details" data-toggle="tooltip" title="{intl l="View order %ref as pdf document" ref={$REF}}"><span class="icon-cloud-download"></span> {intl l="Order details"}</a></td>
</tr> </tr>

View File

@@ -12,7 +12,7 @@
{block name='no-return-functions' append} {block name='no-return-functions' append}
{$breadcrumbs = [ {$breadcrumbs = [
['title' => {intl l="Account"}, 'url'=>{url path="/account"}], ['title' => {intl l="Account"}, 'url'=>{url path="/account"}],
['title' => {intl l="Add a New Address"}, 'url'=>{url path="/address/create"}] ['title' => {intl l="Add a new address"}, 'url'=>{url path="/address/create"}]
]} ]}
{/block} {/block}

View File

@@ -46,6 +46,7 @@
&.btn-coupon, &.btn-coupon,
&.btn-filter, &.btn-filter,
&.btn-grid, &.btn-grid,
&.btn-jumbotron,
&.btn-list, &.btn-list,
&.btn-login-mini, &.btn-login-mini,
&.btn-search, &.btn-search,

View File

@@ -89,11 +89,11 @@
<td class="unitprice"> <td class="unitprice">
{if $IS_PROMO == 1} {if $IS_PROMO == 1}
{assign "real_price" $PROMO_TAXED_PRICE} {assign "real_price" $PROMO_TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$PROMO_TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$PROMO_TAXED_PRICE} {currency attr="symbol"}</span></div>
<small class="old-price">{intl l="instead of"} <span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></small> <small class="old-price">{intl l="instead of"} <span class="price">{$TAXED_PRICE} {currency attr="symbol"}</span></small>
{else} {else}
{assign "real_price" $TAXED_PRICE} {assign "real_price" $TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$TAXED_PRICE} {currency attr="symbol"}</span></div>
{/if} {/if}
</td> </td>
<td class="qty"> <td class="qty">
@@ -109,7 +109,7 @@
</div> </div>
</td> </td>
<td class="subprice"> <td class="subprice">
<span class="price">{currency attr="symbol"} {$real_price * $QUANTITY}</span> <span class="price">{$real_price * $QUANTITY} {currency attr="symbol"}</span>
</td> </td>
</tr> </tr>
@@ -121,7 +121,7 @@
<th class="total">{intl l="Total"}</th> <th class="total">{intl l="Total"}</th>
<td class="total"> <td class="total">
<div class="total-price"> <div class="total-price">
<span class="price">{currency attr="symbol"} {cart attr="total_taxed_price"}</span> <span class="price">{cart attr="total_taxed_price"} {currency attr="symbol"}</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@@ -19,7 +19,8 @@
{$product_order={$smarty.get.order|default:'alpha'}} {$product_order={$smarty.get.order|default:'alpha'}}
<article class="col-main {$smarty.get.mode|default:"grid"}" role="main"> <article class="col-main {$smarty.get.mode|default:"grid"}" role="main">
{ifloop rel="product_list"} {ifloop rel="product_list"}
{include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order} {assign var="amount" value="{count type="product" category={category attr="id"}}"}
{include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order amount={$amount}}
<div id="category-products"> <div id="category-products">
<div class="products-content"> <div class="products-content">
<ul class="product-col-4"> <ul class="product-col-4">
@@ -29,7 +30,7 @@
</ul> </ul>
</div> </div>
</div><!-- /#category-products --> </div><!-- /#category-products -->
{include file="includes/toolbar.html" toolbar="bottom"} {include file="includes/toolbar.html" toolbar="bottom" amount={$amount}}
{/ifloop} {/ifloop}
{elseloop rel="product_list"} {elseloop rel="product_list"}
<div class="address-warning"> <div class="address-warning">

View File

@@ -2,13 +2,13 @@
{* Breadcrumb *} {* Breadcrumb *}
{block name='no-return-functions' append} {block name='no-return-functions' append}
{$breadcrumbs = [['title' => {intl l="Contact us"}, 'url'=>{url path="/contact"}]]} {$breadcrumbs = [['title' => {intl l="Contact Us"}, 'url'=>{url path="/contact"}]]}
{/block} {/block}
{block name="main-content"} {block name="main-content"}
<div class="main"> <div class="main">
<article class="col-main" role="main" aria-labelledby="main-label"> <article class="col-main" role="main" aria-labelledby="main-label">
<h1 id="main-label" class="page-header">{intl l="Contact us"}</h1> <h1 id="main-label" class="page-header">{intl l="Contact Us"}</h1>
<div id="google-map"> <div id="google-map">
<iframe class="map" width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=london&aq=&sll=52.8382,-2.327815&sspn=9.377429,22.126465&ie=UTF8&hq=&hnear=London,+United+Kingdom&t=m&z=10&ll=51.511214,-0.119824&output=embed&iwloc=near"></iframe> <iframe class="map" width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=london&aq=&sll=52.8382,-2.327815&sspn=9.377429,22.126465&ie=UTF8&hq=&hnear=London,+United+Kingdom&t=m&z=10&ll=51.511214,-0.119824&output=embed&iwloc=near"></iframe>

View File

@@ -18,11 +18,11 @@
{if $IS_PROMO == 1} {if $IS_PROMO == 1}
{assign "real_price" $PROMO_TAXED_PRICE} {assign "real_price" $PROMO_TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$PROMO_TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$PROMO_TAXED_PRICE} {currency attr="symbol"}</span></div>
<small class="old-price"> <span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></small> <small class="old-price"> <span class="price">{$TAXED_PRICE} {currency attr="symbol"}</span></small>
{else} {else}
{assign "real_price" $TAXED_PRICE} {assign "real_price" $TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$TAXED_PRICE} {currency attr="symbol"}</span></div>
{/if} {/if}
</td> </td>
@@ -30,7 +30,7 @@
</table> </table>
{/loop} {/loop}
<a href="{url path="/cart"}" role="button" class="btn btn_add_to_cart pull-right"><span>{intl l="View cart"}</span></a> <a href="{url path="/cart"}" role="button" class="btn btn_add_to_cart pull-right"><span>{intl l="View Cart"}</span></a>
<button type="button" class="btn btn-checkout pull-right" data-dismiss="modal"><span>{intl l="Continue Shopping"}</span></button> <button type="button" class="btn btn-checkout pull-right" data-dismiss="modal"><span>{intl l="Continue Shopping"}</span></button>
</div> </div>

View File

@@ -34,7 +34,7 @@
{else} {else}
{assign "real_price" $TAXED_PRICE} {assign "real_price" $TAXED_PRICE}
{/if} {/if}
<span class="qty">{$QUANTITY}</span> X <span class="price" style="font-size:1em;">{currency attr="symbol"}{$real_price}</span></div> <span class="qty">{$QUANTITY}</span> X <span class="price" style="font-size:1em;">{$real_price} {currency attr="symbol"}</span></div>
{assign "total_price" $total_price + ($QUANTITY * $real_price)} {assign "total_price" $total_price + ($QUANTITY * $real_price)}
</td> </td>
</tr> </tr>
@@ -49,7 +49,7 @@
</td> </td>
<td class="total"> <td class="total">
<div class="total-price"> <div class="total-price">
<span class="price">{currency attr="symbol"}{$total_price}</span> <span class="price">{$total_price} {currency attr="symbol"}</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@@ -0,0 +1,35 @@
<div class="jumbotron">
<h1>{intl l="Product Empty Title"}</h1>
<p>{intl l="Product Empty Message"}</p>
<p><a href="{url path="/admin"}" class="btn btn-jumbotron btn-lg" role="button">{intl l="Product Empty Button"}</a></p>
</div>
<section id="products-new">
<div class="products-heading">
<h2>{intl l="Latest"}</h2>
</div>
<div class="products-content">
<ul class="products-grid product-col-4">
{for $count=1 to 4}
<li class="item">
<article>
<a href="{url path="/admin"}" tabindex="-1" class="product-image">
{images file='../assets/img/280x196.png'}<img src="{$asset_url}" alt="{intl l="Demo product title"}">{/images}
<span class="mask"></span>
</a>
<a href="{url path="/admin"}" class="product-info">
<h3 class="name">{intl l="Demo product title"}</h3>
<div class="short-description">{intl l="Demo product description"}</div>
<div class="product-price">
<div class="price-container">
<span class="regular-price"><span class="price">99.99 {currency attr="symbol"}</span></span>
</div>
</div>
</a>
</article><!-- /product -->
</li>
{/for}
</ul>
</div>
</section><!-- #products-new -->

View File

@@ -1,5 +1,7 @@
<li class="item"> <li class="item">
{assign var="hasSubmit" value = false} {assign var="hasSubmit" value = false}
{assign var="productTitle" value="{$TITLE}"}
<article itemscope itemtype="http://schema.org/Product"> <article itemscope itemtype="http://schema.org/Product">
<!-- Use the meta tag to specify content that is not visible on the page in any way --> <!-- Use the meta tag to specify content that is not visible on the page in any way -->
{loop name="brand.feature" type="feature" product=$ID title="brand"} {loop name="brand.feature" type="feature" product=$ID title="brand"}
@@ -15,14 +17,16 @@
<a href="{$URL}" itemprop="url" tabindex="-1" class="product-image"> <a href="{$URL}" itemprop="url" tabindex="-1" class="product-image">
{loop name="product_thumbnail" type="image" product=$ID width="{$width}" height="{$height}" resize_mode="borders" limit="1"} {loop name="product_thumbnail" type="image" product=$ID width="{$width}" height="{$height}" resize_mode="borders" limit="1"}
<img itemprop="image" src="{$IMAGE_URL}" alt="Product #{$LOOP_COUNT}"> <img itemprop="image" src="{$IMAGE_URL}" alt="{$productTitle}">
{/loop} {/loop}
{elseloop rel="product_thumbnail"}
{images file='../assets/img/218x146.png'}<img itemprop="image" src="{$asset_url}" alt="{$productTitle}">{/images}
{/elseloop}
<span class="mask"></span> <span class="mask"></span>
</a> </a>
<div class="product-info"> <div class="product-info">
<h3 class="name"><a href="{$URL}"><span itemprop="name">{$TITLE}</span></a></h3> <h3 class="name"><a href="{$URL}"><span itemprop="name">{$productTitle}</span></a></h3>
{if $hasDescription} {if $hasDescription}
<div class="description" itemprop="description"> <div class="description" itemprop="description">
<p>{$DESCRIPTION}</p> <p>{$DESCRIPTION}</p>

View File

@@ -1,7 +1,7 @@
<div class="toolbar toolbar-{$toolbar}" role="toolbar"> <div class="toolbar toolbar-{$toolbar}" role="toolbar">
{if $toolbar == "top" } {if $toolbar == "top" }
<div class="sorter-container"> <div class="sorter-container">
{*<span class="amount">9 {intl l="Item(s)"}</span>*} <span class="amount">{if ($amount > 1)}{intl l="%nb Items" nb="{$amount}"}{else}{intl l="%nb Item" nb="{$amount}"}{/if}</span>
<span class="limiter"> <span class="limiter">
<label for="limit-top">{intl l="Show"}</label> <label for="limit-top">{intl l="Show"}</label>
@@ -37,31 +37,19 @@
</div><!-- /.sorter --> </div><!-- /.sorter -->
{else} {else}
<div class="pagination-container" role="pagination" aria-labelledby="pagination-label-{$toolbar}}"> {if $amount > $limit}
<strong id="pagination-label-{$toolbar}}" class="pagination-label">{intl l="Pagination"}</strong> <div class="pagination-container" role="pagination" aria-labelledby="pagination-label-{$toolbar}}">
<ul class="pagination"> <strong id="pagination-label-{$toolbar}}" class="pagination-label">{intl l="Pagination"}</strong>
<ul class="pagination">
{if $product_page > 1} <li{if $product_page le 1} class="disabled"{/if}><a href="{url path={navigate to="current"} page={$product_page-1} }" title="{intl l="Previous"}" class="prev"><i class="icon-prev"></i></a></li>
<li><a href="{url path={navigate to="current"} page={$product_page-1} }" title="{intl l="Previous"}" class="prev"><i class="icon-prev"></i></a></li> {pageloop rel="product_list"}
{else} <li{if $PAGE eq $CURRENT} class="active"{/if}><a href="{url path={navigate to="current"} page=$PAGE }"> {$PAGE} </a></li>
<li><a href="#" title="{intl l="Previous"}" class="prev"><i class="icon-prev"></i></a></li> {if $PAGE eq $LAST}
{/if} <li{if $CURRENT eq $LAST} class="disabled"{/if}><a href="{url path={navigate to="current"} page={$CURRENT+1} }" title="{intl l="Next"}" class="next"><i class="icon-next"></i></a></li>
{pageloop rel="product_list"}
{if $PAGE != $CURRENT}
<li><a href="{url path={navigate to="current"} page=$PAGE }"> {$PAGE} </a></li>
{else}
<li class="active"><a href="#" tabindex="-1">{$PAGE}</a></li>
{/if}
{if $PAGE == $LAST}
{if $CURRENT < $LAST}
<li><a href="{url path={navigate to="current"} page={$CURRENT+1} }" title="{intl l="Next"}" class="next"><i class="icon-next"></i></a></li>
{else}
<li><a href="#" title="{intl l="Next"}" class="next"><i class="icon-next"></i></a></li>
{/if} {/if}
{/pageloop}
{/if} </ul>
{/pageloop} </div>
</ul> {/if}
</div>
{/if} {/if}
</div><!-- /.toolbar toolbar-<?php echo $toolbar; ?> --> </div><!-- /.toolbar toolbar-<?php echo $toolbar; ?> -->

View File

@@ -14,101 +14,108 @@
<figure class="item active"> <figure class="item active">
{images file='assets/img/carousel/slider1.png'}<img src="{$asset_url}" alt="img1">{/images} {images file='assets/img/carousel/slider1.png'}<img src="{$asset_url}" alt="img1">{/images}
</figure> </figure>
{* <figure class="item"> <figure class="item">
{images file='assets/img/carousel/slider2.png'}<img src="{$asset_url}" alt="img2">{/images} {images file='assets/img/carousel/slider2.png'}<img src="{$asset_url}" alt="img2">{/images}
</figure> </figure>
<figure class="item"> <figure class="item">
{images file='assets/img/carousel/slider3.png'}<img src="{$asset_url}" alt="img3">{/images} {images file='assets/img/carousel/slider3.png'}<img src="{$asset_url}" alt="img3">{/images}
</figure>*} </figure>
</div> </div>
</div> </div>
{* <a class="left carousel-control" href="#carousel" data-slide="prev"><span class="icon-prev"></span></a> <a class="left carousel-control" href="#carousel" data-slide="prev"><span class="icon-prev"></span></a>
<a class="right carousel-control" href="#carousel" data-slide="next"><span class="icon-next"></span></a>*} <a class="right carousel-control" href="#carousel" data-slide="next"><span class="icon-next"></span></a>
</div> </div>
</section><!-- #carousel --> </section><!-- #carousel -->
{if {count type="product"} eq 0}
{include file="includes/product-empty.html"}
{else}
{ifloop rel="product_new"}
<section id="products-new">
<div class="products-heading">
<h2>{intl l="Latest"} <a href="{url path="/view_all" type="new"}" class="btn-all">{intl l="+ View All"}</a></h2>
</div>
<section id="products-new"> <div class="products-content">
<div class="products-heading"> <ul class="products-grid product-col-4">
<h2>{intl l="Latest"} <a href="{url path="/view_all" type="new"}" class="btn-all">{intl l="+ View All"}</a></h2> {loop name="product_new" type="product" limit="4" new="yes"}
</div> <li class="item">
<article itemscope itemtype="http://schema.org/Product">
<div class="products-content"> <!-- Use the meta tag to specify content that is not visible on the page in any way -->
<ul class="products-grid product-col-4"> {$product_id=$ID}
{loop name="product_new" type="product" limit="4" new="yes"} {loop name="brand.feature" type="feature" product="{$ID}" title="brand"}
<li class="item"> {loop name="brand.value" type="feature_value" feature="{$ID}" product="$product_id"}
<article itemscope itemtype="http://schema.org/Product"> <meta itemprop="brand" content="{$TITLE}">
<!-- Use the meta tag to specify content that is not visible on the page in any way --> {/loop}
{$product_id=$ID}
{loop name="brand.feature" type="feature" product="{$ID}" title="brand"}
{loop name="brand.value" type="feature_value" feature="{$ID}" product="$product_id"}
<meta itemprop="brand" content="{$TITLE}">
{/loop} {/loop}
{/loop} {loop name="brand.feature" type="feature" product=$ID title="isbn"}
{loop name="brand.feature" type="feature" product=$ID title="isbn"} {loop name="brand.value" type="feature_value" feature=$ID product=$product_id}
{loop name="brand.value" type="feature_value" feature=$ID product=$product_id} <meta itemprop="productID" content="isbn:{$TITLE}">
<meta itemprop="productID" content="isbn:{$TITLE}"> {/loop}
{/loop} {/loop}
{/loop}
<a href="{$URL}" itemprop="url" tabindex="-1" class="product-image"> <a href="{$URL}" itemprop="url" tabindex="-1" class="product-image">
{ifloop rel="image_product_new" } {ifloop rel="image_product_new" }
<img itemprop="image" <img itemprop="image"
{loop name="image_product_new" type="image" limit="1" product="{$ID}" force_return="true" width="280" height="196" resize_mode="borders"} {loop name="image_product_new" type="image" limit="1" product="{$ID}" force_return="true" width="280" height="196" resize_mode="borders"}
src="{$IMAGE_URL}" src="{$IMAGE_URL}"
{/loop} {/loop}
alt="Product #{$LOOP_COUNT}" > alt="Product #{$LOOP_COUNT}" >
{/ifloop} {/ifloop}
{elseloop rel="image_product_new"} {elseloop rel="image_product_new"}
{images file='assets/img/280x196.png'}<img itemprop="image" src="{$asset_url}" alt="Product #{$LOOP_COUNT}">{/images} {images file='assets/img/280x196.png'}<img itemprop="image" src="{$asset_url}" alt="Product #{$LOOP_COUNT}">{/images}
{/elseloop} {/elseloop}
<span class="mask"></span> <span class="mask"></span>
</a> </a>
<a href="{$URL}" class="product-info"> <a href="{$URL}" class="product-info">
<h3 class="name"><span itemprop="name">{$TITLE}</span></h3> <h3 class="name"><span itemprop="name">{$TITLE}</span></h3>
<div class="short-description" itemprop="description">{$CHAPO}</div> <div class="short-description" itemprop="description">{$CHAPO}</div>
<div class="product-price"> <div class="product-price">
<div class="price-container" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <div class="price-container" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
{loop type="category" name="category_tag" id=$DEFAULT_CATEGORY} {loop type="category" name="category_tag" id=$DEFAULT_CATEGORY}
<meta itemprop="category" content="{$TITLE}"> <meta itemprop="category" content="{$TITLE}">
{/loop} {/loop}
<meta itemprop="itemCondition" itemscope itemtype="http://schema.org/NewCondition"> <!-- List of condition : NewCondition, DamagedCondition, UsedCondition, RefurbishedCondition --> <meta itemprop="itemCondition" itemscope itemtype="http://schema.org/NewCondition"> <!-- List of condition : NewCondition, DamagedCondition, UsedCondition, RefurbishedCondition -->
<meta itemprop="priceCurrency" content="{currency attr="code"}"> <!-- List of currency : The currency used to describe the product price, in three-letter ISO format. --> <meta itemprop="priceCurrency" content="{currency attr="code"}"> <!-- List of currency : The currency used to describe the product price, in three-letter ISO format. -->
<link itemprop="availability" href="http://schema.org/InStock" content="in_stock" /> <link itemprop="availability" href="http://schema.org/InStock" content="in_stock" />
<!-- List of availibility : <!-- List of availibility :
out_of_stock : http://schema.org/OutOfStock out_of_stock : http://schema.org/OutOfStock
in_stock : http://schema.org/InStock in_stock : http://schema.org/InStock
instore_only : http://schema.org/InStoreOnly instore_only : http://schema.org/InStoreOnly
preorder : http://schema.org/PreOrder preorder : http://schema.org/PreOrder
online_only : http://schema.org/OnlineOnly online_only : http://schema.org/OnlineOnly
--> -->
<span class="regular-price"><span itemprop="price" class="price">{format_number number="{$BEST_TAXED_PRICE}"} {currency attr="symbol"}</span></span> <span class="regular-price"><span itemprop="price" class="price">{format_number number="{$BEST_TAXED_PRICE}"} {currency attr="symbol"}</span></span>
</div>
</div> </div>
</div> </a>
</a> </article><!-- /product -->
</article><!-- /product --> </li>
</li> {/loop}
{/loop} </ul>
</div>
</section><!-- #products-new -->
{/ifloop}
</ul> {ifloop rel="product_promo"}
</div> <section id="products-offer">
</section><!-- #products-new --> <div class="products-heading">
<h2>{intl l="Offers"} <a href="{url path="/view_all" type="offers"}" class="btn-all">{intl l="+ View All"}</a></h2>
</div>
<section id="products-offer"> <div class="products-content">
<div class="products-heading"> <ul class="products-grid product-col-5 hover-effect">
<h2>{intl l="Offers"} <a href="{url path="/view_all" type="offers"}" class="btn-all">{intl l="+ View All"}</a></h2> {loop name="product_promo" type="product" limit="5" promo="yes"}
</div> {include file="includes/single-product.html" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"}
{/loop}
</ul>
</div>
</section><!-- #products-offer -->
{/ifloop}
{/if}
<div class="products-content">
<ul class="products-grid product-col-5 hover-effect">
{loop name="product_promo" type="product" limit="5" promo="yes"}
{include file="includes/single-product.html" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"}
{/loop}
</ul>
</div>
</section><!-- #products-offer -->
{/block} {/block}

View File

@@ -134,7 +134,7 @@
{/if} {/if}
<label for="delivery-method_{$ID}"> <label for="delivery-method_{$ID}">
<input type="radio" name="{$name}" id="delivery-method_{$ID}"{if $isDeliveryMethodChecked} checked="checked"{/if} value="{$ID}"> <input type="radio" name="{$name}" id="delivery-method_{$ID}"{if $isDeliveryMethodChecked} checked="checked"{/if} value="{$ID}">
<strong>{$TITLE}</strong> / {currency attr="symbol"} {$POSTAGE} <strong>{$TITLE}</strong> / {$POSTAGE} {currency attr="symbol"}
</label> </label>
{/form_field} {/form_field}
</div> </div>

View File

@@ -103,18 +103,18 @@
<td class="unitprice"> <td class="unitprice">
{if $IS_PROMO == 1} {if $IS_PROMO == 1}
{assign "real_price" $PROMO_TAXED_PRICE} {assign "real_price" $PROMO_TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$PROMO_TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$PROMO_TAXED_PRICE} {currency attr="symbol"}</span></div>
<small class="old-price">{intl l="instead of"} <span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></small> <small class="old-price">{intl l="instead of"} <span class="price">{$TAXED_PRICE} {currency attr="symbol"}</span></small>
{else} {else}
{assign "real_price" $TAXED_PRICE} {assign "real_price" $TAXED_PRICE}
<div class="special-price"><span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></div> <div class="special-price"><span class="price">{$TAXED_PRICE} {currency attr="symbol"} </span></div>
{/if} {/if}
</td> </td>
<td class="qty"> <td class="qty">
<span class="price">{$QUANTITY}</span> <span class="price">{$QUANTITY}</span>
</td> </td>
<td class="subprice"> <td class="subprice">
<span class="price">{currency attr="symbol"} {$real_price * $QUANTITY}</span> <span class="price">{$real_price * $QUANTITY} {currency attr="symbol"}</span>
</td> </td>
</tr> </tr>
@@ -127,7 +127,7 @@
<th class="shipping">{intl l="Shipping Tax"}</th> <th class="shipping">{intl l="Shipping Tax"}</th>
<td class="shipping"> <td class="shipping">
<div class="shipping-price"> <div class="shipping-price">
<span class="price">{currency attr="symbol"} {order attr="postage"}</span> <span class="price">{order attr="postage"} {currency attr="symbol"}</span>
</div> </div>
</td> </td>
</tr> </tr>
@@ -153,7 +153,7 @@
<th class="total">{intl l="Total"}</th> <th class="total">{intl l="Total"}</th>
<td class="total"> <td class="total">
<div class="total-price"> <div class="total-price">
<span class="price">{currency attr="symbol"} {{cart attr="total_taxed_price"} + {order attr="postage"}}</span> <span class="price">{{cart attr="total_taxed_price"} + {order attr="postage"}} {currency attr="symbol"}</span>
</div> </div>
</td> </td>
</tr> </tr>

View File

@@ -42,7 +42,7 @@
<dt>{intl l="Date"} : </dt> <dt>{intl l="Date"} : </dt>
<dd>{format_date date=$CREATE_DATE output="date"}</dd> <dd>{format_date date=$CREATE_DATE output="date"}</dd>
<dt>{intl l="Total"} : </dt> <dt>{intl l="Total"} : </dt>
<dd>{loop type="currency" name="order-currency" id=$CURRENCY}{$SYMBOL}{/loop} {$TOTAL_TAXED_AMOUNT}</dd> <dd>{$TOTAL_TAXED_AMOUNT} {loop type="currency" name="order-currency" id=$CURRENCY}{$SYMBOL}{/loop}</dd>
</dl> </dl>
</div> </div>
</div> </div>

View File

@@ -33,12 +33,15 @@
{/loop} {/loop}
<section id="product-gallery"> <section id="product-gallery">
{ifloop rel="image.main"}
<figure class="product-image"> <figure class="product-image">
{loop type="image" name="image.main" product="{$ID}" width="560" height="445" resize_mode="borders" limit="1"} {loop type="image" name="image.main" product="{$ID}" width="560" height="445" resize_mode="borders" limit="1"}
<img src="{$IMAGE_URL}" alt="{$TITLE}" class="img-responsive" itemprop="image" data-toggle="magnify"> <img src="{$IMAGE_URL}" alt="{$TITLE}" class="img-responsive" itemprop="image" data-toggle="magnify">
{/loop} {/loop}
</figure> </figure>
{/ifloop}
{ifloop rel="image.carousel"}
<div id="product-thumbnails" class="slide" style="position:relative;"> <div id="product-thumbnails" class="slide" style="position:relative;">
<div class="carousel-inner"> <div class="carousel-inner">
<div class="item active"> <div class="item active">
@@ -76,16 +79,17 @@
<a class="right carousel-control" href="#product-thumbnails" data-slide="next"><i class="icon-next"></i></a> <a class="right carousel-control" href="#product-thumbnails" data-slide="next"><i class="icon-next"></i></a>
{/ifloop} {/ifloop}
</div> </div>
{/ifloop}
</section> </section>
<section id="product-details"> <section id="product-details">
<div class="product-info"> <div class="product-info">
<h1 class="name"><span itemprop="name">{$TITLE}</span></h1> <h1 class="name"><span itemprop="name">{$TITLE}</span></h1>
<span itemprop="sku" class="sku">{intl l='Ref.'}: {$REF}</span> {if $REF}<span itemprop="sku" class="sku">{intl l='Ref.'}: {$REF}</span>{/if}
<div class="short-description"> {if $POSTSCRIPTUM}<div class="short-description">
<p>{$POSTSCRIPTUM}</p> <p>{$POSTSCRIPTUM}</p>
</div> </div>{/if}
</div> </div>
{loop name="stock_meta" type="product_sale_elements" product="$ID"} {loop name="stock_meta" type="product_sale_elements" product="$ID"}
@@ -110,8 +114,7 @@
<div class="availability"> <div class="availability">
<span class="availibity-label">{intl l="Availability"}: </span> <span class="availibity-label">{intl l="Availability"}: </span>
<span itemprop="availability" href="{$current_stock_href}" class="{$current_stock_class}" id="stockInformations"> <span itemprop="availability" href="{$current_stock_href}" class="{$current_stock_class}" id="stockInformations">
<span class="in">{intl l='In stock'}</span><span class="out">{intl l='Out of stock'}</span> <span class="in">{intl l='In Stock'}</span><span class="out">{intl l='Out of Stock'}</span>
</span> </span>
</div> </div>
@@ -142,10 +145,8 @@
<input type="hidden" name="{$name}" value="1"> <input type="hidden" name="{$name}" value="1">
{/form_field} {/form_field}
{if $form_error}<div class="alert alert-error">{$form_error_message}</div>{/if} {if $form_error}<div class="alert alert-error">{$form_error_message}</div>{/if}
{form_field form=$form field="product"} {form_field form=$form field="product"}
<input id="{$label_attr.for}" type="hidden" name="{$name}" value="{$ID}" {$attr} > <input id="{$label_attr.for}" type="hidden" name="{$name}" value="{$ID}" {$attr} >
{/form_field} {/form_field}
@@ -172,12 +173,12 @@
{form_field form=$form field='quantity'} {form_field form=$form field='quantity'}
<div class="form-group group-qty {if $error}has-error{elseif $value != "" && !$error}has-success{/if}"> <div class="form-group group-qty {if $error}has-error{elseif $value != "" && !$error}has-success{/if}">
<label for="{$label_attr.for}">{$label}</label> <label for="{$label_attr.for}">{$label}</label>
<input type="number" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value|default:1}" min="1" required> <input type="number" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value|default:1}" min="1" required>
{if $error } {if $error }
<span class="help-block"><i class="icon-remove"></i> {$message}</span> <span class="help-block">{$message}</span>
{elseif $value != "" && !$error} {elseif $value != "" && !$error}
<span class="help-block"><i class="icon-ok"></i></span> <span class="help-block"><i class="icon-ok"></i></span>
{/if} {/if}
</div> </div>
{/form_field} {/form_field}
@@ -189,29 +190,38 @@
{/form} {/form}
</section> </section>
<section id="product-tabs"> {strip}
<ul class="nav nav-tabs" role="tablist"> {capture "additional"}
<li class="active" role="presentation"><a id="tab1" href="#description" data-toggle="tab" role="tab">{intl l="Description"}</a></li> {ifloop rel="feature_value_info"}
<li role="presentation"><a id="tab2" href="#additional" data-toggle="tab" role="tab">{intl l="Additional Info"}</a></li> <ul>
</ul>
<div class="tab-content">
<div class="tab-pane active in" id="description" itemprop="description" role="tabpanel" aria-labelledby="tab1">
<p>{$DESCRIPTION}</p>
</div>
<div class="tab-pane" id="additional" role="tabpanel" aria-labelledby="tab2">
{ifloop rel="feature_value_info"}
<ul>
{loop name="feature_info" type="feature" product="{$ID}"} {loop name="feature_info" type="feature" product="{$ID}"}
<li> <li>
<strong>{$TITLE}</strong> : <strong>{$TITLE}</strong> :
{loop name="feature_value_info" type="feature_value" feature="{$ID}" product="{product attr="id"}"} {loop name="feature_value_info" type="feature_value" feature="{$ID}" product="{product attr="id"}"}
{$TITLE} {$TITLE}
{/loop} {/loop}
</li> </li>
{/loop} {/loop}
</ul> </ul>
{/ifloop} {/ifloop}
{/capture}
{/strip}
<section id="product-tabs">
<ul class="nav nav-tabs" role="tablist">
<li class="active" role="presentation"><a id="tab1" href="#description" data-toggle="tab" role="tab">{intl l="Description"}</a></li>
{if $smarty.capture.additional ne ""}<li role="presentation"><a id="tab2" href="#additional" data-toggle="tab" role="tab">{intl l="Additional Info"}</a></li>{/if}
</ul>
<div class="tab-content">
<div class="tab-pane active in" id="description" itemprop="description" role="tabpanel" aria-labelledby="tab1">
<p>{$DESCRIPTION|default:'N/A'}</p>
</div> </div>
{if $smarty.capture.additional ne ""}
<div class="tab-pane" id="additional" role="tabpanel" aria-labelledby="tab2">
{$smarty.capture.additional}
</div>
{/if}
</div> </div>
</section> </section>
</article><!-- /product --> </article><!-- /product -->

View File

@@ -245,6 +245,21 @@
</div> </div>
</fieldset> </fieldset>
{form_field form=$form field="newsletter"}
<div class="form-group group-newsletter{if $error} has-error{/if}">
<div class="control-input">
<div class="checkbox">
<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}>{$label}
</label>
{if $error }
<span class="help-block">{$message}</span>
{/if}
</div>
</div>
</div><!--/.form-group-->
{/form_field}
{form_field form=$form field="agreed"} {form_field form=$form field="agreed"}
<div class="form-group group-agreed{if $error} has-error{/if}"> <div class="form-group group-agreed{if $error} has-error{/if}">
<div class="control-input"> <div class="control-input">
@@ -262,7 +277,7 @@
<div class="form-group group-btn"> <div class="form-group group-btn">
<div class="control-btn"> <div class="control-btn">
<button type="submit" class="btn btn-register">{intl l="Sign in"}</button> <button type="submit" class="btn btn-register">{intl l="Register"}</button>
</div> </div>
</div><!--/.form-group--> </div><!--/.form-group-->
</form> </form>

View File

@@ -20,14 +20,14 @@
<article class="col-main {$smarty.get.mode|default:"grid"}" role="main" aria-labelledby="main-label"> <article class="col-main {$smarty.get.mode|default:"grid"}" role="main" aria-labelledby="main-label">
<h1 id="main-label" class="page-header">{intl l="Search Result for"} <small>{$smarty.get.q}</small></h1> <h1 id="main-label" class="page-header">{intl l="Search Result for"} <small>{$smarty.get.q}</small></h1>
{include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order} {assign var="amount" value="{count type="product" title="{$smarty.get.q}"}"}
{include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order amount={$amount}}
<div id="category-products"> <div id="category-products">
<div class="products-content"> <div class="products-content">
{ifloop rel="product_list"} {ifloop rel="product_list"}
<ul class="product-col-3"> <ul class="product-col-3">
{loop type="product" name="product_list" title="{$smarty.get.q}" limit=$limit page=$product_page order=$product_order} {loop type="product" name="product_list" title="{$smarty.get.q}" limit=$limit page=$product_page order=$product_order}
{include file="includes/single-product.html" product_id=$ID hasBtn=true hasDescription=true width="369" height="247"} {include file="includes/single-product.html" product_id=$ID hasBtn=true hasDescription=true width="369" height="247"}
{assign "products_count" $LOOP_TOTAL}
{/loop} {/loop}
</ul> </ul>
{/ifloop} {/ifloop}
@@ -37,7 +37,7 @@
</div> </div>
</div><!-- /#category-products --> </div><!-- /#category-products -->
{ifloop rel="product_list"} {ifloop rel="product_list"}
{include file="includes/toolbar.html" toolbar="bottom"} {include file="includes/toolbar.html" toolbar="bottom" amount={$amount}}
{/ifloop} {/ifloop}
</article> </article>

View File

@@ -13,43 +13,34 @@
{block name="main-content"} {block name="main-content"}
<div class="main"> <div class="main">
{* Parameters *}
{$limit={$smarty.get.limit|default:8}} {$limit={$smarty.get.limit|default:8}}
{$product_page={$smarty.get.page|default:1}} {$product_page={$smarty.get.page|default:1}}
{$product_order={$smarty.get.order|default:'alpha'}} {$product_order={$smarty.get.order|default:'new'}}
{$product_type={$smarty.get.type|default:'new'}}
<article class="col-main {$smarty.get.mode|default:"grid"}" role="main" aria-labelledby="main-label"> <article class="col-main {$smarty.get.mode|default:"grid"}" role="main" aria-labelledby="main-label">
{if $smarty.get.type == "new"} <h1 id="main-label" class="page-header">{if $product_type == "new"}{intl l="Latest products"}{elseif $product_type == "offers"}{intl l="Product Offers"}{/if}</h1>
<h1 id="main-label" class="page-header">{intl l="View all"} {$smarty.get.type} {intl l="products"}</h1> {assign var="amount" value="{count type="product" promo="{$product_type == "offers"}" new="{$product_type == "new"}"}"}
{else} {include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order amount={$amount}}
<h1 id="main-label" class="page-header">{intl l="View all"} {intl l="offers"}</h1> <div id="category-products">
{/if} <div class="products-content">
{include file="includes/toolbar.html" toolbar="top" limit=$limit order=$product_order} {ifloop rel="product_list"}
<div id="category-products"> <ul class="product-col-3">
<div class="products-content"> {loop type="product" promo="{$product_type == "offers"}" new="{$product_type == "new"}" name="product_list" limit=$limit page=$product_page order=$product_order}
{ifloop rel="product_list"}
<ul class="product-col-3">
{if $smarty.get.type == "new"}
{loop type="product" name="product_list" limit=$limit page=$product_page order=$product_order}
{include file="includes/single-product.html" product_id=$ID hasBtn=true hasDescription=true width="700" height="320"} {include file="includes/single-product.html" product_id=$ID hasBtn=true hasDescription=true width="700" height="320"}
{/loop} {/loop}
{else} </ul>
{loop type="product" name="product_list" promo="yes" limit=$limit page=$product_page order=$product_order} {/ifloop}
{include file="includes/single-product.html" product_id=$ID hasBtn=true hasDescription=true width="700" height="320"} {elseloop rel="product_list"}
{/loop} <h2 class="text-center">{intl l="No results found"} </h2>
{/if} {/elseloop}
</div>
</div><!-- /#category-products -->
</ul> {ifloop rel="product_list"}
{/ifloop} {include file="includes/toolbar.html" toolbar="bottom" amount={$amount}}
{elseloop rel="product_list"} {/ifloop}
<h2 class="text-center">{intl l="No results found"} </h2>
{/elseloop}
</div>
</div><!-- /#category-products -->
{ifloop rel="product_list"}
{include file="includes/toolbar.html" toolbar="bottom"}
{/ifloop}
</article> </article>
</div><!-- /.layout --> </div><!-- /.layout -->