Merge branch 'master' of ssh://nas.triumph31.fr:414/volume2/GitStation/auxbieauxlegumes

This commit is contained in:
2021-05-17 21:09:13 +02:00
15 changed files with 287 additions and 216 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

View File

@@ -25,5 +25,11 @@
<loop name="recipe_steps" class="Recettes\Loop\StepsLoop"/> <loop name="recipe_steps" class="Recettes\Loop\StepsLoop"/>
</loops> </loops>
<services>
<service id="recipe.listener" class="Recettes\EventListener\ContentListener" scope="request">
<argument type="service" id="request"/>
<tag name="kernel.event_subscriber"/>
</service>
</services>
</config> </config>

View File

@@ -11,18 +11,36 @@
<route id="recipe.save" path="/admin/module/Recettes/save" methods="post"> <route id="recipe.save" path="/admin/module/Recettes/save" methods="post">
<default key="_controller">Recettes\Controller\BackController::saveRecipe</default> <default key="_controller">Recettes\Controller\BackController::saveRecipe</default>
</route> </route>
<route id="recipe.delete_product" path="/admin/module/Recettes/remove-product/{recipeId}/{pseId}/{contentId}"> <route id="recipe.delete_product" path="/admin/module/Recettes/remove-product/{recipeId}/{pseId}/{contentId}">
<default key="_controller">Recettes\Controller\BackController::removeProduct</default> <default key="_controller">Recettes\Controller\BackController::removeProduct</default>
<requirement key="recipeId">\d+</requirement> <requirement key="recipeId">\d+</requirement>
<requirement key="pseId">\d+</requirement> <requirement key="pseId">\d+</requirement>
<requirement key="contentId">\d+</requirement> <requirement key="contentId">\d+</requirement>
</route> </route>
<route id="recipe.search_product" path="/admin/module/Recettes/search-product"> <route id="recipe.search_product" path="/admin/module/Recettes/search-product">
<default key="_controller">Recettes\Controller\BackController::searchProduct</default> <default key="_controller">Recettes\Controller\BackController::searchProduct</default>
</route> </route>
<route id="recipe.add_product" path="/admin/module/Recettes/add-product/{contentId}"> <route id="recipe.add_product" path="/admin/module/Recettes/add-product/{contentId}">
<default key="_controller">Recettes\Controller\BackController::addProduct</default> <default key="_controller">Recettes\Controller\BackController::addProduct</default>
<requirement key="contentId">\d+</requirement> <requirement key="contentId">\d+</requirement>
</route> </route>
<route id="recipe.add_step" path="/admin/module/Recettes/add-step" methods="post">
<default key="_controller">Recettes\Controller\BackController::addStep</default>
</route>
<route id="recipe.remove_step" path="/admin/module/Recettes/remove-step/{recipeId}/{step}/{contentId}">
<default key="_controller">Recettes\Controller\BackController::removeStep</default>
<requirement key="step">\d+</requirement>
<requirement key="recipeId">\d+</requirement>
<requirement key="contentId">\d+</requirement>
</route>
<route id="recipe.update_position" path="/admin/module/Recettes/update-position">
<default key="_controller">Recettes\Controller\BackController::updatePosition</default>
</route>
</routes> </routes>

View File

@@ -7,6 +7,7 @@ use Propel\Runtime\ActiveQuery\Criteria;
use Propel\Runtime\Exception\PropelException; use Propel\Runtime\Exception\PropelException;
use Propel\Runtime\Propel; use Propel\Runtime\Propel;
use Recettes\Form\RecetteCreateForm; use Recettes\Form\RecetteCreateForm;
use Recettes\Form\StepCreateForm;
use Recettes\Model\Recipe; use Recettes\Model\Recipe;
use Recettes\Model\RecipeProducts; use Recettes\Model\RecipeProducts;
use Recettes\Model\RecipeProductsQuery; use Recettes\Model\RecipeProductsQuery;
@@ -181,4 +182,112 @@ class BackController extends BaseAdminController
return $this->render('includes/related-products', [ 'content_id' => $contentId ]); return $this->render('includes/related-products', [ 'content_id' => $contentId ]);
} }
public function addStep(Request $request)
{
$form = new StepCreateForm($request);
$errorUrl = "";
try {
$formValidate = $this->validateForm($form);
$data = $formValidate->getData();
$recipeId = $data['recipe_id'];
$step = $data['step'];
$description = $data['description'];
$errorUrl = $data['error_url'];
$successUrl = $data['success_url'];
if ($recipeId && $step && $description) {
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($step)
->setDescription($description)
->save();
return new RedirectResponse(URL::getInstance()->absoluteUrl($successUrl));
}
else
return new RedirectResponse(URL::getInstance()->absoluteUrl($errorUrl));
} catch (\Exception $e) {
$error = $e->getMessage();
}
}
public function removeStep($step, $recipeId, $contentId)
{
$con = Propel::getConnection();
$foundStep = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step);
$nextSteps = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->filterByStep($step, Criteria::GREATER_THAN)
->orderByStep()
->find($con);
if ($foundStep) {
$foundStep->delete();
foreach ($nextSteps as $next) {
$nouveauNumero = $next->getStep()-1;
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($nouveauNumero)
->setDescription($next->getDescription())
->save();
$next->delete();
}
}
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
}
public function updatePosition()
{
$step = $this->getRequest()->get('step');
$mode = $this->getRequest()->get('mode');
if ($mode === "up") $replacedStep = $step - 1;
else $replacedStep = $step + 1;
$recipeId = $this->getRequest()->get('recipe_id');
$contentId = $this->getRequest()->get('content_id');
$current = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step);
$replaced = RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($replacedStep);
// On supprime les 2 étapes (celle que l'on déplace et celle que l'on remplace) pour les recréer par la suite.
RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($step)
->delete();
RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->findOneByStep($replacedStep)
->delete();
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($step)
->setDescription($replaced->getDescription())
->save();
(new RecipeSteps())
->setRecipeId($recipeId)
->setStep($replacedStep)
->setDescription($current->getDescription())
->save();
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
}
} }

View File

