[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/mvt_stock.php
et on y récupère aussi les commentaires,
codes et commentaires initiaux, seront aussi repris et inclus sous forme refactorisés (c'est-à-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()
- 6/ ATTENTION
- avant octobre 2020, le client, aimait l'affichage de la boite Nouveaux Arrivages
- depuis octobre 2020, le client, finalement préfèrait que cette boite soit masquée, mais après lui avoir proposé de ne l'activer que pour les professionnels ou partenaires, il a dit ok pour ça
donc ici, on va ajouter une condition pour tester si le profil du client est Professionnel ou Partenaire),
si oui, on générera et affichera la boite
si non, on ne générera pas l'affichage de la boite
}
*/
?>
[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::BEGIN
// ([6])-->BEGIN[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END
if ($is_partner || is_pro_customer()) {
// ([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) }**
**
**/
// -- on récupère les données des 100 derniers mouvements de stock
$products_query = tep_db_query("
SELECT
sa.products_name,
sa.date,
sa.products_id,
sa.qtyadd
FROM
" . ' stockadd ' . " sa
ORDER BY
sa.date
DESC
LIMIT 0,100
");
// -- ces deux lignes ne sont pas issues du code original, mais, elles serviront à titre de debug (éventuel)
$legacy_mvt_stock_counts = tep_db_num_rows($products_query);
$legacy_mvt_stock_fetchs = tep_db_fetch_array($products_query);
/** ANCIEN CODE REPRIS::(end)::
**/
$dynamicnavigationboxNouveauxArrivages__referencers = array(
'mvt-stock-counts' => $legacy_mvt_stock_counts,
'mvt-stock-fetchs' => $legacy_mvt_stock_fetchs,
'mvt-stock-html-structure' => '',
'mvt-stock-show-quantity' => false
);
// > [start]{"boucle de gestion du listing des nouveaux arrivages"}
//
/** 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 = $dynamicnavigationboxNouveauxArrivages__referencers['mvt-stock-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_mvt_stock_fetchs = tep_db_fetch_array($products_query);
// $dynamicnavigationboxNouveauxArrivages__referencers['mvt-stock-fetchs'] = $legacy_mvt_stock_fetchs;
// while ($products = $dynamicnavigationboxNouveauxArrivages__referencers['mvt-stock-fetchs'] { ... }
//
// SEMBLE DIFFERENT DE
// while ($products = tep_db_fetch_array($products_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!
**/
$dynamicnavigationboxNouveauxArrivages__referencers['mvt-stock-html-structure'] = '';
$dynamicnavigationboxNouveauxArrivages__referencers['mvt-stock-html-structure'] .= '
|
| [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 $boxDynamicNavigationBoxNouveauxArrivages__phpvar_cellBox_content = ' '; $info_box_contents = array(); $info_box_contents[] = array('text' => $boxDynamicNavigationBoxNouveauxArrivages__phpvar_cellBox_content); new menuInfoBox($info_box_contents); // ([5])-->[SI-LINDER-PARTNER-2][OSC][SubTaskDescription]::END ?> [start]{"inclusion des scripts Javascript distants nécéssaires à l'initialisation de jQuery pour le plugin de pagination initialement prévu"} // // { on prévoit un passage en tout HTTPS (ssl secure http) pour le site, et donc on peut avoir des inconsistances au niveau des protocoles HTTP pour les tierces-parties } // { tierces-parties qui peuvent êtres des scripts Javascript appelés sur des sites externes, en HTTP au lieu de HTTPS } // { ici on va fixer les liens HTTP en HTTPS } /** ANCIEN CODE REPRIS (depuis includes/boxes/mvt_stock.php)::(begin):: **{ peut avoir été refactorisé/changé pour s'adapter aux besoin de développements) }** ** **/ ?> [stop]{"inclusion des scripts Javascript distants nécéssaires à l'initialisation de jQuery pour le plugin de pagination initialement prévu"} // > [start]{"inclusion des styles CSS embarqués nécéssaires à l'initialisation de jQuery pour le plugin de pagination initialement prévu"}?> |