[SI-LINDER-PARTNER-2][OSC] - Refonte du site Internet pour supporter le Responsive Design /* ATTENTION - le design du site ne peut pas être passé en doctype html (html 5) dans la révision 1 du design. bien qu'une révision 2 sera instanciée plus tard (l'année prochaine), il faudra se contenter de nombreux workaround en restant en HTML TRANSITIONAL 4.01 Du fait du nombre massif des éléments DE CETTE PAGE (et de ce qui en découlerait) qui seront à revoir pour transformer le design en design responsive.. .. il est alors plus judicieux de globaliser un TAG unique pour cette tâche pour ne pas alourdir de commentaires le code déjà suffisemment alourdi comme cela! En gros, ici, pour cette méga-tâche, je vais utiliser un format maison de commentaires pour cette tâche précise: --> pour en comprendre les méandres, voir le fichier /[!] - Saphyra-Interactive-TaskList-Explanations/[SI-LINDER-PARTNER-2][OSC]--semantic.php */ // <- [SI-LINDER-PARTNER-2][OSC] - Refonte du site Internet pour supporter le Responsive Design ?>set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } // if there is nothing in the customers cart, redirect them to the shopping cart page if ($cart->count_contents() < 1) { tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); } // if no shipping method has been selected, redirect the customer to the shipping method selection page if (!tep_session_is_registered('shipping')) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && tep_session_is_registered('cartID')) { if ($cart->cartID != $cartID) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } } // Stock Check if ( (STOCK_CHECK == 'true') && (STOCK_ALLOW_CHECKOUT != 'true') ) { $products = $cart->get_products(); for ($i=0, $n=sizeof($products); $i<$n; $i++) { if (tep_check_stock($products[$i]['id'], $products[$i]['quantity'])) { tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); break; } } } // if no billing destination address was selected, use the customers own address as default if (!tep_session_is_registered('billto')) { tep_session_register('billto'); $billto = $customer_default_address_id; } else { // verify the selected billing address $check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$billto . "'"); $check_address = tep_db_fetch_array($check_address_query); if ($check_address['total'] != '1') { $billto = $customer_default_address_id; if (tep_session_is_registered('payment')) tep_session_unregister('payment'); } } require(DIR_WS_CLASSES . 'order.php'); $order = new order; if (!tep_session_is_registered('comments')) tep_session_register('comments'); $total_weight = $cart->show_weight(); $total_count = $cart->count_contents(); // load all enabled payment modules require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment; require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PAYMENT); $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); $breadcrumb->add(NAVBAR_TITLE_2, tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); ?> 0000007: ajout de la date d'evenement ?> delivery['country']['iso_code_2']; //renvoie le code pays de l'adresse de livraison $country = array("GP","GF","MQ","YT","RE","PM","NC","PF","TF","FX","WF","CH"); // contient le code des pays concerné par la restriction if (in_array($dest_country, $country)) { //Detecte si la zone de livraison est concerné $disable_all_exept_devis = "true"; } else{ $disable_all_exept_devis = "false"; //la vérif est faite en JS en dessous } // Ce code sert à inclure un fichier qui servira de checkup pour détecter le navigateur de l'utilisateur. // Il s'agit d'un Hack pour IE expliqué dans le fichier 'head_tricks4ie.php' $passByValidPage = 1; require_once('head_tricks4ie.php'); ?> <?php echo TITLE; ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ on déclare une petite variable, sous forme de tableau associatif, ce tableau servira à identifier la page (au lieu d'utiliser PHP_SELF etc..) et cette identification servira dans le nouveau fichier d'inclusion de design dynamique inclu en [2] c'est tout simple ! - 2/ inclusion du fichier PHP chargeur du design, ce sera à ce fichier inclu de décider quels assets (scripts, feuilles de styles, autres) charger! } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // [RESPONSIVE_DESIGN_2020_IMPLEMENTATION_CARDBOARD_2020_SAPHYRA_INTERACTIVE_ETAPE_1] $_SI__NewDesign = array( 'pageFilepath' => '/checkout_payment.php' ); // ([1])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([2])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END require_once('--SI--2020DesignInitializer.php'); /* [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************/ ?> 0000007: ajout de la date d'evenement ?> javascript_validation(); ?> [SI-LINDER-PARTNER-2][OSC][AddClassDescription(isPage--CheckoutPayment isResponsive--Main)]:{" ATTENTION (ne pas oublier cette ligne!) servira à cibler cette page précise dans un sélecteur css.. // [RESPONSIVE_DESIGN_2020_IMPLEMENTATION_CARDBOARD_2020_SAPHYRA_INTERACTIVE_ETAPE_2] "} ?> [SI-LINDER-PARTNER-2][OSC][SimpleTaskDescription]:{" on requière l'inclusion unique du tout nouveau fragment contenant le tout nouveau fil d'ariane correspondant aux étapes du processus de commande, et cela invalide l'entièreté de l'ancien fil d'arianne des étapes du processus de commande (voir CODETAG[VTAB_1_OLD_BREADCRUMBAR_ORDER_STEPS]) "} ?> [SI-LINDER-PARTNER-2][OSC][SimpleTaskDescription]:{" on modifie la taille de cette cellule, qui est celle de gauche (avant) gérée via la constante PHP BOX_WIDTH de OSCommerce, (désormais), gérée par une valeur en dur, pourquoi? (1) la valeur initiale est gérée par une constante PHP, mais sa valeur... est aussi la modificatrice de la cellule de droite.. Ce qui pose problème quand on veut juste modifier celle de gauche et ne pas intervenir sur celle de droite, donc, ici, on modifie le echo BOX_WIDTH par une valeur fixée plus souple et enfin, on ajoute une classe pour pouvoir cibler cette cellule de tableau afin de la masquer en responsive ou autres ! // [RESPONSIVE_DESIGN_2020_IMPLEMENTATION_CARDBOARD_2020_SAPHYRA_INTERACTIVE_ETAPE_3] "} ?> BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
get_error())) { ?> ) cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive au besoin.. (impossible de se priver, ça n'en sera que plus facile à relire le code plus tard), on restructure au besoin.. on ajoute des sauts de lignes
- 5/ on va ajouter une classe à la cellule du tableau () cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive au besoin.. (impossible de se priver, ça n'en sera que plus facile à relire le code plus tard), on restructure au besoin.. on ajoute des sauts de lignes
au besoin.. on commente l'image on rajoute un double-point et/ou un espace après le texte - 6/ à cet emplacement, on va juste afficher un icone à l'aide de Material Icons - 7/ à la différence des autres pages, ici, on va restyliser chaque , et on va pas y aller de mains-mortes: on va ajouter une classe à la ligne du tableau (..) cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive on va aussi reformater au cas par cas la structure HTML, car là, c'est pas très lisible pour un développeur qui éditerai le code plus tard - 8/ on va aussi donner une classe à la cellule ici, de manière à forcer son style d'affichage visuel - 9/ on place un ici afin de pouvoir restyliser précisemment CET élément, ce qui nous oblige à lui donner une classe pour l'occasion, ici on affiche l'indicateur d'état comme adresse principale on utiliser ici différentes balises pour symboliser la valeur de l'élément listé avec des classes différentes, car certains doivent afficher des informations "statiques" d'autres dynamiques - 10/ à cet emplacement, on va juste donner une classe à la cellule et y afficher un icone à l'aide de Material Icons à la place de l'initiale image de conteneur-fake de séparateur (commentée pour l'occasion) - 11/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales - 12/ on ajoutes des classes UI-Kit à l'élément de formulaire afin de lui donner plus de style, et on le restructure un peu - 13/ on a besoin de traiter différemment l'affichage des moyens de paiement, certains seront alors traités différemment, en fait, ici, on va juste donner une icone différente selon le mode de paiement voir les étapes respectives pour tout ça et afin de vérifier cela, à travers l'itération, on amorce un switch() pour trouver la valeur du NOM (id) MOYEN DE PAIEMENT, et agir en conséquence vérification des cas des paiements qui: nécéssitent une carte bleue nécéssitent un chèque nécéssitent une carte bleue nécéssitent un devis nécéssitent un virement nécéssitent d'aller au magasin physique pour payer - 14/ ici on revoit UNIQUEMENT l'affichage visuel de la date d'évènement, pas son système, cela implique de modifier 3 fichiers pour son fonctionnement! - le premier: /includes/date_event.php qui en réalité charge et génère tout le formatage HTML du bouton de date et du calendrier on va juste avoir besoin ici de reformater visuellement le bouton de date! (pas le calendrier) - le deuxième: /js_includes/jQueryUI/Modules/datePicker/jquery.ui.datepicker.js qui lui est tout bonnement l'ensemble du code javascript du plugin DatePicker pour jQuery UI (framework visuel pour jQuery) on va seulement intercepter le droit à Google de traduire le calendrier, et l'interdire de traduction automatique - le troisième: ce fichier même où vous lisez ces lignes tout cela est affiché à cet endroit (voir CODETAG [ALTERATION_OF_OLD_DESIGN_BUTTON_DATE_OF_EVENT_WILL_BE_DISPLAYED_HERE]) voici ce qu'on y fait on donne à la cellule une largeur de 20% (sinon le bouton serait coupé en deux), donc on ajoute l'attribut width à la cellule on donne à la cellule un alignement central (sinon c'est pas joli), donc on altère l'attribut align de la cellule on donne à la cellule un alignement en haut (sinon c'est pas joli), donc on ajoute l'attribut valign à la cellule on corrige les accents des commentaires cassés suite à l'encodage ISO8859-1n <=> UTF8 puis l'on fera un dernier truc, qui sera expliqué dans à étapes [15] - 15/ alors là on revoit UNIQUEMENT l'affichage visuel du bouton continuer (de OSCommerce), qui est bloqué si on n'a pas choisi de date d'évènement, ce qui est ce que l'on veut voici ce qu'on va faire on revoit son design (tout en implémentant le code de bloquage du bouton si aucune date d'évènement n'est saisie) pour l'adapter au design du reste on retravaille son code de manière à l'aérer on reformate aussi de manière à moins utiliser PHP pour écrire le javascript à cet endroit on ajoute un évènement ondblclick (pour effectuer autant l'avertissement sur un double clic, mais si on clique sauvagement à la suite, on pourra quand même passer outre cette 'protection'.. on n'affiche plus la fenêtre d'ALERT en javascript, mais via une superbe fenêtre modale construite en [17] via UI Kit (et quelques classes CSS de mon cru) - 16/ remplacement de l'ancien bouton (lien) ou (soumission), pour l'avoir désormais géré par UI Kit, mais aussi, avec une classe précise - 17/ on va maintenant construire une structure Modale ici, c'est pas compliqué, on choisi une fenêtre modale avec la possibilité de bouton et de titre, afin d'afficher l'avertissement initial modifié en [15] on déclenchera l'affichage de la modale en effectuant la simulation d'un clic sur le lien ici de [15] on donne différentes classes CSS à la fenêtre modale, mais en réalité, très peu seront stylisée, il n'y a pas besoin de grand chose là en revanche, on remplace tout les sauts de lignes JAVSCRIPT (\n) par des sauts de lignes HTML (
) (car la chaîne TEXT_DISPLAY_EVENTDATE_DATEISREQUIRED ne contient pas de HTML, vu que c'était censé initialement s'afficher depuis une alert() javascript, ce qui n'était vraiment plus très beau en 2020 NOTE - les \n étaient des SAUTS DE LIGNES au format Javascript pour sauter des lignes dans l'affichage de l'alert() on retire les éventuels derniers slash '/' avec stripslashes() on retire enfin les éventuels espaces AVANT et APRES la chaîne avec trim() - 18/ ici, une incohérence de cette page, et surtout de nativement OSCommerce doit être réglée.. en effet, OSCommerce veut créér un pixel (à l'époque c'était requis pour cette connerie de Internet Explorer), pour correctement positionner le tableau, sauf que.. ben, ça utilise: tep_draw_separator('pixel_silver.gif', ....) au lieu de: tep_draw_separator('pixel_trans.gif', ....) ce qui cause le pixel imagé, à s'afficher (très estompé, mais visible quand même!) donc, on remplace ici: pixel_silver.gif par pixel_trans.gif ça fonctionnait.. mais, on avait un décalage au final avec notre bel icone Material Icons, désormais implémenté en [19] résultat des courses, on va juste... placer un style="display: none !important;" sur chaque cellule contenant un pixel_silver de manière à dissimuler la cellule et réagencer proprement l'icone Material Icons - 19/ ici, on va utiliser un icone material icone à la place de l'ancienne image que l'on va virer, pas commenter, elle n'ira jamais dans le nouveau design de par sa vieillesse visuelle - 20/ on va juste recentrer la cellule, cela centre proprement l'icone Material Icons désormais avec le Texte de l'étape actuelle dans la procédure de commande - 21/ on ajoute un nom de classe CSS qui nous servira à spécifiquement cibler cet élément soit en responsive, soit sans responsive - 22/ ajout d'une structure TOTALEMENT nouvelle, qui affichera un tableau avant le tableau initial (ne pas utiliser
après
[SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ petits changements sur la structure et sur le texte sert uniquement à restyliser l'élément pour le centrer par exemple et le re-marger - 2/ on modifie l'ancien texte "Information paiement" par "Renseignements pour le Paiement" - 3/ à l'origine, ici, il y avait une image, désormais, en attendant d'éventuellement lui trouver une belle image, on va alors la commenter [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ supression d'un texte devenu inutile ici mise en commentaire, l'ancienne factorisation était incorrecte } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?>
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ on va pas se mentir, cette partie de code mixant html et php a une structure de code affreuse pour la relecture développeur, mais, de toutes façons, on restructurera quelques morceaux clefs! au lieu de cela, on va ajouter un tas de petites modifications, des classes, des styles, et peut-être du comportement à différents éléments de ce tableau à noter que cette partie de code du tableau contient le contenu visuel de la page - 2/ on va ajouter une classe au tableau (..
) cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive - 3/ on ajoute une cellule de plus afin de pouvoir afficher l'état d'importance de la section - 4/ on va ajouter une classe à la cellule du tableau (
....
ou avant au risque de décaler les cellules du design et de le casser ainsi que le de fin qui casserait aussi ce nouveau tableau était censé n'apparaître qu'en responsive (car dans les étapes plus bas (la route à étape: Steps, presque en fin de page), les icones s'affichent mal en responsive au final, ce nouveau tableau apparaîtra autant en responsive qu'en affichage standard en revanche, cela nous permettra en responsive de masquer la cellule checkoutBarFrom qui.. ne servirait alors à rien... ca s'affichera mal, et cela via le fichier de media queries prévu à cet effet déjà pour l'ensemble du design [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ ajout du nouveau bouton vtab à la place de l'ancien bouton, géré par la fonction vtab_tep_button() qui se trouve dans le fichier vtab_html_output.php cela remplace l'étape [16] de la tâche [SI-LINDER-PARTNER-2][OSC] - 2/ retrait table "saviez-vous" - 3/ on invalide l'affichage (on le commente pour l'instant) de tout l'ancien système de fil d'arianne correspondant aux étapes du processus de commande (voir CODETAG[VTAB_1_OLD_BREADCRUMBAR_ORDER_STEPS]) il s'affiche désormais différemment en haut de page, ailleurs (voir CODETAG[VTAB_1_NEW_FRAGMENT_BREADCRUMBAR_ORDER_STEPS]) - 4/ suppression de l'attribut width, et ajout d'une classe CSS en vue de donner à l'élément une possibilité de le cibler plus tard - 5/ retrait du titre de la page "renseignements pour paiements (voir CODETAG[VTAB_1_OSC_MORE_DETAILS_ABOUT_PAYMENT]) - 6/ retrait titre section "Ajoutez des commentaires" - 7/ retrait titre section "Acceptation des conditions générales de vente" - 8/ on retire les textes "informations requises", cette information sera mise en avant lorsque l'utilisateur clique sur le bouton qui passe à la page checkout_payment. à trois endroits : dans adresse d'expédition, méthode d'expédition, continuer la procédure de commande - 9/ retrait des CGV pour le moment laissé en commentaire - 10/ retrait du bloc étiquetté comme "Facultatif" - 11/ ajout de classe CSS ici pour pouvoir cibler l'élément HTML plus facilement plus tard - 12/ modification du texte à travers un str_replace() ici } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?>
Saviez-vous que :'; ?>
' . ' vous pouvez revenir à l\'étape précédente' . '
' . '  pour  '; ?>' . str_replace(CHECKOUT_BAR_DELIVERY, 'Corriger les informations d\'Expédition', CHECKOUT_BAR_DELIVERY) . '' . '
'; ?>
*/ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?>

'; ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
' . TITLE_BILLING_ADDRESS . ' 
' /*. tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif')*/; ?>
' ); ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
selection(); if (sizeof($selection) > 1) { ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
play_for_work ' . TITLE_PLEASE_SELECT . '' . '
' // ([6])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . 'play_for_work' //. tep_image(DIR_WS_IMAGES . 'arrow_east_south.gif'); ?>
play_for_work
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN //if (isset($selection[$i]['icon'])) { echo $selection[$i]['icon']; } else { var_dump($selection); } switch ($selection[$i]['id']) { case 'Etransactions_direct': echo 'credit_card'; break; case 'moneyorder': echo 'subtitles'; break; case 'virementbancaire': echo 'layers'; break; case 'devis': echo 'assignment'; break; case 'retrait_mag': echo 'store'; break; default: echo 'send'; break; } // ([13])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // ([7])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END echo ' ' . "\n"; } else { // ([7])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END echo ' ' . "\n"; } ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN echo str_replace( 'EUR', '', $currencies->format($selection[$i]['cost']) ); // ([22])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END } ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> 1) { // ([12])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN echo tep_draw_radio_field( 'payment', $selection[$i]['id'], '', 'class="uk-radio --inputRadioDot__typeNeutral"' ); // ([12])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END } else { // ([12])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN echo tep_draw_hidden_field( 'payment', $selection[$i]['id'], '', 'class="uk-radio --inputRadioDot__typeNeutral"' ); // ([12])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END } ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
0000007: ajout de la date d'evenement ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END str_replace(ENTRY_DISCOUNT_COUPON, 'Si vous disposez d\'un code d\'avoir, inscrivez le ici :  ', ENTRY_DISCOUNT_COUPON) . ' ' . tep_draw_input_field( 'coupon', '', 'size="32" class="uk-input uk-form-small uk-form-width-large --inputTextBox__type1"' ); ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END str_replace(' [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> 0000007: ajout de la date d'evenement ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // [ALTERATION_OF_OLD_DESIGN_BUTTON_DATE_OF_EVENT_WILL_BE_DISPLAYED_HERE] ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> */ // ([30])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
' . TITLE_CONTINUE_CHECKOUT_PROCEDURE . '
' . '' . TEXT_CONTINUE_CHECKOUT_PROCEDURE . ''; ?>
OSC-37: Rendre le choix d'une date d'évènement OBLIGATOIRE avant de pouvoir valider une commande ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN /* [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> :\s.*\s\]\n*)/gi) ) { document.getElementById('dateOfEventWarningBecauseNowRequired__withHeaderModal__buttonShowFullModal_real').click(); this.disabled = true; } else if (settedEventDate == 'DateOk') { this.disabled = false; }" onfocus=" if (settedEventDate == 'DatePasOk') { document.getElementById('dateOfEventWarningBecauseNowRequired__withHeaderModal__buttonShowFullModal_real').click(); this.disabled = true; } else if (settedEventDate == 'DateOk') { this.disabled = false; }" onclick=" if (settedEventDate == 'DatePasOk' || !$('#ChampDeCommentaire').val().match(/(\[\s+:\s.*\s\]\n*)/gi) ) { document.getElementById('dateOfEventWarningBecauseNowRequired__withHeaderModal__buttonShowFullModal_real').click(); this.disabled = true; } else if (settedEventDate == 'DateOk') { this.disabled = false; }" ondblclick=" if (settedEventDate == 'DatePasOk' || !$('#ChampDeCommentaire').val().match(/(\[\s+:\s.*\s\]\n*)/gi) ) { document.getElementById('dateOfEventWarningBecauseNowRequired__withHeaderModal__buttonShowFullModal_real').click(); this.disabled = true; } else if (settedEventDate == 'DateOk') { this.disabled = false; }" [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> > [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>

Attention

', TEXT_DISPLAY_EVENTDATE_DATEISREQUIRED))); ?>

[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> check
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> person_pin_circle
BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> ' . str_replace('livraison', 'd\'expédition', CHECKOUT_BAR_DELIVERY) . ''; ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?> [SI-LINDER-PARTNER-2][OSC][SimpleTaskDescription]:{" on ajoute une classe pour pouvoir cibler cette cellule de tableau afin de la masquer en responsive ou autres ! // [RESPONSIVE_DESIGN_2020_IMPLEMENTATION_CARDBOARD_2020_SAPHYRA_INTERACTIVE_ETAPE_4] "} ?>
[SI-LINDER-PARTNER-2][OSC][SimpleTaskDescription]:{" on ajoute un élément HTML et une classe pour pouvoir cibler cette zone afin de la styliser en responsive ou autres ! "} ?>