@@ -0,0 +1,61 @@
<?php
namespace Recettes\EventListener;
use Propel\Runtime\Propel;
use Recettes\Model\RecipeProductsQuery;
use Recettes\Model\RecipeQuery;
use Recettes\Model\RecipeStepsQuery;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Thelia\Action\BaseAction;
use Thelia\Model\Event\ContentEvent;
use Thelia\Core\HttpFoundation\Request;
class ContentListener extends BaseAction implements EventSubscriberInterface
{
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public static function getSubscribedEvents()
{
return [
ContentEvent::PRE_DELETE => [ "deleteRecipeBeforeContent", 100 ]
];
}
public function deleteRecipeBeforeContent(ContentEvent $event)
{
$con = Propel::getConnection();
$contentId = $this->request->request->get('content_id');
$recipeId = RecipeQuery::create()
->findOneByContentId($contentId)
->getId();
if ($recipeId)
{
RecipeStepsQuery::create()
->filterByRecipeId($recipeId)
->find($con)
->delete();
RecipeProductsQuery::create()
->filterByRecipeId($recipeId)
->find($con)
->delete();
RecipeQuery::create()
->findOneByContentId($contentId)
->delete();
}
}
}

View File

@@ -2,6 +2,8 @@
namespace Recettes\Form; namespace Recettes\Form;
use Recettes\Recettes;
use Thelia\Core\Translation\Translator;
use Thelia\Form\BaseForm; use Thelia\Form\BaseForm;
/** /**
@@ -16,12 +18,18 @@ class StepCreateForm extends BaseForm
protected function buildForm() protected function buildForm()
{ {
$this->formBuilder $this->formBuilder
->add(
"recipe_id",
"integer",
[
"required" => true
])
->add( ->add(
"step", "step",
"number", "integer",
[ [
"required" => true, "required" => true,
"label" => "Step", "label" => $this->trans("Step"),
"label_attr" => ['for' => 'step'] "label_attr" => ['for' => 'step']
]) ])
->add( ->add(
@@ -29,8 +37,8 @@ class StepCreateForm extends BaseForm
"textarea", "textarea",
[ [
"required" => true, "required" => true,
"label" => "Description", "label" => $this->trans("Description"),
"label_attr" => ['for' => 'description'] "label_attr" => ['for' => 'description'],
]); ]);
} }
@@ -41,4 +49,14 @@ class StepCreateForm extends BaseForm
{ {
return "recette-step-create"; return "recette-step-create";
} }
protected function trans($id, $parameters = [])
{
if (null === $this->translator) {
$this->translator = Translator::getInstance();
}
return $this->translator->trans($id, $parameters, Recettes::MESSAGE_DOMAIN);
}
} }

View File

@@ -26,4 +26,6 @@ return array(
'Created on' => 'Rédigée le', 'Created on' => 'Rédigée le',
'Save recipe' => 'Sauvegarder la recette', 'Save recipe' => 'Sauvegarder la recette',
'Create a new step' => 'Ajouter une étape à votre recette', 'Create a new step' => 'Ajouter une étape à votre recette',
'No need to step number' => 'Inutile de saisir le numéro de l\'étape dans la description ci-dessus : il sera automatiquement rajouté !',
); );

View File

@@ -4,48 +4,21 @@
<th colspan="2">{intl l="Detail" d="recettes"}</th> <th colspan="2">{intl l="Detail" d="recettes"}</th>
</thead> </thead>
<tbody> <tbody>
{assign var="last_step" value="0"}
{loop name="steps-loop" type="recipe_steps" recipe_id=$recipe_id} {loop name="steps-loop" type="recipe_steps" recipe_id=$recipe_id}
<tr> <tr>
<td> <td>
{$STEP} {$STEP}
{if $LOOP_COUNT > 1} {if $LOOP_COUNT > 1}
<a href="{url path='/admin/module/Recettes/update-position?mode=up&amp;step=%step' step=$STEP}" class="u-position-up"><i class="glyphicon glyphicon-arrow-up"></i></a> <a href="{url path='/admin/module/Recettes/update-position?mode=up&amp;step=%step&amp;recipe_id=%recipe_id&amp;content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-up" id="move-up"><i class="glyphicon glyphicon-arrow-up"></i></a>
{/if} {/if}
{if $LOOP_COUNT < $LOOP_TOTAL} {if $LOOP_COUNT < $LOOP_TOTAL}
<a href="{url path='/admin/module/Recettes/update-position?mode=down&amp;step=%step' step=$STEP}" class="u-position-down"><i class="glyphicon glyphicon-arrow-down"></i></a> <a href="{url path='/admin/module/Recettes/update-position?mode=down&amp;step=%step&amp;recipe_id=%recipe_id&amp;content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-down" id="move-down"><i class="glyphicon glyphicon-arrow-down"></i></a>
{/if}</td> {/if}</td>
<td>{$DESCRIPTION}</td> <td>{$DESCRIPTION|unescape:"html" nofilter}</td>
<td class="text-center"> <td class="text-center">
<a href="{url path='/admin/module/Recettes/remove-step/%recipeId/%step/%contentId' recipeId=$recipe_id step=$STEP contentId=$content_id}" class="delete-step"><i class="glyphicon glyphicon-trash"></i></a> <a href="{url path='/admin/module/Recettes/remove-step/%recipeId/%step/%contentId' recipeId=$recipe_id step=$STEP contentId=$content_id}" class="delete-step"><i class="glyphicon glyphicon-trash"></i></a>
</td> </td>
</tr> </tr>
{if $LOOP_COUNT=$LOOP_TOTAL}{assign var="last_step" value="$STEP"}{/if}
{/loop} {/loop}
</tbody> </tbody>
</table> </table>
<a class="btn btn-default btn-primary"
title="{intl l='Add a new step' d='recettes'}"
data-target="#add-step-modal" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
{form name="recette-step-create"}
{capture "step_create"}
{include file="modal/step-edit.html" form_name="recette-step-create" next_step=($last_step+1)}
{/capture}
{include file="includes/generic-create-dialog.html"
dialog_id = "add-step-modal"
dialog_title = {intl l="Create a new step" d="recettes"}
dialog_body = {$smarty.capture.step_create nofilter}
dialog_ok_label = {intl l="Create"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {$current_url}
form_enctype = {form_enctype form=$form}
}
{/form}

View File

@@ -2,12 +2,19 @@
{form_hidden_fields form=$form} {form_hidden_fields form=$form}
{render_form_field form=$form field="success_url" value={$success_url|default:{url path="/admin/content/update/$contentId?current_tab=recipe"}}} {render_form_field form=$form field="success_url" value={url path="/admin/content/update/$content_id?current_tab=recipe"}}
{render_form_field form=$form field="error_url" value={url path="/admin/content/update/$content_id?current_tab=recipe"}}
{form_field form=$form field="recipe_id"}
<div class="form-group hidden">
<input type="hidden" class="form-control" name="{$name}" id="{$label_attr.for}" value="{$recipe_id}">
</div>
{/form_field}
{form_field form=$form field="step"} {form_field form=$form field="step"}
<div class="form-group"> <div class="form-group">
<label class="control-label" for="{$label_attr.for}">{intl l=$label d="recettes"}</label> <label class="control-label" for="{$label_attr.for}">{intl l=$label d="recettes"}</label>
<input type="text" class="etroit" name="{$name}" id="{$label_attr.for}" value="{$next_step}" disabled /> <input type="text" class="form-control etroit" name="{$name}" id="{$label_attr.for}" value="{$next_step}" readonly />
</div> </div>
{/form_field} {/form_field}
@@ -17,9 +24,9 @@
{intl l=$label d="recettes"} {intl l=$label d="recettes"}
{if $required}<span class="required">*</span>{/if} {if $required}<span class="required">*</span>{/if}
</label> </label>
{form_error form=$form field="description"}{$message}{/form_error} {form_error form=$form field="description"}{$message}{/form_error}
<textarea id="attr-description" name="{$name}" rows="10" class="form-control wysiwyg">{$DESCRIPTION}</textarea> <textarea id="{$name}" name="{$name}" rows="10" class="form-control wysiwyg">{$DESCRIPTION}</textarea>
<span class="help-block">{intl l="No need to step number" d="recettes"}</span>
</div> </div>
{/form_field} {/form_field}

View File

@@ -9,6 +9,12 @@
{assign var="other_ingredients" value=$OTHER_INGREDIENTS} {assign var="other_ingredients" value=$OTHER_INGREDIENTS}
{/loop} {/loop}
{assign var="last_step" value="0"}
{loop name="steps-loop" type="recipe_steps" recipe_id=$recipe_id}
{if $LOOP_COUNT=$LOOP_TOTAL}{assign var="last_step" value="$STEP"}{/if}
{/loop}
<div class="form-container"> <div class="form-container">
{form name="recette_create_form"} {form name="recette_create_form"}
<form id="admin-comment-form" method="post" action="{url path='/admin/module/Recettes/save'}" {form_enctype form=$form} class="clearfix"> <form id="admin-comment-form" method="post" action="{url path='/admin/module/Recettes/save'}" {form_enctype form=$form} class="clearfix">
@@ -18,6 +24,7 @@
{form_field form=$form field="content_id"} {form_field form=$form field="content_id"}
<input type="hidden" name="{$name}" value="{$content_id}"> <input type="hidden" name="{$name}" value="{$content_id}">
{/form_field} {/form_field}
<input type="hidden" class="form-control" name="recipe_id" value="{$recipe_id}">
<br> <br>
<div class="col-md-8"> <div class="col-md-8">
@@ -119,6 +126,11 @@
</div> </div>
<br> <br>
<label class="control-label">Etapes de la recette</label> <label class="control-label">Etapes de la recette</label>
<div style="display: inline-block; margin-left: 50px;">
<a class="btn btn-default btn-primary" title="{intl l='Add a new step' d='recettes'}" data-target="#add-step-modal" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</div>
<div id="steps-block"> <div id="steps-block">
{include file="includes/steps.html" recipe_id="$recipe_id"} {include file="includes/steps.html" recipe_id="$recipe_id"}
</div> </div>
@@ -130,3 +142,20 @@
</form> </form>
{/form} {/form}
</div> </div>
{* CREATE Modal *}
{form name="recette-step-create"}
{capture "step_create"}
{include file="modal/step-edit.html" form_name="recette-step-create" next_step=($last_step+1) recipe_id=$recipe_id content_id=$content_id}
{/capture}
{include file="includes/generic-create-dialog.html"
dialog_id = "add-step-modal"
dialog_title = {intl l="Create a new step" d="recettes"}
dialog_body = {$smarty.capture.step_create nofilter}
dialog_ok_label = {intl l="Create"}
dialog_cancel_label = {intl l="Cancel"}
form_action = {url path="/admin/module/Recettes/add-step"}
form_enctype = {form_enctype form=$form}
}
{/form}

View File

@@ -1,146 +1,62 @@
<?php <?php
return array( return array(
'%nb Item' => '%nb élément',
'%nb Items' => '%nb éléments',
'+' => '+', '+' => '+',
'404' => '404',
'<strong>Sorry!</strong> We are not able to give you a delivery method for your order.' => '<strong>Désolé !</strong>Nous ne pouvons pas trouver de mode de livraison pour votre commande.',
'A new password has been sent to your e-mail address. Please check your mailbox.' => 'Un nouveau mot de passe vient d\'être envoyé à votre adresse e-mail. Merci de vérifier votre boite de réception.',
'A problem occured' => 'Un problème est survenu',
'A summary of your order has been sent to the following address' => 'Un récapitulatif de commande vous a été envoyé par e-mail à l\'adresse suivante',
'Account' => 'Mon compte',
'Add a new address' => 'Ajouter une nouvelle adresse', 'Add a new address' => 'Ajouter une nouvelle adresse',
'Add to cart' => 'Ajouter au panier', 'Add to cart' => 'Ajouter au panier',
'Additional Info' => 'Informations complémentaires', 'Additional Info' => 'Informations complémentaires',
'Address' => 'Adresse',
'Address %nb' => 'Adresse n°', 'Address %nb' => 'Adresse n°',
'Address Update' => 'Mise à jour de l\'adresse',
'All' => 'Tout',
'All brands' => 'Toutes les marques', 'All brands' => 'Toutes les marques',
'All brands in %store' => 'Toutes les marques %store',
'All contents' => 'Tous les contenus', 'All contents' => 'Tous les contenus',
'All contents in' => 'tous les contenus de',
'All product in brand %title' => 'Tous les produits de la marque %title',
'All products' => 'Tous les produits', 'All products' => 'Tous les produits',
'All products for brand %title in %store' => 'Tous les produits %title de %store',
'All products in' => 'Tous les produits de', 'All products in' => 'Tous les produits de',
'Amount' => 'Montant',
'An error occurred' => 'Une erreur est survenue',
'Availability' => 'Disponibilité', 'Availability' => 'Disponibilité',
'Available' => 'Disponible', 'Available' => 'Disponible',
'Back' => 'Retour', 'Back' => 'Retour',
'Billing' => 'Facturation',
'Billing Mode' => 'Mode de facturation',
'Billing address' => 'Adresse de facturation',
'Billing and delivery' => 'Facturation et livraison', 'Billing and delivery' => 'Facturation et livraison',
'Brand information' => 'Marque', 'Brand information' => 'Marque',
'Brands' => 'Marques',
'Cancel' => 'Annuler',
'Cancel Newsletter Subscription' => 'Annuler l\'abonnement à la Newsletter',
'Cart' => 'Panier', 'Cart' => 'Panier',
'Cart total excl. taxes' => 'Total articles HT',
'Cart total incl. taxes' => 'Total articles TTC',
'Categories' => 'Rubriques', 'Categories' => 'Rubriques',
'Change Password' => 'Modifier mon mot de passe',
'Change address' => 'Changer d\'adresse',
'Change my account information' => 'Modifier mes informations personnelles',
'Change my password' => 'Changer mon mot de passe',
'Check my order' => 'Vérifier ma commande',
'Choose your delivery address' => 'Choisissez une adresse de livraison', 'Choose your delivery address' => 'Choisissez une adresse de livraison',
'Choose your delivery method' => 'Choisissez votre moyen de livraison', 'Choose your delivery method' => 'Choisissez votre moyen de livraison',
'Choose your payment method' => 'Choisissez votre moyen de paiement',
'Code :' => 'Code :', 'Code :' => 'Code :',
'Connecting to the secure payment server, please wait a few seconds...' => 'Connexion au serveur sécurisé, merci de patienter quelques secondes.',
'Contact Us' => 'Contactez-nous', 'Contact Us' => 'Contactez-nous',
'Contact page' => 'Page contact',
'Continue Shopping' => 'Continuer mes achats', 'Continue Shopping' => 'Continuer mes achats',
'Copyright' => 'Copyright', 'Copyright' => 'Copyright',
'Coupon code' => 'Code promo', 'Coupon code' => 'Code promo',
'Create' => 'Créer',
'Create New Account' => 'Créer un nouveau compte', 'Create New Account' => 'Créer un nouveau compte',
'Create New Address' => 'Créer une nouvelle adresse',
'Created' => 'Créée le',
'Currency' => 'Devise',
'Customer Number' => 'Numéro de client',
'Date' => 'Date',
'Delete' => 'Supprimer', 'Delete' => 'Supprimer',
'Delivery' => 'Bon de livraison',
'Delivery Information' => 'Information de livraison', 'Delivery Information' => 'Information de livraison',
'Delivery Mode' => 'Mode de livraison',
'Delivery REF' => 'Référence livraison',
'Delivery address' => 'Adresse de livraison',
'Demo product description' => 'Descrption produit de démo',
'Demo product title' => 'Titre produit de démo',
'Description' => 'Description', 'Description' => 'Description',
'Discount incl. taxes' => 'Remise TTC', 'Discount incl. taxes' => 'Remise TTC',
'Discount with tax' => 'Remise TTC',
'Do you have an account?' => 'Avez-vous un compte ?',
'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?', 'Do you really want to delete this address ?' => 'Voulez-vous vraiment supprimer cette adresse ?',
'Documents' => 'Documents', 'Documents' => 'Documents',
'Download' => 'Télécharger',
'Edit' => 'Modifier', 'Edit' => 'Modifier',
'Edit this address' => 'Editer cette adresse', 'Edit this address' => 'Editer cette adresse',
'Estimated shipping ' => 'Estimation des frais de port', 'Estimated shipping ' => 'Estimation des frais de port',
'Expected delivery date: %delivery_date' => 'Date de livraison estimée :',
'Forgot your Password?' => 'Mot de passe oublié ?', 'Forgot your Password?' => 'Mot de passe oublié ?',
'Free shipping' => 'Livraison gratuite', 'Free shipping' => 'Livraison gratuite',
'From %price' => 'A partir de %price', 'From %price' => 'A partir de %price',
'Go back to the previous page' => 'Retour à la page précédente',
'Go home' => 'Retour à l\'accueil',
'Grid' => 'Grille',
'Home' => 'Accueil', 'Home' => 'Accueil',
'I\'ve read and agreed on <a href=\'%link\' class=\'terms-quickview\'>Terms &amp; Conditions</a>' => 'J\'ai lu et j\'accepte <a href=\'%link\' class=\'terms-quickview\'>les conditions générales de vente</a>',
'If nothing happens within 10 seconds, <a id="force-submit-payment-form" href="#">please click here</a>.' => 'Si rien ne se passe dans les 10 secondes, <a id="force-submit-payment-form" href="#">merci de cliquer ici</a>. ',
'If you want to change your email, please contact us.' => 'Pour changer votre email, merci de nous contacter',
'In Stock' => 'Disponible', 'In Stock' => 'Disponible',
'Including %tax tax' => 'Dont taxes %tax',
'Invoice REF' => 'Numéro de facture',
'Invoice date' => 'Date de facturation',
'Language' => 'Langue',
'Latest' => 'Nouveautés',
'Latest products' => 'Derniers produits',
'List' => 'Liste',
'List of orders' => 'Liste de mes commandes',
'Login' => 'Connexion',
'Login Information' => 'Informations de connexion', 'Login Information' => 'Informations de connexion',
'Main Address' => 'Adresse Principale', 'Main Address' => 'Adresse Principale',
'More information about this brand' => 'Plus de détails sur cette marque', 'More information about this brand' => 'Plus de détails sur cette marque',
'Multi-payment platform' => 'Plateforme de paiement multiple', 'Multi-payment platform' => 'Plateforme de paiement multiple',
'My Account' => 'Mon compte', 'My Account' => 'Mon compte',
'My Address Books' => 'Mes carnets d\'adresses',
'My Address book' => 'Mon carnet d\'adresses',
'My Orders' => 'Mes commandes',
'My order' => 'Ma commande',
'Name' => 'Nom', 'Name' => 'Nom',
'Name ascending' => 'Nom croissant',
'Name descending' => 'Nom décroissant',
'Need help ?' => 'Besoin d\'aide ?', 'Need help ?' => 'Besoin d\'aide ?',
'Newsletter' => 'Lettre d\'information',
'Newsletter Subscription' => 'Inscription à la newsletter',
'Next' => 'Suivant',
'Next Step' => 'Etape suivante', 'Next Step' => 'Etape suivante',
'Next product' => 'Produit suivant.', 'Next product' => 'Produit suivant.',
'No Contents in this folder.' => 'Aucun contenu pour ce dossier.',
'No deliveries available for this cart and this country' => 'Aucun mode de livraison disponible pour ce panier et ce pays', 'No deliveries available for this cart and this country' => 'Aucun mode de livraison disponible pour ce panier et ce pays',
'No products available in this brand' => 'Aucun produit de cette marque n\'est disponible',
'No products available in this category' => 'Aucun produit dans cette catégorie.', 'No products available in this category' => 'Aucun produit dans cette catégorie.',
'No results found' => 'Aucun résultat',
'No.' => 'N°', 'No.' => 'N°',
'Ok' => 'Ok', 'Ok' => 'Ok',
'Options' => 'Options', 'Options' => 'Options',
'Order details' => 'Détail de la commande',
'Order details %ref' => 'Détail de la commande %ref',
'Order number' => 'Commande numéro',
'Orders over $50' => 'Commande supérieure à 50€', 'Orders over $50' => 'Commande supérieure à 50€',
'Out of Stock' => 'Hors stock', 'Out of Stock' => 'Hors stock',
'PDF invoice' => 'Facture PDF',
'Pagination' => 'Pagination',
'Password' => 'Mot de passe', 'Password' => 'Mot de passe',
'Password Forgotten' => 'Mot de passe oublié',
'Pay with %module_title' => 'Payer avec %module_title ',
'Personal Information' => 'Informations personnelles', 'Personal Information' => 'Informations personnelles',
'Placeholder address label' => 'Maison, Domicile, Travail...',
'Placeholder address1' => 'Adresse', 'Placeholder address1' => 'Adresse',
'Placeholder address2' => 'Adresse', 'Placeholder address2' => 'Adresse',
'Placeholder cellphone' => 'Numéro de portable', 'Placeholder cellphone' => 'Numéro de portable',
@@ -156,117 +72,48 @@ return array(
'Placeholder lastname' => 'Nom de famille', 'Placeholder lastname' => 'Nom de famille',
'Placeholder phone' => 'Numéro de téléphone', 'Placeholder phone' => 'Numéro de téléphone',
'Placeholder zipcode' => 'Code postal', 'Placeholder zipcode' => 'Code postal',
'Please enter your email address below.' => 'Veuillez saisir votre adresse e-mail ci-dessous.',
'Please try again to order' => 'Merci de réessayer',
'Position' => 'Position',
'Postage' => 'Frais de livraison TTC',
'Previous' => 'Précédent',
'Previous product' => 'Produit précédent.', 'Previous product' => 'Produit précédent.',
'Price' => 'Prix', 'Price' => 'Prix',
'Price ascending' => 'Prix croissant',
'Price descending' => 'Prix décroissant',
'Proceed checkout' => 'Continuer la commande', 'Proceed checkout' => 'Continuer la commande',
'Product Empty Button' => 'Bouton produit vide',
'Product Empty Message' => 'Message produit vide',
'Product Empty Title' => 'Titre produit vide',
'Product Name' => 'Nom du produit', 'Product Name' => 'Nom du produit',
'Product Offers' => 'Offre spéciale',
'Qty' => 'Qté', 'Qty' => 'Qté',
'Quantity' => 'Quantité', 'Quantity' => 'Quantité',
'Questions ? See our F.A.Q.' => 'Questions ? Voir notre FAQ', 'Questions ? See our F.A.Q.' => 'Questions ? Voir notre FAQ',
'REF' => 'REF',
'Rating' => 'Avis',
'Redirect to bank service' => 'Redirection vers le service bancaire',
'Ref.' => 'Réf.', 'Ref.' => 'Réf.',
'Register' => 'S\'inscrire', 'Register' => 'S\'inscrire',
'Regular Price:' => 'Prix normal', 'Regular Price:' => 'Prix normal',
'Related' => 'Liés',
'Remove' => 'Supprimer', 'Remove' => 'Supprimer',
'Remove this address' => 'Supprimer cette adresse', 'Remove this address' => 'Supprimer cette adresse',
'SELECT YOUR CURRENCY' => 'Sélectionnez votre devise',
'SELECT YOUR LANGUAGE' => 'Sélectionnez votre langue',
'Sale was not found' => 'La promotion n\'a pas été trouvée',
'Save %amount%sign on these products' => 'Economisez %amount%sign sur ces produits',
'Save %amount%sign on this product' => 'Economisez %amount%sign sur ce produit', 'Save %amount%sign on this product' => 'Economisez %amount%sign sur ce produit',
'Search' => 'Recherche', 'Search' => 'Recherche',
'Search Result for' => 'Résultat de recherche pour',
'Secondary Navigation' => 'Navigation secondaire',
'Secure Payment' => 'Paiement sécurisé',
'Secure payment' => 'Paiement sécurisé', 'Secure payment' => 'Paiement sécurisé',
'Select Country' => 'Choisissez un pays', 'Select Country' => 'Choisissez un pays',
'Select State' => 'Sélectionnez un Etat', 'Select State' => 'Sélectionnez un Etat',
'Select Title' => 'Civilité', 'Select Title' => 'Civilité',
'Select your country:' => 'Sélectionnez votre pays :', 'Select your country:' => 'Sélectionnez votre pays :',
'Send' => 'Envoyer', 'Send' => 'Envoyer',
'Send new password again' => 'Renvoyer un mot de passe',
'Send us a message' => 'Envoyez nous un message.', 'Send us a message' => 'Envoyez nous un message.',
'Shipping' => 'Frais de livraison TTC',
'Show' => 'Voir',
'Sign in' => 'Se connecter',
'Skip to content' => 'Aller au contenu', 'Skip to content' => 'Aller au contenu',
'Sorry but this combination does not exist.' => 'Désolé, cette déclinaison n\'existe pas.', 'Sorry but this combination does not exist.' => 'Désolé, cette déclinaison n\'existe pas.',
'Sorry, your cart is empty. There\'s nothing to pay.' => 'Désolé, votre panier est vide. Il n\'y a rien à payer.',
'Sort By' => 'Trier par',
'Special Price:' => 'Prix promo', 'Special Price:' => 'Prix promo',
'Status' => 'Etat',
'Subscribe' => 'Inscription',
'Tax %name: %tax' => 'Dont %name: %tax',
'Tax: %tax' => 'Dont taxe %tax',
'Taxed Price' => 'Prix TTC',
'Taxes total' => 'Total des taxes',
'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.' => 'Merci de votre inscription ! Nous vous tiendrons informé dès qu\'il y aura des nouveautés.',
'Thanks for your message, we will contact as soon as possible.' => 'Merci de votre message, nous vous contacterons dès que possible.',
'The page cannot be found' => 'La page ne peut pas être trouvée',
'The product has been added to your cart' => 'Le produit a été ajouté à votre panier', 'The product has been added to your cart' => 'Le produit a été ajouté à votre panier',
'Thelia V2' => 'Thelia v2', 'Thelia V2' => 'Thelia v2',
'This offer is valid until %date' => 'Cette offre est valide jusqu\'au %date', 'This offer is valid until %date' => 'Cette offre est valide jusqu\'au %date',
'To cancel your subscription to our newsletter, please enter your email address below.' => 'Pour annuler votre abonnement à notre newsletter, veuillez entrer votre adresse email ci-dessous.',
'Toggle navigation' => 'Basculer la navigation', 'Toggle navigation' => 'Basculer la navigation',
'Total' => 'Total', 'Total' => 'Total',
'Total incl. tax' => 'Total TTC',
'Total incl. taxes' => 'Total TTC', 'Total incl. taxes' => 'Total TTC',
'Total incl.tax' => 'Total HT',
'Total with tax' => 'Total TTC',
'Total without tax' => 'Total HT',
'Transaction REF : %ref' => 'Référence transaction',
'Try again' => 'Ré-essayer le paiement',
'Unit Price' => 'Prix unitaire',
'Unit Price incl. taxes' => 'Prix unitaire TTC', 'Unit Price incl. taxes' => 'Prix unitaire TTC',
'Unit Taxed Price' => 'Prix unitaire TTC',
'Unsubscribe' => 'Me désabonner',
'Update' => 'Mettre à jour',
'Update Profile' => 'Mettre à jour votre profil',
'Update Quantity' => 'Mettre à jour la quantité', 'Update Quantity' => 'Mettre à jour la quantité',
'Upsell Products' => 'Produits liés', 'Upsell Products' => 'Produits liés',
'View' => 'Voir',
'View Cart' => 'Voir le panier', 'View Cart' => 'Voir le panier',
'View all' => ' Voir tout',
'View as' => 'Voir en tant que',
'View order %ref details' => 'Voir le détail de la commande %ref',
'View product' => 'Voir le produit', 'View product' => 'Voir le produit',
'Warning' => 'Attention', 'Warning' => 'Attention',
'We apologize but some of the ordered products are not available any more.' => 'Nous sommes désolés, certains des produits que vous avez commandé ne sont plus disponibles.', 'We apologize but some of the ordered products are not available any more.' => 'Nous sommes désolés, certains des produits que vous avez commandé ne sont plus disponibles.',
'We\'re sorry but an error occured. Please try to contact the site <a href=\'mailto:%mail\'>administrator</a>' => 'Nous sommes désolés mais une erreur est survenue. Veuillez contacter l\'<a href=\'mailto:%mail\'>administrateur</a>',
'We\'re sorry, a problem occured and your payment was not successful.' => 'Nous sommes désolés, un problème est survenu lors du paiement.',
'You are here:' => 'Vous êtes ici :',
'You choose' => 'Vous avez choisi ',
'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 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-mail 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 Cart' => 'Votre panier',
'Your customer account was successfully activated, you can now login.' => 'Votre compte client a bien été activé, vous pouvez maintenant vous connecter.',
'Your order payment' => 'Votre paiement',
'Your order will be confirmed by us upon receipt of your payment.' => 'Votre commande sera confirmée à réception de votre paiement.',
'Your subscription to our newsletter has been canceled.' => 'Votre inscription à notre newsletter a été annulée.',
'for' => 'pour', 'for' => 'pour',
'instead of' => 'au lieu de', 'instead of' => 'au lieu de',
'missing or invalid data' => 'Information erronée ou incomplète', 'missing or invalid data' => 'Information erronée ou incomplète',
'per page' => 'par page',
'update' => 'mettre à jour', 'update' => 'mettre à jour',
'with:' => 'avec :', 'with:' => 'avec :',
); );

View File

@@ -1 +1 @@
.btn,.tag-produit{border-radius:5px}@font-face{font-family:sofia_prolight;src:url(../fonts/sofiapro/sofiapro-light-webfont.woff2) format('woff2'),url(../fonts/sofiapro/sofiapro-light-webfont.woff) format('woff');font-weight:400;font-style:normal}#product-details .product-info .sku,aside.col-left,div.product-options,footer.footer-info,section.category-description,ul.pager{display:none}html{font-family:sofia_prolight,sans-serif!important}#products-new .overlay:after,#products-offer .overlay:after,#products-upsell .overlay:after,body{font-family:sofia_prolight,'Open Sans',sans-serif!important}div.container{width:90%!important}@media (min-width:992px){.header__main{width:90%}}@media (min-width:768px){.header__content{flex-direction:column}}.header__content{display:flex}.header__main{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.header__secondary{display:inline-flex}.overlay:before{background-color:rgba(128,189,138,.4)}.navbar-default{background-color:transparent}.navbar li>a.home:before{display:none}.navbar li{font-size:1.72rem}.nav>li{text-transform:uppercase}.navbar-customer{display:flex;flex-direction:column;text-align:center}#search-button:before,address.adr span.street-address,article.col-main div#google-map{display:none}.navbar-customer>li>a{text-transform:none}.header__content .container-fluid{padding-left:0;padding-right:0}.navbar-form .form-control{width:150px}.navbar-form{margin:auto}.logo-boutique{width:160px}.navbar{margin-bottom:0}.glyphicon,a{color:#95c11e}.btn{border-color:#95c11e;border-left:1px solid #95c11e}.btn-default{color:#3c3c3b;background-color:#fff}.btn-default:active,.btn-default:focus,.btn-default:hover{color:#fff;background-color:#3c3c3b;text-decoration:none}.btn-primary{background-color:#95c11e;color:#fff}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#fff;border-color:#95c11e;color:#95c11e}.btn-primary[disabled]:focus,.btn-primary[disabled]:hover{background-color:#95c11e;border-color:#95c11e;color:#fff}.btn-link:focus,.btn-link:hover{color:#95c11e}.navbar-default .navbar-nav>li>a{color:#3c3c3b}.nav>li>a:focus,.nav>li>a:hover,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{background-color:#95c11e;color:#fff}.breadcrumb{text-align:center;font-size:large;margin-bottom:30px}.checkout-progress .btn-step.active{background:#95c11e}.toolbar .amount{color:#95c11e}.grid #category-products .item>article .product-info .name{height:1.5em}.product-title,.product-title:active,.product-title:hover{text-decoration:none;color:#3c3c3b}.price,.table-cart tbody td.subprice .price,.table-cart thead th.subprice,.table-order tbody td.subprice .price,.table-order thead th.subprice{color:#95c11e}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#95c11e;border-color:#95c11e}.products-heading{text-transform:uppercase;text-align:center}.products-heading>h2{color:#3c3c3b;font-weight:900}.fa-cart-plus,.fa-user,.glyphicon-search{font-size:2rem!important}#search-button{padding-top:6px}.footer-container .footer-block{background-color:rgba(128,189,138,.08)}.block.block-contact .block-content ul>li:before{color:#95c11e}.block.block-contact .block-content ul>li.contact-address:before{font-size:26px}.block .block-title{color:#3c3c3b}.block .block-content .block-subtitle,.block-default .block-content li:before{color:#95c11e}.tag-produit{transform:rotate(-10deg);padding:0 5px;text-align:center;position:absolute;z-index:300;bottom:5px;right:10px}.tag-bio{background-color:#95c11e;color:#fff}.tag-local{background-color:red;color:#fff}.product-provenance{text-align:center;line-height:1rem;padding:5px 0 2px;border:1px solid #95c11e;border-radius:8px}.texte-provenance{color:#95c11e}.inline-flex{display:inline-flex;flex-wrap:nowrap;align-items:center;margin-left:5px}.table-pictos{margin-bottom:0!important}.table-pictos td.ligne{border:none!important;vertical-align:baseline!important}.image-auxbieauxlegumes{width:30px;height:auto}.bio{background-color:#95c11e;color:#fff;padding:0 2px;border-radius:3px;cursor:default}.grid #category-products .item{line-height:6.5rem}.texte-normal{font-family:inherit;line-height:1.1;color:inherit}.texte-normal:link{text-decoration:none}span.product-categorie{margin:auto!important;line-height:1rem!important;height:1.5rem} .btn,.tag-produit{border-radius:5px}@font-face{font-family:sofia_prolight;src:url(../fonts/sofiapro/sofiapro-light-webfont.woff2) format('woff2'),url(../fonts/sofiapro/sofiapro-light-webfont.woff) format('woff');font-weight:400;font-style:normal}#product-details .product-info .sku,aside.col-left,div.product-options,footer.footer-info,section.category-description,ul.pager{display:none}html{font-family:sofia_prolight,sans-serif!important}#products-new .overlay:after,#products-offer .overlay:after,#products-upsell .overlay:after,body{font-family:sofia_prolight,'Open Sans',sans-serif!important}div.container{width:90%!important}@media (min-width:992px){.header__main{width:90%}}@media (min-width:768px){.header__content{flex-direction:column}}.header__content{display:flex}.header__main{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.header__secondary,.inline-flex{display:inline-flex}.overlay:before{background-color:rgba(128,189,138,.4)}.navbar-default{background-color:transparent}.navbar li>a.home:before{display:none}.navbar li{font-size:1.72rem}.nav>li{text-transform:uppercase}.navbar-customer{display:flex;flex-direction:column;text-align:center}#search-button:before,address.adr span.street-address,article.col-main div#google-map{display:none}.navbar-customer>li>a{text-transform:none}.header__content .container-fluid{padding-left:0;padding-right:0}.navbar-form .form-control{width:150px}.navbar-form{margin:auto}.logo-boutique{width:160px}.navbar{margin-bottom:0}.glyphicon,a{color:#95c11e}.btn{border-color:#95c11e;border-left:1px solid #95c11e}.btn-default{color:#3c3c3b;background-color:#fff}.btn-default:active,.btn-default:focus,.btn-default:hover{color:#fff;background-color:#3c3c3b;text-decoration:none}.btn-primary{background-color:#95c11e;color:#fff}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#fff;border-color:#95c11e;color:#95c11e}.btn-primary[disabled]:focus,.btn-primary[disabled]:hover{background-color:#95c11e;border-color:#95c11e;color:#fff}.btn-link:focus,.btn-link:hover{color:#95c11e}.navbar-default .navbar-nav>li>a{color:#3c3c3b}.nav>li>a:focus,.nav>li>a:hover,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{background-color:#95c11e;color:#fff}.breadcrumb{text-align:center;font-size:large;margin-bottom:30px}.checkout-progress .btn-step.active{background:#95c11e}.toolbar .amount{color:#95c11e}.grid #category-products .item>article .product-info .name{height:1.5em}.product-title,.product-title:active,.product-title:hover{text-decoration:none;color:#3c3c3b}.price,.table-cart tbody td.subprice .price,.table-cart thead th.subprice,.table-order tbody td.subprice .price,.table-order thead th.subprice{color:#95c11e}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#95c11e;border-color:#95c11e}.products-heading{text-transform:uppercase;text-align:center}.products-heading>h2{color:#3c3c3b;font-weight:900}.fa-cart-plus,.fa-user,.glyphicon-search{font-size:2rem!important}#search-button{padding-top:6px}.footer-container .footer-block{background-color:rgba(128,189,138,.08)}.block.block-contact .block-content ul>li:before{color:#95c11e}.block.block-contact .block-content ul>li.contact-address:before{font-size:26px}.block .block-title{color:#3c3c3b}.block .block-content .block-subtitle,.block-default .block-content li:before{color:#95c11e}.tag-produit{transform:rotate(-10deg);padding:0 5px;text-align:center;position:absolute;z-index:300;bottom:5px;right:10px}.tag-bio{background-color:#95c11e;color:#fff}.tag-local{background-color:red;color:#fff}.product-provenance{text-align:center;line-height:1rem;padding:5px 0 2px;border:1px solid #95c11e;border-radius:8px}.texte-provenance{color:#95c11e}.inline-flex{flex-wrap:nowrap;align-items:center;margin-left:5px}.table-pictos{margin-bottom:0!important}.table-pictos td.ligne{border:none!important;vertical-align:baseline!important}.produit-bio,.produit-local{color:#fff;padding:0 2px;border-radius:3px;cursor:default}.image-auxbieauxlegumes{width:30px;height:auto}.produit-bio{background-color:#95c11e}.produit-local{background-color:red}.grid #category-products .item{line-height:6.5rem}.texte-normal{font-family:inherit;line-height:1.1;color:inherit}.texte-normal:link{text-decoration:none}span.product-categorie{margin:auto!important;line-height:1rem!important;height:1.5rem}.autres-ingredients,.table-steps .description{text-align:left}div.add-step-button{display:inline-block;margin-left:100px!important}

View File

@@ -238,20 +238,7 @@ article.col-main div#google-map {
color: #95c11e; color: #95c11e;
} }
/*
.boutons-plusmoins {
display: inline-grid !important;
margin-right: 20px;
}
.bouton-plus {
font-family: FontAwesome;
content: "f067";
}
.bouton-moins {
font-family: FontAwesome;
content: "f067";
}
*/
.tag-produit { .tag-produit {
transform: rotate(-10deg); transform: rotate(-10deg);
padding: 0 5px; padding: 0 5px;
@@ -323,13 +310,20 @@ article.col-main div#google-map {
width: 30px; width: 30px;
height: auto; height: auto;
} }
.bio { .produit-bio {
background-color: #95c11e; background-color: #95c11e;
color: white; color: white;
padding: 0 2px; padding: 0 2px;
border-radius: 3px; border-radius: 3px;
cursor: default; cursor: default;
} }
.produit-local {
background-color: red;
color: white;
padding: 0 2px;
border-radius: 3px;
cursor: default;
}
.grid #category-products .item { .grid #category-products .item {
line-height: 6.5rem; line-height: 6.5rem;
@@ -348,3 +342,9 @@ span.product-categorie {
line-height: 1rem !important; line-height: 1rem !important;
height: 1.5rem; height: 1.5rem;
} }
.autres-ingredients {
text-align: left;
}
.table-steps .description {
text-align: left;
}

