diff --git a/local/media/images/content/tiramisu_banoffee-2.jpeg b/local/media/images/content/tiramisu_banoffee-2.jpeg new file mode 100644 index 00000000..b0fb24f4 Binary files /dev/null and b/local/media/images/content/tiramisu_banoffee-2.jpeg differ diff --git a/local/modules/Recettes/I18n/fr_FR.php b/local/modules/Recettes/I18n/fr_FR.php index d3f4932e..6b3a5363 100644 --- a/local/modules/Recettes/I18n/fr_FR.php +++ b/local/modules/Recettes/I18n/fr_FR.php @@ -8,7 +8,7 @@ return array( 'Number of people' => 'Nombre de couverts', 'Product' => 'Produit', 'Quantity' => 'Quantité', - 'Summary' => 'Description de la recette', + 'Summary' => 'Détail', 'Other ingredients' => 'Ingrédients supplémentaires', 'Ingredients' => 'Ingrédients', 'Ingredient' => 'Nos produits', @@ -19,5 +19,7 @@ return array( 'Select' => 'Sélectionner', 'Add to cart' => 'Ajouter au panier', 'Print recipe' => 'Imprimer la recette', - 'Some products may not be in stock' => '* les produits que vous ne pouvez pas cocher ne sont plus en stock', + 'Some products may not be in stock' => '* ce produit n\'est plus en stock, désolé', + 'Name' => 'Notre recette', + 'Created on' => 'Rédigée le', ); diff --git a/local/modules/Recettes/Loop/ProductsLoop.php b/local/modules/Recettes/Loop/ProductsLoop.php index db6369bd..1fcabbdb 100644 --- a/local/modules/Recettes/Loop/ProductsLoop.php +++ b/local/modules/Recettes/Loop/ProductsLoop.php @@ -31,6 +31,8 @@ class ProductsLoop extends BaseLoop implements PropelSearchLoopInterface */ public function parseResults(LoopResult $loopResult) { + $someProductsNotInStock = false; + foreach ($loopResult->getResultDataCollection() as $product) { $pse = ProductSaleElementsQuery::create()->findOneById($product->getPseId()); diff --git a/local/modules/Recettes/templates/frontOffice/default/assets/css/Recettes.css b/local/modules/Recettes/templates/frontOffice/default/assets/css/Recettes.css index c4ac20ff..12249844 100644 --- a/local/modules/Recettes/templates/frontOffice/default/assets/css/Recettes.css +++ b/local/modules/Recettes/templates/frontOffice/default/assets/css/Recettes.css @@ -31,6 +31,9 @@ div.entete span { div.entete span b { color: #0e0e0e; } +.photo-principale { + padding-right: 0px; +} .photo-principale img { width: 250px; box-shadow: 10px 10px 15px gray; @@ -79,17 +82,69 @@ div.entete span b { padding-left: 30px; font-weight: bold; } + +/* Pour impression de la fiche recette */ .bouton-imprimer { margin: 20px 0; text-align: center; } - @media print { .footer-block, header, .nav-breadcrumb, .table-ingredients tr:last-of-type, - #tarteaucitronAlertBig { + #tarteaucitronAlertBig, + .tarteaucitronAlertSmallBottom { display: none !important; } + + label.autres-ingredients { + page-break-after: always; + } + +} + +/* Pour page d'affichage de la liste des recettes */ +.table-liste-recettes { + border: 1px solid #95c11e; +} +.table-liste-recettes th { + text-align: center !important; +} +.table-liste-recettes > tbody > tr > td:nth-child(1), +.table-liste-recettes > tbody > tr > td:nth-child(2), +.table-liste-recettes > tbody > tr > td:nth-child(4), +.table-liste-recettes th:nth-child(1), +.table-liste-recettes th:nth-child(3) { + background-color: rgba(128,189,138,0.12); +} +.table-liste-recettes > tbody > tr > td, +.table-liste-recettes > thead > th +{ + line-height: 3rem; + vertical-align: baseline; +} +td.table-liste-recettes-autre-texte { + text-align: center; +} +.table-liste-recettes span { + font-size: 1.5rem; +} +td.table-liste-recettes-image { + padding-right: 20px !important; + text-align: right; + width: auto; + vertical-align: middle !important; +} +.table-liste-recettes-image img { + width: 65px; + height: auto; + border-radius: 5px; +} +.table-liste-recettes-titre { + margin: auto; + text-wrap: normal; +} +.table-liste-recettes-titre span { + font-weight: bold; } diff --git a/templates/frontOffice/custom/I18n/fr_FR.php b/templates/frontOffice/custom/I18n/fr_FR.php index 7e74dcb1..8e3be86e 100644 --- a/templates/frontOffice/custom/I18n/fr_FR.php +++ b/templates/frontOffice/custom/I18n/fr_FR.php @@ -1,146 +1,62 @@ '%nb élément', - '%nb Items' => '%nb éléments', '+' => '+', - '404' => '404', - 'Sorry! We are not able to give you a delivery method for your order.' => 'Désolé !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 to cart' => 'Ajouter au panier', 'Additional Info' => 'Informations complémentaires', - 'Address' => 'Adresse', 'Address %nb' => 'Adresse n°', - 'Address Update' => 'Mise à jour de l\'adresse', - 'All' => 'Tout', 'All brands' => 'Toutes les marques', - 'All brands in %store' => 'Toutes les marques %store', '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 for brand %title in %store' => 'Tous les produits %title de %store', 'All products in' => 'Tous les produits de', - 'Amount' => 'Montant', - 'An error occurred' => 'Une erreur est survenue', 'Availability' => 'Disponibilité', 'Available' => 'Disponible', 'Back' => 'Retour', - 'Billing' => 'Facturation', - 'Billing Mode' => 'Mode de facturation', - 'Billing address' => 'Adresse de facturation', 'Billing and delivery' => 'Facturation et livraison', 'Brand information' => 'Marque', - 'Brands' => 'Marques', - 'Cancel' => 'Annuler', - 'Cancel Newsletter Subscription' => 'Annuler l\'abonnement à la Newsletter', 'Cart' => 'Panier', - 'Cart total excl. taxes' => 'Total articles HT', - 'Cart total incl. taxes' => 'Total articles TTC', '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 method' => 'Choisissez votre moyen de livraison', - 'Choose your payment method' => 'Choisissez votre moyen de paiement', '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 page' => 'Page contact', 'Continue Shopping' => 'Continuer mes achats', 'Copyright' => 'Copyright', 'Coupon code' => 'Code promo', - 'Create' => 'Créer', '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', - 'Delivery' => 'Bon 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', '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 ?', 'Documents' => 'Documents', - 'Download' => 'Télécharger', 'Edit' => 'Modifier', 'Edit this address' => 'Editer cette adresse', 'Estimated shipping ' => 'Estimation des frais de port', - 'Expected delivery date: %delivery_date' => 'Date de livraison estimée :', 'Forgot your Password?' => 'Mot de passe oublié ?', 'Free shipping' => 'Livraison gratuite', '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', - 'I\'ve read and agreed on Terms & Conditions' => 'J\'ai lu et j\'accepte les conditions générales de vente', - 'If nothing happens within 10 seconds, please click here.' => 'Si rien ne se passe dans les 10 secondes, merci de cliquer ici. ', - 'If you want to change your email, please contact us.' => 'Pour changer votre email, merci de nous contacter', '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', 'Main Address' => 'Adresse Principale', 'More information about this brand' => 'Plus de détails sur cette marque', 'Multi-payment platform' => 'Plateforme de paiement multiple', '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 ascending' => 'Nom croissant', - 'Name descending' => 'Nom décroissant', 'Need help ?' => 'Besoin d\'aide ?', - 'Newsletter' => 'Lettre d\'information', - 'Newsletter Subscription' => 'Inscription à la newsletter', - 'Next' => 'Suivant', 'Next Step' => 'Etape suivante', '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 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 results found' => 'Aucun résultat', 'No.' => 'N°', 'Ok' => 'Ok', '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€', 'Out of Stock' => 'Hors stock', - 'PDF invoice' => 'Facture PDF', - 'Pagination' => 'Pagination', 'Password' => 'Mot de passe', - 'Password Forgotten' => 'Mot de passe oublié', - 'Pay with %module_title' => 'Payer avec %module_title ', 'Personal Information' => 'Informations personnelles', - 'Placeholder address label' => 'Maison, Domicile, Travail...', 'Placeholder address1' => 'Adresse', 'Placeholder address2' => 'Adresse', 'Placeholder cellphone' => 'Numéro de portable', @@ -156,117 +72,49 @@ return array( 'Placeholder lastname' => 'Nom de famille', 'Placeholder phone' => 'Numéro de téléphone', '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.', 'Price' => 'Prix', - 'Price ascending' => 'Prix croissant', - 'Price descending' => 'Prix décroissant', '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 Offers' => 'Offre spéciale', 'Qty' => 'Qté', 'Quantity' => 'Quantité', '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.', 'Register' => 'S\'inscrire', 'Regular Price:' => 'Prix normal', - 'Related' => 'Liés', 'Remove' => 'Supprimer', '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', 'Search' => 'Recherche', - 'Search Result for' => 'Résultat de recherche pour', - 'Secondary Navigation' => 'Navigation secondaire', - 'Secure Payment' => 'Paiement sécurisé', 'Secure payment' => 'Paiement sécurisé', 'Select Country' => 'Choisissez un pays', 'Select State' => 'Sélectionnez un Etat', 'Select Title' => 'Civilité', 'Select your country:' => 'Sélectionnez votre pays :', 'Send' => 'Envoyer', - 'Send new password again' => 'Renvoyer un mot de passe', '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', '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', - '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', 'Thelia V2' => 'Thelia v2', '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', 'Total' => 'Total', - 'Total incl. tax' => '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', + 'Total incl. taxes without postage' => 'Total TTC avec livraison', '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é', 'Upsell Products' => 'Produits liés', - 'View' => 'Voir', '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', '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\'re sorry but an error occured. Please try to contact the site administrator' => 'Nous sommes désolés mais une erreur est survenue. Veuillez contacter l\'administrateur', - '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 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 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', 'instead of' => 'au lieu de', 'missing or invalid data' => 'Information erronée ou incomplète', - 'per page' => 'par page', 'update' => 'mettre à jour', 'with:' => 'avec :', ); diff --git a/templates/frontOffice/custom/nos-recettes.html b/templates/frontOffice/custom/nos-recettes.html new file mode 100644 index 00000000..458360df --- /dev/null +++ b/templates/frontOffice/custom/nos-recettes.html @@ -0,0 +1,76 @@ +{extends file="layout.tpl"} + +{block name='init'} +{/block} + +{* Body Class *} +{block name="body-class"}page-content{/block} + +{* Page Title *} +{block name='no-return-functions' append} + {$page_title = "Nos recettes"} +{/block} + +{* Breadcrumb *} +{block name='no-return-functions' append} + {$breadcrumbs = []} + {loop type="content" name="content-breadcrumb" folder=1 limit="1"} + {loop name="folder_path" type="folder-path" folder={$DEFAULT_FOLDER}} + {$breadcrumbs[] = ['title' => {$TITLE}, 'url'=> {$URL nofilter}]} + {/loop} + {/loop} +{/block} + +{block name="main-content"} +
+ + + + + + + + + + {loop type="content" name="content-loop" folder=1 visible="yes" order="created_reverse"} + + {loop type="image" name="image-loop" content=$ID visible=true position=1} + {assign var="image" value="$IMAGE_URL"} + {/loop} + {loop type="recipe" name="recipe-loop" content_id=$ID limit="1"} + {assign var="title" value="$TITLE"} + {assign var="summary" value="$SUMMARY"} + {if $DIFFICULTY eq 0}{assign var="label_difficulty" value="Facile"}{/if} + {if $DIFFICULTY eq 1}{assign var="label_difficulty" value="Moyen"}{/if} + {if $DIFFICULTY eq 2}{assign var="label_difficulty" value="Difficile"}{/if} + {/loop} + + + + + + + + {/loop} + +
{intl l="Name" d="recettes"}{intl l="Summary" d="recettes"}{intl l="Difficulty" d="recettes"}{intl l="Created on" d="recettes"} 
+ Photo principale + + {$title} + + {$summary|unescape:"html" nofilter} + + {$label_difficulty} + + {format_date date=$CREATE_DATE format="d/m/Y"} +
+ +
+{/block} + +{block name="stylesheet"} +{hook name="content.stylesheet"} +{/block} + +{block name="after-javascript-include"} +{/block} diff --git a/templates/frontOffice/custom/recette.html b/templates/frontOffice/custom/recette.html index 3dbb4510..b0cdc66d 100644 --- a/templates/frontOffice/custom/recette.html +++ b/templates/frontOffice/custom/recette.html @@ -2,6 +2,8 @@ {block name='init'} {assign var="content_id" value={content attr="id"}} + {assign var="some_products_not_in_stock" value=false} + {assign var="nb_products" value=0} {/block} {* Body Class *} @@ -37,7 +39,7 @@ {if $DIFFICULTY eq 1}{assign var="label_difficulty" value="Moyen"}{/if} {if $DIFFICULTY eq 2}{assign var="label_difficulty" value="Difficile"}{/if} -

{$TITLE}

+

{$TITLE}


{intl l='Preparation time' d='recettes'}Preparation time{$PREPARATION_TIME} @@ -64,18 +66,22 @@ {loop type="recipe_products" name="products-loop" recipe_id=$ID} + {$nb_products = $nb_products + 1} {$PRODUCT_LABEL} {$QUANTITY_NEEDED} {$QUANTITY_PROPOSED} ({$UNITY}) - + {if not $IN_STOCK} *{/if} + {if not $IN_STOCK}{assign var="some_products_not_in_stock" value=true}{/if} {/loop} - {intl l="Some products may not be in stock" d="recettes"} + {if $some_products_not_in_stock}{intl l="Some products may not be in stock" d="recettes"}{/if}
+ {if $nb_products > 0} + {/if}