[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 ?>[SI-LINDER-PARTNER-2][OSC][MultiTaskDescriptions]:{ - 1/ on va commencer par structurer le nouveau fichier, de manière à facilement le reconnaître dans le code source, et surtout on respecte le système d'infobox de OSCommerce, afin de préserver la structure ET la philosophie d'affichage d'OSCommerce, soit usage de $info_box_contents = array(); $info_box_contents[] = array('text' .. menuInfoBoxHeading() et $info_box_contents = array(); $info_box_contents[] = array('text' .. menuInfoBox() on n'oublie pas d'ouvrir et de fermer les lignes du tableau (
| une petite classe CSS ! - 2/ cette boite-dynamique-de-navigation est censée manipuler des données de la base de données ou autres, ainsi, l'on crée quelques requêtes SQL (ou les conditions qui vont bien) afin d'extraire ou d'insérer des données de ou vers la base de données ou d'autres sources, on créé donc une variable PHP (à index nommés associatifs) qui serviront à la logique de la boite-dynamique-de-navigation, (car c'est bien une boite-dynamique-de-navigation et non une boite, en apparence visuelle), certaines de ces variables nous serviront plus d'une fois dans ce fichier.. concernant le tableau associatif, chaque index nommé du tableau associatif sont destinés à être employé de manière bien précises spécialement pour cette boite-dynamique-de-navigation: on se base sur la logique du fichier original /includes/boxes/order_history.php et on y récupère aussi les commentaires, codes et commentaires initiaux, seront aussi repris et inclus sous forme refactorisés (c'es-à-dire proprement organisé) au code source mais on conserve éventuellement les NOMS DES VARIABLES INITIALES. BUG - regarder le CODETAG [BUG_ASSOCIATIVE_ARRAY_INDEX_SEEMS_UNUSABLE] - 3/ nous n'oublions pas de nullifier les variables déclarées en [2] et [5] (de les détruire), à la fin du fichier comme une purge donc, - 4/ il est très important que cette boite-dynamique-de-navigation dispose d'un titre géré par OSCommerce du-moins, donc, on écrit bel et bien un titre essentiel à l'éco-système et philosophie de OSCommerce - 5/ on utilise une variable pour définir le contenu de la boite-dynamique-de-navigation aussi, on développe la structure HTML de la boite-dynamique-de-navigation ici elle sera stylisée plus tard par du code CSS et c'est là que certaines variables définies en [2], vont servir, dans le sens où, on va afficher le contenu désiré enfin, on se sert de la variable contenant le contenu de la structure HTML de la boite-dynamique-de-navigation, et on l'affiche à l'aide d'une infoxbox: menuInfoBox() } */ ?> [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN // ([2])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN /** ANCIEN CODE REPRIS::(begin):: **{ peut avoir été refactorisé/changé pour s'adapter aux besoin de développements) }** ** **/ if (tep_session_is_registered('customer_id')) { // ... retreive the last x products purchased // -- pour tester: o.customers_id = '" . (int)11749 . "' // au lieu de : o.customers_id = '" . (int)$customer_id . "' $orders_query = tep_db_query(" SELECT DISTINCT op.products_id FROM " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_PRODUCTS . " p WHERE o.customers_id = '" . (int)$customer_id . "' AND o.orders_id = op.orders_id AND op.products_id = p.products_id AND p.products_status = '1' GROUP BY products_id ORDER BY o.date_purchased DESC LIMIT " . MAX_DISPLAY_PRODUCTS_IN_ORDER_HISTORY_BOX ); $legacy_orders_counts = tep_db_num_rows($orders_query); $legacy_orders_fetchs = tep_db_fetch_array($orders_query); /** ANCIEN CODE REPRIS::(end):: **/ $dynamicnavigationboxVosCommandes__referencers = array( 'order-history-counts' => $legacy_orders_counts, 'order-history-fetchs' => $legacy_orders_fetchs, 'order-history-html-structure' => '' ); // > [start]{"si le client a des commandes dans son historique"} if ($dynamicnavigationboxVosCommandes__referencers['order-history-counts']) { /** ANCIEN CODE REPRIS::(begin):: **{ peut avoir été refactorisé/changé pour s'adapter aux besoin de développements) }** ** **/ /** PHP 5.3 N'AIME PAS CA.. : // [BUG_ASSOCIATIVE_ARRAY_INDEX_SEEMS_UNUSABLE] $product_ids = ''; while ($orders = $dynamicnavigationboxVosCommandes__referencers['order-history-fetchs']) { $product_ids .= (int)$orders['products_id'] . ','; } $product_ids = substr($product_ids, 0, -1); // très.. curieux: // - soit un bug de ma part, suite à un illogisme d'usage, // mais aussi très probablement un bug de PHP 5.3 sur le serveur, car c'est bien encore PHP 5.3 qui y tourne à l'heure où j'écris ces lignes: (mercredi 11 décembre 2019): // // car utiliser: // $legacy_orders_fetchs = tep_db_fetch_array($orders_query); // $dynamicnavigationboxVosCommandes__referencers['order-history-fetchs'] = $legacy_orders_fetchs; // while ($orders = $dynamicnavigationboxVosCommandes__referencers['order-history-fetchs'] { ... } // // SEMBLE DIFFERENT DE // while ($orders = tep_db_fetch_array($orders_query)) { ... } // // --- CONCLUSION: BUG de PHP (ou un bug à moi?) ? // Au final, on utilise le tep_db_fetch_array() directement.. au moins ça fonctionne comme ça.. c'est dommage, ça mochifie le code.. // Rhââ PHP 5.3... Saleté de vieille version de PHP 2003! **/ $product_ids = ''; while ($orders = tep_db_fetch_array($orders_query)) { $product_ids .= (int)$orders['products_id'] . ','; } $product_ids = substr($product_ids, 0, -1); $dynamicnavigationboxVosCommandes__referencers['order-history-html-structure'] = ''; $products_query = tep_db_query(" SELECT products_id, products_name FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id IN ( " . $product_ids . " ) AND language_id = '" . (int)$languages_id . "' ORDER BY products_name" ); while ($products = tep_db_fetch_array($products_query)) { $dynamicnavigationboxVosCommandes__referencers['order-history-html-structure'] .= ' '; } $dynamicnavigationboxVosCommandes__referencers['order-history-html-structure'] .= ''; /** ANCIEN CODE REPRIS::(end):: **/ } // < [stop]{"si le client a des commandes dans son historique"} if ($dynamicnavigationboxVosCommandes__referencers['order-history-counts']) { // ([2])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> |
| [SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN $info_box_contents[] = array('text' => " " . ''); new menuInfoBoxHeading($info_box_contents, false, false); // ([4])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END // ([5])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN $boxDynamicNavigationBoxVosCommandes__phpvar_cellBox_content = ' '; $info_box_contents = array(); $info_box_contents[] = array('text' => $boxDynamicNavigationBoxVosCommandes__phpvar_cellBox_content); new menuInfoBox($info_box_contents); // ([5])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> |