View File

@@ -1,4 +1,4 @@
<div class="product-pictos col-sm-8"> <div class="product-pictos col-md-8">
<table class="table table-pictos"> <table class="table table-pictos">
<tr> <tr>
{loop name="features-list" type="feature" product=$product_id} {loop name="features-list" type="feature" product=$product_id}
@@ -13,10 +13,11 @@
<img src="{image file='assets/src/img/flags/favicon.ico'}" alt="{$TITLE}" title="Nous cultivons nous même ce produit" class="image-auxbieauxlegumes"/> <img src="{image file='assets/src/img/flags/favicon.ico'}" alt="{$TITLE}" title="Nous cultivons nous même ce produit" class="image-auxbieauxlegumes"/>
{else} {else}
{if $TITLE eq "Local"} {if $TITLE eq "Local"}
<img src="{image file='assets/src/img/flags/logo-npdc.png'}" alt="{$TITLE}" title="Produit local" class="image-auxbieauxlegumes"/> <span class="produit-local">{$TITLE}</span>
<!-- <img src="{image file='assets/src/img/flags/logo-npdc.png'}" alt="{$TITLE}" title="Produit local" class="image-auxbieauxlegumes"/>-->
{else} {else}
{if $TITLE eq "Bio"} {if $TITLE eq "Bio"}
<span class="bio">{$TITLE}</span> <span class="produit-bio">{$TITLE}</span>
{else} {else}
{$TITLE} {$TITLE}
{/if} {/if}

View File

@@ -99,7 +99,7 @@
{loop type="recipe_steps" name="steps-loop" recipe_id=$ID} {loop type="recipe_steps" name="steps-loop" recipe_id=$ID}
<tr> <tr>
<td class="number">{$STEP}</td> <td class="number">{$STEP}</td>
<td class="description">{$DESCRIPTION}</td> <td class="description">{$DESCRIPTION|unescape:"html" nofilter}</td>
</tr> </tr>
{/loop} {/loop}
</table> </table>