[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 ?> OSC-37: Rendre le choix d'une date d'évènement OBLIGATOIRE avant de pouvoir valider une commande // ce qui se passe: // si l'utilisateur n'a pas saisi de date d'évènement, le site doit dire à l'utilisateur qu'il doit choisir une date de d'évènement, car désormais ceci est obligatoire. // puis redirigera l'utilisateur vers la page d'édition de commentaire. // // le champs de commentaire a pour name: comments // car PHP utilise l'attribut name pas id pour identifier les valeurs $_POST (soit: $HTTP_POST_VARS en ancien php). // // utilisation de stripslashes car j'ai échappé les apostrophes des chaînes de langues.. $acc_htmlentity = array ("\'", 'é', 'è'); $acc_displayentity = array ("'", 'e', 'e'); if ( !preg_match("/(\[\s+".TEXT_DISPLAY_EVENTDATE.":\s.*\s\]\n*)/mi", stripslashes($HTTP_POST_VARS['comments']) ) ) { // on estimes que si l'utilisateur a réussi à parvenir jusqu'ici alors qu'il n'a pas soumis de date de l'évènement c'est qu'il a désactivé Javascript, dans ce cas, on lui affiche un message textuel. // via les fonctions de osCommerce. tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(str_replace($acc_htmlentity, $acc_displayentity, TEXT_DISPLAY_EVENTDATE_DATEISREQUIRED))), 'SSL'); } // <- OSC-37: Rendre le choix d'une date d'évènement OBLIGATOIRE avant de pouvoir valider une commande /************************************************************************ [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions]:{ - 1/ retrait de la partie du code empêchant les utilisateurs de passer de la page checkout_payment, à la page checkout_confirmation, lié à cause du formulaire des CGV en effet bien que la section des CGV soient mis en commentaires sur la page d'avant l'accès à celle-ci, le code d'en dessous renvoyait vers une page d'erreur. le code inutile a été mis entres commentaires PHP } */ // ([1])-->[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN /* -> MATT03 if ($HTTP_POST_VARS['agree'] != 'true') { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_redirect(tep_href_link(FILENAME_CHECKOUT_FAIL)), 'SSL')); } // <- MATT03 */ // ([1])-->[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END /* [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] ************************************************************************/ // if the customer is not logged on, redirect them to the login page if (!tep_session_is_registered('customer_id')) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); 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)); } // 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')); } } // 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')); } if (!tep_session_is_registered('payment')) tep_session_register('payment'); if (isset($HTTP_POST_VARS['payment'])) $payment = $HTTP_POST_VARS['payment']; if (!tep_session_is_registered('comments')) tep_session_register('comments'); //kgt - discount coupons if (!tep_session_is_registered('coupon')) tep_session_register('coupon'); //this needs to be set before the order object is created, but we must process it after $coupon = tep_db_prepare_input($HTTP_POST_VARS['coupon']); //end kgt - discount coupons if (tep_not_null($HTTP_POST_VARS['comments'])) { $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']); } // load the selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); require(DIR_WS_CLASSES . 'order.php'); $order = new order; $payment_modules->update_status(); if ( ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL')); } if (is_array($payment_modules->modules)) { $payment_modules->pre_confirmation_check(); } //kgt - discount coupons if( tep_not_null( $coupon ) && is_object( $order->coupon ) ) { //if they have entered something in the coupon field $order->coupon->verify_code(); //Ajout thibaut : Si le coupon possede un minimum de commande et qu'il n'est pas atteint on redirige avec l'erreur if ($order->coupon->check_coupons_min_order()==false) { tep_redirect( tep_href_link( FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode( implode( ' ', $order->coupon->get_messages() ) ), 'SSL' ) ); } if( MODULE_ORDER_TOTAL_DISCOUNT_COUPON_DEBUG != 'true' ) { if( !$order->coupon->is_errors() ) { //if we have passed all tests (no error message), make sure we still meet free shipping requirements, if any if( $order->coupon->is_recalc_shipping() ) tep_redirect( tep_href_link( FILENAME_CHECKOUT_SHIPPING, 'error_message=' . urlencode( ENTRY_DISCOUNT_COUPON_SHIPPING_CALC_ERROR ), 'SSL' ) ); //redirect to the shipping page to reselect the shipping method } else { if( tep_session_is_registered('coupon') ) tep_session_unregister('coupon'); //remove the coupon from the session tep_redirect( tep_href_link( FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode( implode( ' ', $order->coupon->get_messages() ) ), 'SSL' ) ); //redirect to the payment page } } } else { //if the coupon field is empty, unregister the coupon from the session if( tep_session_is_registered('coupon') ) { //we had a coupon entered before, so we need to unregister it tep_session_unregister('coupon'); //now check to see if we need to recalculate shipping: require_once( DIR_WS_CLASSES.'discount_coupon.php' ); if( discount_coupon::is_recalc_shipping() ) tep_redirect( tep_href_link( FILENAME_CHECKOUT_SHIPPING, 'error_message=' . urlencode( ENTRY_DISCOUNT_COUPON_SHIPPING_CALC_ERROR ), 'SSL' ) ); //redirect to the shipping page to reselect the shipping method } } //end kgt - discount coupons // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($shipping); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; // Stock Check $any_out_of_stock = false; if (STOCK_CHECK == 'true') { for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) { $any_out_of_stock = true; } } // Out of Stock if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) { tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); } } // -> VDOFS : gestion des articles épuisés if ( $cart->check_after_any_site_changes() ) { tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); } // <- VDOFS require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_CONFIRMATION); $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); $breadcrumb->add(NAVBAR_TITLE_2); ?> > <?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_confirmation.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] ************************************************************************/ ?> [SI-LINDER-PARTNER-2][OSC][AddClassDescription(isPage--CheckoutConfirmation 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] "} ?>
[SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ 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 "Dernière étape avant confirmation de la commande" par "Résumé avant Confirmation de votre Commande" - 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 ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?>
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/ retrait de la table "Saviez-vous" - 2/ modification de texte statique } */ ?> [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][MultiTaskDescriptions]:{ - 1/ cette partie de code du tableau n'existait absolument pas avant, et elle contient le contenu visuel d'une section rajoutée de la page - 2/ ajout d'une structure d'entête manquante pour le tableau à venir après on donne un texte à cette cellule [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ ajout d'un nouveau bloc } */ ?> [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][MultiTaskDescriptions] ************************************************************************ */ ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ cette partie de code du tableau n'existait absolument pas avant, et elle contient le contenu structurel d'une séparation rajoutée de la page - 2/ ajout d'une structure pour dissocier du tableau précédent le tableau à venir après ce sera beaucoup plus propre selon moi } */ ?> [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][MultiTaskDescriptions] ************************************************************************ */ ?>
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) . '' . '
' . '  pour  '; ?>' . str_replace(CHECKOUT_BAR_DELIVERY, 'Corriger les informations de Facturation', CHECKOUT_BAR_DELIVERY) . '' . '
'; ?>
BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
, 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 la structure HTML, car là, c'est pas très lisible pour un développeur qui éditerai le code plus tard - 4/ on va ajouter une classe à la cellule () cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive on restructure cette cellule au passage, le code d'avant était indigeste à la relecture on ajoute le retour à la ligne pour le lien, (au fait, cette fois la cellule est centrée!) - 5/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales - 6/ on modifie ici le texte "Editer" par "Modifier?" (c'est plus 2020 tout ça!) - 7/ on ajoute un
de contenu de valeurs ici, et on restructure le code [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ ajout du nouveau bouton vtab } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> 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 une partie du 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/ à la différence des autres pages, ici, on va restyliser chaque
..
[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]::END ?> info['shipping_method']) { ?> [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]::END ?>
' . HEADING_DELIVERY_ADDRESS . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>
delivery['format_id'], $order->delivery, 1, ' ', '
' ); ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
' . HEADING_SHIPPING_METHOD . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>
info['shipping_method']; ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?>
, 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 la structure HTML, car là, c'est pas très lisible pour un développeur qui éditerai le code plus tard - 4/ on va ajouter une classe à la cellule () cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive on restructure cette cellule au passage, le code d'avant était indigeste à la relecture on ajoute le retour à la ligne pour le lien, (au fait, cette fois la cellule est centrée!) - 5/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales - 6/ on modifie ici le texte "Editer" par "Modifier?" (c'est plus 2020 tout ça!) - 7/ on ajoute un
de contenu de valeurs ici, et on restructure le code - 8/ on modifie ici le texte "Produits" par "Liste de Produits" (c'est plus 2020 tout ça!) - 9/ totalement pour décorer, on va ajouter un icone avec UI Kit, et qui plus est sera capable de s'animer au survol des LIGNES du tableau - 10/ totalement pour décorer, on va ajouter un alignement vertical (valign) valorisé à "middle" au lieu de "top" - 11/ on vérifie une condition simple ici, si les taxes des produits ne sont pas tous à la même taxe, alors, on valorise une variable (temporaire), détruite en [13], à rien, sinon à un icone UI Kit cela est important, car sinon, ça casse le design, par logique de survol CSS qui ne s'applique pas, et ça fait moche de toutes façons, car les taxes seraient affichées sous l'icone UI Kit - 12/ on se sert de la variable déclarée et valorisée en [11] - 13/ on détruit la variable déclarée et valorisée en [11] et utilisée en [12] - 14/ on commente l'ancienne structure ici (qui affichait de vieux codes HTML tout vieillots..) et on en structure une toute nouvelle - 15/ on encadre le texte d'un leader, via le composant Leader de UI Kit, afin de combler ce vide affreux après ce texte, ce qui faisait vraiment moche et mort avant le leader aura pour effet de rajouter un certain nombre de points APRES le texte ici! [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ ajout du nouveau bouton vtab } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> 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 une partie du 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/ à la différence des autres pages, ici, on va restyliser chaque
..
info['tax_groups']) > 1) { ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [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]::BEGIN ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> products); $i<$n; $i++) { echo ' ' . "\n" . // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ' ' // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . "\n" . // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // ([10])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ' ' // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . "\n"; // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN if (sizeof($order->info['tax_groups']) > 1) echo '' // ([10])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . ' ' // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . "\n"; if ($is_partner==true ) { if ($order->products[$i]['final_price'] ==0 OR $order->products[$i]['final_price']>$order->products[$i]['cost']*$coeff_partner) { $order->products[$i]['final_price'] = $order->products[$i]['cost']*$coeff_partner; } } // ([11])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN $priceCellDataUKIcon = ''; if (sizeof($order->info['tax_groups']) > 1) { $priceCellDataUKIcon = ''; } else { $priceCellDataUKIcon = ''; } // ([11])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN echo ' ' // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . "\n" . /* v (commenté par son ancien développeur, on la garde donc commentée, cette ligne de code doit sûrement poser problème avec de mauvaises taxes ajoutées ?) v */ // echo ' ' . "\n" . // <- VDSTHT ' ' . "\n"; // ([13])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END $priceCellDataUKIcon = null; } ?>
' // ([8])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . str_replace(HEADING_PRODUCTS, 'Liste de Produits', HEADING_PRODUCTS) . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
' // ([8])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . str_replace(HEADING_PRODUCTS, 'Liste de Produits', HEADING_PRODUCTS) . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' . $order->products[$i]['qty'] . ' ' . '' . 'x' . '' . '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END .'
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' // ([15])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' . $order->products[$i]['name'] . '
' // ([15])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . '
'; // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END if (STOCK_CHECK == 'true') { echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']); } if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) { for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) { // ([14])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN //echo '
  - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . ''; echo '
' . '
' . '' . $order->products[$i]['attributes'][$j]['option'] . ': ' . '' . '' . $order->products[$i]['attributes'][$j]['value'] . '' . '
' . '
'; // ([14])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END } } echo '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' . tep_display_tax_value($order->products[$i]['tax']) . ' %' . '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN . '
' // ([9])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([12])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . $priceCellDataUKIcon . str_replace( 'EUR', '', $currencies->display_price($order->products[$i]['final_price'], 0, $order->products[$i]['qty']) ) . '
' // ([7])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END . '
' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?>
[SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ une partie de code du tableau n'existait absolument pas avant, et elle contient le contenu structurel d'un affichage rajouté à ce contenu dans la page - 2/ ajout d'une structure de tableau, cela pour homogénéiser le reste (voir plus haut pour l'Expédition) - 3/ à cet emplacement, remplacer le texte par défaut par une chaîne précise afin de moins induire l'utilisateur en confusion } */ ?> [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][MultiTaskDescriptions] ************************************************************************ */ ?> , 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 la structure HTML, car là, c'est pas très lisible pour un développeur qui éditerai le code plus tard - 4/ on va ajouter une classe à la cellule () cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive on restructure cette cellule au passage, le code d'avant était indigeste à la relecture on ajoute le retour à la ligne pour le lien, (au fait, cette fois la cellule est centrée!) - 5/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales - 6/ on modifie ici le texte "Editer" par "Modifier?" (c'est plus 2020 tout ça!) - 7/ on ajoute un
de contenu de valeurs ici, et on restructure le code [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ ajout du nouveau bouton vtab } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> 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 une partie du 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/ à la différence des autres pages, ici, on va restyliser chaque
..
[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]::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]::END ?>
' . HEADING_BILLING_ADDRESS . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>
billing['format_id'], $order->billing, 1, ' ', '
' ); ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?>
' . HEADING_PAYMENT_METHOD . '' . '
' ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?>
info['payment_method']; ?>
[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][MultiTaskDescriptions]:{ - 1/ cette partie de code du tableau n'existait absolument pas avant, et elle contient le contenu structurel d'une séparation rajoutée de la page - 2/ ajout d'une structure pour dissocier du tableau précédent le tableau à venir après ce sera beaucoup plus propre selon moi } */ ?> [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][MultiTaskDescriptions] ************************************************************************ */ ?> [SI-LINDER-PARTNER-2][OSC][AddClassDescription(--pageCheckoutConfirmationMainTableListingSection_MODULE_ORDER_TOTAL)]:{" perméttra plus tard de cibler ce bloc de de sections précis "} ?> BACKUPCMD $order_totals = $order_total_modules->process(); //<- BACKUPCMD /* ************************************************************************ [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ cette partie affiche un endroit qu'on ne peut pas modifier (car généré depuis une classe et ce serait un bordel de modifier une classe qui est utilisée un peu partout dans le site au lieu de juste réadapter cette page à l'aide d'astuces intelligentes, comme l'usage d'un remplacement de valeurs pour en cibler d'autres et de donner une classe à des éléments - 2/ bon, déjà, afin de faire comme précisé plus haut à l'étape [1], on va devoir utiliser différentes variables PHP ces variables contiennent respectivement (a) ce qui doit être cherché (ici, on veut trouver les doubles-points) et c'est tout! LE terme EUR (impliquant en fait le nom de la MONNAIE utilisée sur le site) ne doit finalement pas être recherché ainsi à cause d'un bug.. str_replace() ne permettra pas la recherche intelligente aussi bien que prévu.. à cause ce problème logique (idiot): pour un point relais nommé: Espace ICI Relais FLEURS KELLER (P22588) CA SERAIT RENOMME EN: Espace ICI Relais FL€S KELLER (P22588) Lol.. donc avant : array(':', 'EUR'); et maintenant : array(':'); et (b) par quoi le remplacer (ici, les doubles-points seront simplement supprimés, (ça fait pas beau)), et c'est tout! LE terme EUR qui est graphique selon le reste du modèle du site ne doit pas être incorporé ainsi à cause d'un bug.. str_replace() ne permettra pas la recherche intelligente aussi bien que prévu.. à cause ce problème logique (idiot): pour un point relais nommé: Espace ICI Relais FLEURS KELLER (P22588) CA SERAIT RENOMME EN: Espace ICI Relais FL€S KELLER (P22588) Lol.. donc avant : array('', ''); et maintenant : array(''); ensuite.. comme ces variables seront immédiatement détruite après usage en [5] alors on ne les considère pas comme des variables référenceuses - 3/ on instance donc un remplacement dans la chaîne désirée à l'aide de nos variables déclarées en [2] - 4/ c'est impossible de dissocier la cellule du TITRE d'un sous-total de la cellule du TARIF d'un sous-total.. les deux ont la même classe : main aïe.. c'est malin.. mais.. toutefois, rappellez-vous en [3] on a remplacé le symbole EUR par un code bien précis et unique on va donc ici, se servir de ce code bien précis comme BASE de recherche afin d'ajouter une classe CSS à la cellule d'un TARIF, pour pouvoir la styliser plus tard (sinon il y aurait décalage), et encore, de pouvoir la cibler en responsive ainsi, grace à un preg_replace() correctement paramétré et renseigné, on peut injecter un attribut 'class' à chacune des cellules contenant un TARIF, pas la peine de rechercher autre chose que (.*) dans notre pattern de regex, dans le sens, où, de toutes manières le code du span € n'existe absolument pas dans la cellule de TITRE afin d'éviter les bugs de remplacer n'importe quel terme EUR par notre symbole €.. on va alors ajouter désormais un petit preg_replace() supplémentaire ici! on y cherchera : le terme EUR qui n'est pas précédé par des LETTRES avant (en minuscules comme majuscules) on le remplacera : par la totalité du 'prix' (car il s'agira bien d'un prix), puis suivi de notre terme EUR graphique selon le reste du modèle du site (le \1 est O-BLI-GA-TOI-RE ! Sans cela, un prix de XX.YY serait remplacé par XX.Y€ (exemple: 8.40 deviendrait sans ce "\1" alors 8.4€)) (le \1 correspond à TOUT les chiffres trouvés avant le EUR et après le point du prix). - 5/ et enfin, on détruit nos variables déclarées en [2], utilisée en [3] car elles ne nous serviront absolument plus dans cette page } */ // ([1])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // ([2])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN $arrayCheckoutConfirmationSearcher = array(':'); $arrayCheckoutConfirmationReplacer = array('' /*, ''*/); // ([2])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END echo // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN preg_replace( '/align="right" class="main">\s{0,}(.*)\s{0,}\\1', $order_total_modules->output() ) ) // ([3])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ); // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([5])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN $arrayCheckoutConfirmationSearcher = null; $arrayCheckoutConfirmationReplacer = null; // ([5])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([1])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END /* [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ } ?>
modules)) { if ($confirmation = $payment_modules->confirmation()) { ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ une partie de code du tableau n'existait absolument pas avant, et elle contient le contenu structurel d'un affichage rajouté à ce contenu dans la page - 2/ ajout d'une structure de tableau, cela pour homogénéiser le reste (voir plus haut pour l'Expédition) - 3/ à cet emplacement, remplacer le texte par défaut par une chaîne précise afin de moins induire l'utilisateur en confusion } */ ?> [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][MultiTaskDescriptions] ************************************************************************ */ ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ en soit cet endroit n'est pas mal structuré, mais il manque furieusement de véritable style visuel agréable à regarder il s'agit d'une zone d'informations qui apparaît après paiement... il faut donc la mettre en valeur (visuellement, qu'elle soit facile à repérer et agréable à regarder/lire) - 2/ à 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 - 3/ 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
- 4/ on ajoutes des classes UI-Kit à l'élément de liens afin de lui donner plus de style, et on le restructure un peu - 5/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> 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 ?> 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 ?>
[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 ?> BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END str_replace(' [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]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ on va revoir les éléments de boutons, tout simplement par ici - 2/ on reprends l'ancien code PHP ou HTML qui était présent ici - 3/ 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 [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 [3] de la tâche [SI-LINDER-PARTNER-2][OSC] - 1.5/ ajout du champ de commentaire modifiable - 2/ ajout d'une classe CSS ici pour cibler l'élément plus tard - 3/ ajout d'une classe pour corriger l'affichage de l'acception des CGV } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [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]::END ?> [SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions] ************************************************************************ */ ?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> form_action_url)) { $form_action_url = $$payment->form_action_url; } else { $form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'); } echo tep_draw_form('checkout_confirmation', $form_action_url, 'post'); if (is_array($payment_modules->modules)) { echo $payment_modules->process_button(); // -> BACKUPCMD include('checkout_pre_process.php'); // <- BACKUPCMD } ?> BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN echo tep_draw_textarea_field( 'comments', 'soft', '60', '5', '', 'id="ChampDeCommentaire" class="uk-textarea uk-form-small uk-form-width-full --inputTextArea__type2"' ); // ([1.5])-->BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END echo // ([11])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([2])-->BEGIN[VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END str_replace('
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::BEGIN ?> [VTAB-TEAM-LINDER-PARTNER-1][OSC][SubTaskDescription]::END ?> 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 - 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 va ajouter une classe à cette cellule (..) cette classe servira à pouvoir cibler plus efficacement cette partie sensible du design, autant en affichage normal qu'en responsive - 4/ 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 [5] 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 - 5/ 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 - 6/ 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 - 7/ on donne une classe CSS aux liens href et éventuellement on modifie leur texte et leur classe initiales [VTAB-TEAM-LINDER-PARTNER-1][OSC][MultiTaskDescriptions] - Revue de la charte Graphique: - 1/ 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]) } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [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]::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 ?> check
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> 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 ?> person_pin_circle
[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 ?> ' . str_replace('livraison', 'd\'expédition', CHECKOUT_BAR_DELIVERY) . ''; ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN ?> [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 ?> */ ?> [VTAB-TEAM-LINDER-PARTNER-1][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 ! "} ?>