Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
17 Sep 2008, 07:01
Message
#51
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
Par contre, perso, je reste sur l'idée que le code de cette boxe est beaucoup trop lourd et qu'il y a moyen d'alléger en faisant du spécifique (en partant du cPath il doit même y avoir un moyen de faire beaucoup plus simple que cette usine à gaz qu'est la boxe d'origine... c'est tellement lourd à requêter que les concepteurs l'ont mise en cache, on comprend pourquoi....)
Ce message a été modifié par gentag - 17 Sep 2008, 07:01. -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 07:09
Message
#52
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Sinon l'erreur avec mon code n'est pas impossible car comme je zappe toute la partie de la construction des catégories principales et qu'il reste une ligne commentée pour dire de passer à une principale suivante (à ne pas décommenter, voilà le bordel sinon...) Si tu pense que c'est cette partie qui cause problème, et bien j'ai modifier comme ceci en faite : Code if ((int)$tree[$counter]['parent'] > 0) { Donc on zappe bien les catégories dont les parent = 0, du coup pas de problème.for ($i=0; $i<$tree[$counter]['level']; $i++) { $categories_string .= " "; } ... etc ... } Ceci dit je ne pense pas que ce soit cette partie, car l'erreur vient avant d'après le retour d'erreur, quand on construit le tableau $tree, dans la 2ème requête, donc avant l'appel à la fonction tep_show_category(). Je n'est pas cette erreur, je ne sais même pas comment provoquée cette erreur. L'erreur dit que le $tree[] n'est pas défini à un moment, donc j'en conclu qu'à un moment donné la requête retourne un $row['categorie_id'] null ou vide ou rien. Ce qui sous entends que cela viendrait de la requête, d'une ligne quelle retourne pas très conforme. Enfin, je vois pas autre chose. Ce message a été modifié par shoprun - 17 Sep 2008, 07:13. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 08:20
Message
#53
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
En fait, le truc que j'avais fait n'affichait rien si level 0 mais le tree n'était pas touché normalement... mais sans le code (edit: et le site pour tester, le code était là dans le post...) je n'étais plus sûr de rien, je vais voir... mais je persiste en pensant que c'est vraiment trop tout ce toutim pour juste le besoin de coconimo...
Ce message a été modifié par gentag - 17 Sep 2008, 08:21. -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 08:55
Message
#54
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
heu, pour l'erreur Undefined offset: 10, c'était sur mon code, pas sur les vôtres.
en attendant, on se retrouve bien avec une requête de plus dans la boxe (celle même qu'on voulait éviter par fonction) : Code $cat_name_query = tep_db_query("select c.categories_id , c.categories_image, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $main_cat . "' and cd.categories_id = c.categories_id and cd.language_id='" . (int)$languages_id ."'"); alors pour, ceux qui suivent le sujet (et bien ils sont forts, parce que y'a de la matière Code <?php /* $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ $cat_image = null; function tep_show_category($counter) { global $tree, $categories_string, $cPath_array, $cat_image; if ((int)$tree[$counter]['parent'] > 0) { for ($i=0; $i<$tree[$counter]['level']; $i++) { $categories_string .= " "; } $categories_string .= '<a href="'; $cPath_new = 'cPath=' . $tree[$counter]['path']; $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">'; if (isset($cPath_array) && in_array($counter, $cPath_array)) { // $cat_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, $cPath_new).'">'.tep_image(DIR_WS_IMAGES.$tree[$counter]['image'], $tree[$counter]['name'], 128, 128).'</a>'; // $categories_string .= '<b>'; } // display category name $categories_string .= $tree[$counter]['name']; if (isset($cPath_array) && in_array($counter, $cPath_array)) { $categories_string .= '</b>'; } if (tep_has_category_subcategories($counter)) { $categories_string .= '->'; } $categories_string .= '</a>'; if (SHOW_COUNTS == 'true') { $products_in_category = tep_count_products_in_category($counter); if ($products_in_category > 0) { $categories_string .= ' (' . $products_in_category . ')'; } } $categories_string .= '<br />'; } if ($tree[$counter]['next_id'] != false) { tep_show_category($tree[$counter]['next_id']); } } ?> <!-- categories //--> <tr> <td> <?php if ($cPath != 0) { $arr = explode('_', $cPath); $main_cat = $arr[0]; $cat_name_query = tep_db_query("select c.categories_id , c.categories_image, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $main_cat . "' and cd.categories_id = c.categories_id and cd.language_id='" . (int)$languages_id ."'"); if (tep_db_num_rows($cat_name_query) > 0) { $cat_name = tep_db_fetch_array($cat_name_query); $strg_cat_name = $cat_name['categories_name']; $cat_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, 'cPath='.$cat_name['categories_id']).'">'.tep_image(DIR_WS_IMAGES.$cat_name['categories_image'], $cat_name['categories_name'], 128, 128).'</a>'; } else { $strg_cat_name = BOX_HEADING_CATEGORIES; } } $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); new infoBoxHeading($info_box_contents, true, true); $categories_string = ''; $tree = array(); $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name"); while ($categories = tep_db_fetch_array($categories_query)) { $tree[$categories['categories_id']] = array('name' => $categories['categories_name'], 'image' => $categories['categories_image'], 'parent' => $categories['parent_id'], 'level' => 0, 'path' => $categories['categories_id'], 'next_id' => false); if (isset($parent_id)) { $tree[$parent_id]['next_id'] = $categories['categories_id']; } $parent_id = $categories['categories_id']; if (!isset($first_element)) { $first_element = $categories['categories_id']; } } //------------------------ if (tep_not_null($cPath)) { $new_path = ''; reset($cPath_array); while (list($key, $value) = each($cPath_array)) { unset($parent_id); unset($first_id); $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name"); if (tep_db_num_rows($categories_query)) { $new_path .= $value; while ($row = tep_db_fetch_array($categories_query)) { $tree[$row['categories_id']] = array('name' => $row['categories_name'], 'image' => $row['categories_image'], 'parent' => $row['parent_id'], 'level' => $key+1, 'path' => $new_path . '_' . $row['categories_id'], 'next_id' => false); if (isset($parent_id)) { $tree[$parent_id]['next_id'] = $row['categories_id']; } $parent_id = $row['categories_id']; if (!isset($first_id)) { $first_id = $row['categories_id']; } $last_id = $row['categories_id']; } $tree[$last_id]['next_id'] = $tree[$value]['next_id']; $tree[$value]['next_id'] = $first_id; $new_path .= '_'; } else { break; } } } tep_show_category($first_element); $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); $info_box_contents = array(); $info_box_contents[] = array('text' => $categories_string); if (tep_not_null($cat_image)) { $info_box_contents[] = array('text' => $cat_image); } new infoBox($info_box_contents); ?> </td> </tr> <!-- categories_eof //--> -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 08:58
Message
#55
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
c'est vraiment trop tout ce toutim pour juste le besoin de coconimo... Disons qu'au départ je pensais que son besoin était bien moindre que cette box d'origine, mais c'était bien une erreur d'appréciation de ma part, c'est clair. Mais maintenant, si on regarde bien, son besoin est presque le même, à part que les catégories mères ne sont pas listés, c'est tout. Donc finalement, je ne vois pas comment lister/déployer les catégories au fur et à mesure sans parser la catégorie de départ. Il faut boucler, je ne pense pas que ce soit possible autrement, du moins je vois pas comment faire autrement. Dans ce cas, la mise en cache est essentiel, surtout si on a beaucoup de catégories. Mais ce n'est pas si énorme que ça en faite, le truc le plus gourmant la dedans c'est si on veux mettre le nombre de produit total dans chaque catégorie, c'est la condition -> if (SHOW_COUNTS == 'true'), et là c'est chaud, tu as la fonction -> tep_count_products_in_category() qui est effectuée en boucle ... Là si on a beaucoup de produits, ça peux mettre en vrac osC. Il y a un sujet épinglé la dessus il me semble. [optimisation] En regardant encore un le truc, il me semble qu'il y a moyen d'économiser une requête, c'est pour le nom de la catégorie mère dans l'entête du menu catégorie, car son nom peut être récupéré dans la requête qui permet de construire le breadcrumb, dans le application_top (ligne 477). Code // add category names or the manufacturer name to the breadcrumb trail $strg_cat_name = null; // Initialisation de la variable if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); // Le premier enregistrement correspond à la catégorie mère if ($i == 0) $strg_cat_name = $categories['categories_name']; // $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) { $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); } } Ensuite, dans la box catégorie, on avait ceci : Code if ($cPath != 0) { $arr = explode('_', $cPath); ... etc ... } A remplacer par : Code if (tep_not_null($strg_cat_name)) {
$info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); new infoBoxHeading($info_box_contents, true, false); } Ce message a été modifié par shoprun - 17 Sep 2008, 09:07. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 09:10
Message
#56
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
Euh là je dirais qu'il n'y a presque plus que du shoprun... mais comme d'hab, ça fonctionne nickel, c'est le but
Je savais que ce n'était pas si compliqué que ça, juste que c'est vrai que c'est un peu lourd (le tree est toujours intégral si je ne me trompe pas...), heureusement il y a le cache... si tu en fait une contrib', indique bien dans l'install' ou la description que l'activation du cache est recommandée (bon de toute façon, l'activation du cache EST recommandée). Bon, c'est vrai, ça ne changeras pas le temps de chargement de la page par rapport au code normal, mais c'est justement ça le problème, ça devrait... si tu as dix catégories principales contenant chacunes dix catégories (déjà vu... et même pire...), tu devrais économiser 90 requêtes, ce qui n'est pas négligeable et devrait se ressentir... Sinon, bah... champagne ! -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 09:19
Message
#57
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Euh là je dirais qu'il n'y a presque plus que du shoprun.. Ce n'était pas le but, mais pour enfoncer un peu le bouchon quand même, c'est que les 2 idées ici je les avaient données depuis le début, mon premier post. Citation Ceci dit, il me semble qu'il peut avoir au moins 2 moyens d'obtenir le nom de l'image de la catégorie courante. 1/ La première peut ce faire dans la box categories, suffit de rajouter le champ categories_image dans les requêtes et aussi dans les tableaux. 2/ Dans le application_top.php aussi il devrait avoir moyen, (ligne 477). Mais je crois bien que c'est moi qui foutu tout ce bordel aussi M'enfin, c'est le résultat qui compte Ce message a été modifié par shoprun - 17 Sep 2008, 09:26. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 09:33
Message
#58
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
bah non c pas bon si on supprime le code de gentag, on a plus l'image de la cat principale
-------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 09:39
Message
#59
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
bah non c pas bon si on supprime le code de gentag, on a plus l'image de la cat principale Faut pas le supprimer, mais le remplacer par le nouveau, mais avant faut récupérer son nom en exploitant la requête qui ce fait dans le application_top.php Ok, je vois le problème. Mais bon, faut arrêter de faire des réponses à l'emporte pièce. Tu veux à chaque fois un code finalisé, tu te concentre pas sur l'idée. Si on obtien son nom, c'est qu'il y a moyen de récupérer son image, non ? Donc faut juste créer 2 variables ou je quoi d'autre (une juste pour le nom, et une autre pour le lien/image). Cependant, c'est vrai qu'il faut modifier la requête, pour récupérer le nom de l'image qui elle ce trouve dans la table categorie, ce n'est qu'une question d'ajout de la table, du nom du champ, son ID, et une jointure. Enfin, plus tard je vois ça, mais il y a moyen d'économiser une requête en exploitant celle ci ... Ce message a été modifié par shoprun - 17 Sep 2008, 09:49. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 09:48
Message
#60
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
c'est vraiment trop tout ce toutim pour juste le besoin de coconimo... [optimisation] En regardant encore un le truc, il me semble qu'il y a moyen d'économiser une requête, c'est pour le nom de la catégorie mère dans l'entête du menu catégorie, car son nom peut être récupéré dans la requête qui permet de construire le breadcrumb, dans le application_top (ligne 477). Code // add category names or the manufacturer name to the breadcrumb trail $strg_cat_name = null; // Initialisation de la variable if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); // Le premier enregistrement correspond à la catégorie mère if ($i == 0) $strg_cat_name = $categories['categories_name']; // $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) { $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); } } Ensuite, dans la box catégorie, on avait ceci : Code if ($cPath != 0) { $arr = explode('_', $cPath); ... etc ... } A remplacer par : Code if (tep_not_null($strg_cat_name)) { $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); new infoBoxHeading($info_box_contents, true, false); } appliqué à la lettre. si je te suis bien, je remplace la boucle complète (donc la requète s'en va avec) : Code if ($cPath != 0) { $arr = explode('_', $cPath); $main_cat = $arr[0]; $cat_name_query = tep_db_query("select c.categories_id , c.categories_image, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $main_cat . "' and cd.categories_id = c.categories_id and cd.language_id='" . (int)$languages_id ."'"); if (tep_db_num_rows($cat_name_query) > 0) { $cat_name = tep_db_fetch_array($cat_name_query); $strg_cat_name = $cat_name['categories_name']; $cat_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, 'cPath='.$cat_name['categories_id']).'">'.tep_image(DIR_WS_IMAGES.$cat_name['categories_image'], $cat_name['categories_name'], 128, 128).'</a>'; } else { $strg_cat_name = BOX_HEADING_CATEGORIES; } } $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); new infoBoxHeading($info_box_contents, true, true); ? -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 09:52
Message
#61
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
oki shoprun, donc j'exploite la requète du breadcrumb dans le fichier application_top pour appeler l'image également, ça je sais faire à l'aise avec la jointure sur la table categories)
heu, je demande pas du tout cuit, il me semble que je ne fonctionne pas comme cela sur ce forum (ça fait 2 fois que la reflexion est faite, c'est assez vexant ... Ce message a été modifié par coconimo - 17 Sep 2008, 09:56. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 09:57
Message
#62
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
Juste si je peux me permettre tep_not_null() est une fonction faite pour simplifier le code pour ceux qui ne savent pas ce qu'ils vont tester (vu que ce n'est pas ton cas shoprun, je suis même étonné que tu l'utilises...), c'est une grosse usine à gaz aussi...
J'utilises au maximum les fonctions d'osc mais là franchement celle là... si tu sais que tu testes une chaîne, un simple : $strg != "" ou encore mais moins optimisé strlen($strg) != 0 ou à la delete (mais j'aime moins, c'est trop compter sur la permissivité du php, on sait jamais, si un jour ça change faudra tout réécrire) $strg -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 10:26
Message
#63
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
heu, je demande pas du tout cuit, il me semble que je ne fonctionne pas comme cela sur ce forum (ça fait 2 fois que la reflexion est faite, c'est assez vexant ... Ok, désolé, excuse moi N'empêche faut pas perdre de vu qu'on est sur un forum, on ne se vois pas, alors on interprète les choses, cela inconsciemment. J'ai donné une solution, certes pas abouti, mais 5 minutes après tu dis en une seule phase "ça marche pas en le supprimant" ? Alors que veux tu, j'interprète ça mal aussi, car je me dis quand bien même que ça marche pas, l'idée est là. Aussi, j'attendais plus une réponse du genre : "Je ne comprends, car l'image ne s'affiche plus, comment ce fait il " ... Donc répondre du tac o tac "ça marche pas" j'ai jamais apprécié ça, que je raconte des craks ou pas ... Mais t'inquietes pas, je me focalise pas sur ce genre de détail, je t'ai répondu aussi du "tac o tac", ça m'a énervé de lire ta réponse je te l'accorde, mais je me calme aussi vite ... Maintenant que l'idée et là et que tu peux être sûr qu'il y a moyen d'économiser cette requête, faut juste trouver "le truc". @Gentag Et bien je vais t'étonner, mais j'utilise couramment cette fonction. Peut être par flemmardise, mais par (mauvaise) habitude surement. Mais pas à tour de bras, il y a des cas ou cette fonction est trompeuse, elle est a évitée, un empty() tout seul et de loin préférable, voir le seul moyen. Donc je sais l'éviter quand il faut, la dessus t'inquiètes pas ... J'ai moi même dit sur ce forum que osC à tendance à mélanger les types (null, vide, false, 0) et cette fonction en fait partie, je le sais. Mais c'est vrai qu'un simple strlen() est tout aussi efficace dans des cas comme ici, et même plus rapide, c'est certain. Je note la remarque ... ceci dit ... Ce message a été modifié par shoprun - 17 Sep 2008, 10:33. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 10:27
Message
#64
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
oki, la jointure est faite :
j'ai donc mis dans application_top : Code // add category names or the manufacturer name to the breadcrumb trail $strg_cat_name = null; // Initialisation de la variable $parent_image = null; // initialisation de la variable image if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES_DESCRIPTION . " cd, " . TABLE_CATEGORIES . " c where cd.categories_id = '" . (int)$cPath_array[$i] . "' and c.categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); if ($i == 0) { $strg_cat_name = $categories['categories_name']; $parent_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, 'cPath='.(int)$cPath_array[$i]).'">'.tep_image(DIR_WS_IMAGES.$categories['categories_image'], $categories['categories_name'], 128, 128).'</a>'; } $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } et dans la boxe catégories: et dans la construction de l'info_box : Code if (tep_not_null($cat_image)) { $info_box_contents[] = array('text' => $cat_image); } elseif (tep_not_null($parent_image)) { $info_box_contents[] = array('text' => $parent_image); } j'ai même mis un tep_not_null pour faire plaisir à gentag ... le code fonctionne, delà à dire qu'il soit le plus juste ... c'est autre chose ... Ce message a été modifié par coconimo - 17 Sep 2008, 10:34. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 11:46
Message
#65
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
Re,
Bah ton attention me touche coconimo, vrai, mais tu n'as pas dû bien lire ce que j'ai mis... je disais que si on connait le type de ce que l'on teste, il faut proscrire cette fonction (certes confortable) mais qui franchement est bien compliquée pour tester une chaîne... (si on retranscrit tout ça en ce qui va être interprété par le proc' bah à mon avis, tu fais vingt pages ecran pour interpréter le tep_not_null alors que tu dois rester dans les 5-6 pages ecran pour un test de base, c'est lourd l'assembleur...) Ce message a été modifié par gentag - 17 Sep 2008, 11:46. -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 12:26
Message
#66
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
sauf que strlen() ne s'applique pas dans ce cas, car lorsqu'une catégorie n'a pas d'image, le champs se met à NULL, donc 4 caractères ...
d'ailleurs le test tep_not_null ne remplit pas son rôle puisque j'ai une image vide mais avec le chemin relatif au répertoire image... Ce message a été modifié par coconimo - 17 Sep 2008, 12:39. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 13:04
Message
#67
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
@Coconimo
Je viens d'essayer ton code, ça me parais tout à fait correcte, nickel même. Peut être la fin de cette étape ... @Gentag (Pas de polémique, on discute Que cette fonction tep_not_null soit une usine à gaz, alors là quand même pas, faut pas exagérer. La fonction (d'origine) la voici : Code function tep_not_null($value) { Ca casse pas des briques, je ne vois pas qu'est ce qui pourrait provoquer des ralentissement.if (is_array($value)) { if (sizeof($value) > 0) { return true; } else { return false; } } else { if (($value != '') && (strtolower($value) != 'null') && (strlen(trim($value)) > 0)) { return true; } else { return false; } } } Puis le choix d'utiliser tep_not_null() au lieu d'un strlen() peut ce justifier, car cette fonction tep_not_null() élimine en quelque sorte toutes variables : null, vide, 0, false Exemple tout simple. On a une variable qui est égale à 0 : $test = 0; Si on fait un -> if (tep_not_null($test)) cette condition est Faux, entre pas dans la condition, $test est considéré comme null. Si on fait un -> if (strlen($test) != 0) cette condition est Vrai, on entre dans la condition. 0 est converti en une chaine contenant 1 caractère. Si on mets $test = 20; -> 2 caractères, donc toujours vrai. C'est quand même pas la même chose, non ? Un strlen() c'est piégeant en fin de compte, becarefull ! J'avais jamais fait ce petit test, je viens de le faire, c'est assez surprenant, mais logique en fin de compte. Ce message a été modifié par shoprun - 17 Sep 2008, 13:27. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 13:35
Message
#68
|
|
![]() Ceinture noire OSC Groupe : Membres Messages : 2871 Inscrit : 27-June 07 Lieu : Elancourt (78) Membre no 18127 |
Eh ! Mais euh !
Je sais bien que je suis un poil "épidermique" mais c'est pas la peine de prendre des gants avec moi à chaque fois... EDIT : et puis depuis notre discussion sur le flash, je sais qu'on peut discuter ensemble, pas de soucis (même si ça ressemblait à une joute, ça m'a bien fait marrrer...) Effectivement vu comme ça... mais bon ce que je disais en gros, c'est que plus on fait court, plus on optimise, rappeler une fonction à chaque fois pour faire des tests qu'on peut faire sans, c'est pas LE super truc... vu qu'on parlait d'optimisation... L'exemple le plus flagrant que j'ai vu, c'est mon prof d'info (ça fait loin...) qui l'a mis en évidence en C (mais c'est pareil pour tous les langages) avec une fonction d'affichage (printf je crois...) et une équivalente plus pratique à utiliser définie, dont on avait le code pour être plus précis... (je ne sais plus laquelle...) -> il a fait une équivalence en assembleur à printf et une à la fonction équivalente -> 5 pages écran de plus... wouaie... [EDIT de relecture] pour ton exemple, c'est tiré par les cheveux, tu ne vas pas faire un strlen d'un entier, c'est un peu "béta", c'est pour ça que je spécifiais si l'on sait ce que l'on teste... Ce message a été modifié par gentag - 17 Sep 2008, 14:51. -------------------- "Les solutions existent toujours depuis longtemps, il suffit de les trouver."
|
|
|
17 Sep 2008, 13:45
Message
#69
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
pouuuuuuuuuuuuuce !!!
pas la peine d'argumenter, dans les deux cas, si la catégorie/ss catégorie n'a pas d'image, on se retrouve avec une image vide (portant le nom de la cat ou ss cat), bref les chaînes $cat_image et $parent_image ne sont jamais vide. j'avais gérer ça avec ma fonction, vais retourner dans mon ancien code sortir le truc ... en l'état, le code est presque fini... -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 13:51
Message
#70
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
Citation c'est que plus on fait court, plus on optimise Exacte, je suis d'accord, sans compter que c'est un peu ça qui a fait le succès de Php, c'est permissif, on fait des test minimum, simple à faire et à comprendre, et surtout, ça va vite, très vite ... Cependant, la tendance actuelle est de faire de en plus complexe, et la POO par exemple contribue à rendre les applications de plus en plus lourdes, les test et autre traitements sont de plus en verrouillés, beaucoup de codes, etc, etc ... Dans le cadre ici, je me contenterais effectivement de faire des test assez simple, du baba. Etant donné que l'on part sur le faite d'afficher l'image des catégories, alors le minimum et de faire en sorte que cette image soit présente. Du coup, là ou il faudrait un minimum verrouiller le truc, c'est du coté admin. En premier, la BDD actuelle et sur le champ categories_image accepte les NULL, et bien il faudrait ne pas accepter de NULL, donc avoir ceci -> `categories_image` varchar(64) NOT NULL Ensuite, dans le code coté admin toujours, faire en sorte de ne pas pouvoir créer ou modifier une catégorie sans qu'il y est une image. En faisant ceci on limite pas mal le problème du manque d'image. Ce message a été modifié par shoprun - 17 Sep 2008, 13:56. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
17 Sep 2008, 13:52
Message
#71
|
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
(je ne sais plus laquelle...) -> il a fait une équivalence en assembleur à printf et une à la fonction équivalente -> 5 pages écran de plus... wouaie... Oulà mais nous ne sommes plus à l'époque du proc 286, AT86 ou pire ... En C je mettait les strings dans des structures car un strcpy faisait autant d'instructions CPU/assembleur qu'il y avait de caractères, Alors qu'avec une copie de structure, ça faisait 3 instructions en assembleur quelle que soit sa taille. D'où un gain de performances énorme. Mais maintenant, de l'interprété, au vue de la performance des processeurs actuels, ce n'est pas un frein. La fonction tep_not_null remplit parfaitement sa mission. Pourtant dans mon cas j'ai plus tendance à faire autrement. Mais la sémantique osC n'est pas du tout mauvaise à ce niveau du code. Ce qui est *PENALISANT*, ce sont les multiples requêtes SQL pour rien à tous les niveaux du code. C'est certainement pour ca que Coconimo est aller chercher un bout de code que j'ai pondu (je ne sais plus où il est) afin d'avoir l'ensemble des catégories et sous catégories en une requête (enfin j'imagine, si c'est pas le cas il vaut mieux le faire). D'ailleurs, aujourd'hui ca fait deux posts que j'actualise sur le sujet en question. Désolé : C'est la Saint-Gentag aujourd'hui |
|
|
17 Sep 2008, 14:06
Message
#72
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
pour une categorie mère sans image, il suffit de rajouter la conditionnelle :
Code if(tep_not_null($categories['categories_image'])){ dans l'application_top, et pour les catégories filles, il suffit de rajouter la conditionnelle : Code if (tep_not_null($tree[$counter]['image'])){ avant la construction de la variable $cat_image. Bon, hé bien tous les cas de figure maintenant sont gérés, le code est nikel (pas de notice ou d'erreur), je vais publier un dernier post qui va résumer tout ça. Ce message a été modifié par coconimo - 17 Sep 2008, 15:00. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 15:14
Message
#73
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
alors la solution suivante est :
pour un affichage des sous catégories (et leurs filles) avec ou sans leurs images dans la boxe catégories (sachant que les catégories doivent restées accessible par un menu dans le header, biensûr): fichier catalog/includes/column_left.php : ajouter avant : Code if ((USE_CACHE == 'true') && empty($SID)) { ce code : Code if ($cPath != 0){ et après celui : Code include(DIR_WS_BOXES . 'categories.php'); } ceci : Code } dans le fichier catalog/includes/application_top.php : changer : Code if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } par : Code $strg_cat_name = null; // Initialisation de la variable $parent_image = null; // initialisation de la variable image if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES_DESCRIPTION . " cd, " . TABLE_CATEGORIES . " c where cd.categories_id = '" . (int)$cPath_array[$i] . "' and c.categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); if ($i == 0) { $strg_cat_name = $categories['categories_name']; if(tep_not_null($categories['categories_image'])){ $parent_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, 'cPath='.(int)$cPath_array[$i]).'">'.tep_image(DIR_WS_IMAGES. $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_WIDTH).'</a>'; } } $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } enfin changer le code complet du fichier catalog/includes/boxes/categories.php avec celui ci : Code <?php /* $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ $cat_image = null; function tep_show_category($counter) { global $tree, $categories_string, $cPath_array, $cat_image; if ((int)$tree[$counter]['parent'] > 0) { for ($i=0; $i<$tree[$counter]['level']; $i++) { $categories_string .= " "; } $categories_string .= '<a href="'; $cPath_new = 'cPath=' . $tree[$counter]['path']; $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">'; if (isset($cPath_array) && in_array($counter, $cPath_array)) { //construction de l'image des catégories filles. if (tep_not_null($tree[$counter]['image'])){ $cat_image = '<a href="'.tep_href_link(FILENAME_DEFAULT, $cPath_new).'">'.tep_image(DIR_WS_IMAGES. $tree[$counter]['image'], $tree[$counter]['name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_WIDTH).'</a>'; } $categories_string .= '<b>'; } // display category name $categories_string .= $tree[$counter]['name']; if (isset($cPath_array) && in_array($counter, $cPath_array)) { $categories_string .= '</b>'; } if (tep_has_category_subcategories($counter)) { $categories_string .= '->'; } $categories_string .= '</a>'; if (SHOW_COUNTS == 'true') { $products_in_category = tep_count_products_in_category($counter); if ($products_in_category > 0) { $categories_string .= ' (' . $products_in_category . ')'; } } $categories_string .= '<br />'; } if ($tree[$counter]['next_id'] != false) { tep_show_category($tree[$counter]['next_id']); } } ?> <!-- categories //--> <tr> <td> <?php if (tep_not_null($strg_cat_name)) { $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); } new infoBoxHeading($info_box_contents, true, true); $categories_string = ''; $tree = array(); $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name"); while ($categories = tep_db_fetch_array($categories_query)) { $tree[$categories['categories_id']] = array('name' => $categories['categories_name'], 'image' => $categories['categories_image'], 'parent' => $categories['parent_id'], 'level' => 0, 'path' => $categories['categories_id'], 'next_id' => false); if (isset($parent_id)) { $tree[$parent_id]['next_id'] = $categories['categories_id']; } $parent_id = $categories['categories_id']; if (!isset($first_element)) { $first_element = $categories['categories_id']; } } //------------------------ if (tep_not_null($cPath)) { $new_path = ''; reset($cPath_array); while (list($key, $value) = each($cPath_array)) { unset($parent_id); unset($first_id); $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name"); if (tep_db_num_rows($categories_query)) { $new_path .= $value; while ($row = tep_db_fetch_array($categories_query)) { $tree[$row['categories_id']] = array('name' => $row['categories_name'], 'image' => $row['categories_image'], 'parent' => $row['parent_id'], 'level' => $key+1, 'path' => $new_path . '_' . $row['categories_id'], 'next_id' => false); if (isset($parent_id)) { $tree[$parent_id]['next_id'] = $row['categories_id']; } $parent_id = $row['categories_id']; if (!isset($first_id)) { $first_id = $row['categories_id']; } $last_id = $row['categories_id']; } $tree[$last_id]['next_id'] = $tree[$value]['next_id']; $tree[$value]['next_id'] = $first_id; $new_path .= '_'; } else { break; } } } tep_show_category($first_element); $info_box_contents = array(); $info_box_contents[] = array('text' => $strg_cat_name); $info_box_contents = array(); $info_box_contents[] = array('text' => $categories_string); if ($cat_image) { $info_box_contents[] = array('text' => $cat_image); }else{ $info_box_contents[] = array('text' => $parent_image); } new infoBox($info_box_contents); ?> </td> </tr> <!-- categories_eof //--> specials thanks : shoprun & gentag & coconimo je laisse le mot de la fin aux deux premiers intervenants. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
17 Sep 2008, 15:42
Message
#74
|
|
![]() 2eme dan OSC Groupe : Membres VIP Messages : 3712 Inscrit : 11-April 07 Lieu : Ile de la Réunion Membre no 16487 |
je laisse le mot de la fin aux deux premiers intervenants. Impeccable tout ça. Pour ma part il y a plus rien à dire ... J'vais m'ennuyer du coup En tout cas, vu tous les post qu'il a fallut pour modifier un menu, j'ose même pas imaginer les gars qui font des applications entières comme osC ... Ca doit être la croix et la bannière ... C'est le mot de la fin ... PS : @Coconimo Encore désolé pour les petits reproches etc ... Ce message a été modifié par shoprun - 17 Sep 2008, 15:53. -------------------- Nous ne sommes pas un Service Après-Vente ni une Hot-Line !!!, et pas de "UP" et de doublon svp ...
Prenez le temps de lire les informations mises à votre dispositions avant de créer un sujet. Démarrer du bon pied -> Bien utiliser les forums | Bien poser sa question | Règles d'usage des forums Prés-Requis -> Les compétences requises pour réussir avec osCommerce Docs / Infos -> LA FAQ | Rechercher | Contributions | Contribution US Sujets épinglés -> Manuel d'utilisation MS2 | Structure OsC2.2 MS2 | ms2-fr-rc1-w3c | SSL : une obligation? | Design de la MS2 | Tutoriels CSS | Optimisez les performances de votre boutique | Taux de TVA à appliquer Utile -> WampServer | EasyPhp | Xampp | Mamp - Ftp -> FileZilla Apprendre -> siteduzero | alsacreations | apprendre-php | developpez.com |
|
|
5 Oct 2008, 20:20
Message
#75
|
|
![]() Ceinture marron OSC Groupe : Membres Messages : 1690 Inscrit : 10-October 06 Lieu : Rives du Lez Membre no 12571 |
alors, le mot de la fin de la fin cette fois ci:
Si on active le cache, les images et les titres des catégories ne s'affichent pas ! aussi, il faut modifier le fichier catalog/includes/functions/cache.php: changer : Code function tep_cache_categories_box($auto_expire = false, $refresh = false) { global $cPath, $language, $languages_id, $tree, $cPath_array, $categories_string; $cache_output = ''; if (($refresh == true) || !read_cache($cache_output, 'categories_box-' . $language . '.cache' . $cPath, $auto_expire)) { ob_start(); include(DIR_WS_BOXES . 'categories.php'); $cache_output = ob_get_contents(); ob_end_clean(); write_cache($cache_output, 'categories_box-' . $language . '.cache' . $cPath); } return $cache_output; } avec : Code function tep_cache_categories_box($auto_expire = false, $refresh = false) { global $cPath, $language, $languages_id, $tree, $cPath_array, $categories_string, $cat_image, $parent_image, $strg_cat_name; $cache_output = ''; if (($refresh == true) || !read_cache($cache_output, 'categories_box-' . $language . '.cache' . $cPath, $auto_expire)) { ob_start(); include(DIR_WS_BOXES . 'categories.php'); $cache_output = ob_get_contents(); ob_end_clean(); write_cache($cache_output, 'categories_box-' . $language . '.cache' . $cPath); } return $cache_output; } The End. -------------------- "Pourquoi vois-tu la paille qui est dans l'oeil de ton frère et n'aperçois-tu pas la poutre qui est dans ton oeil ?".(Saint Luc, VI-41)
|
|
|
![]() ![]() |
|
Version bas débit | Nous sommes le : 24th May 2013 - 15:59 |
| Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |