Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Design _ [résolu] Peut on enlever la petite image qur sur certains produits??

Écrit par : Tramb.R 29 Nov 2011, 15:52

Bonjour à tous!

Je suis en train de refaire mes pages produits, et dans certains cas, la petit image que l'on voit dans la liste des produit et qui est ensuite dans la page produit (celle qui fait 90x90px) me gène.. mais pour certains produits elle suffit amplement et surtout je n'ai pas envie de reprendre toutes mes pages produits!!!

Si j'enlève cette ligne dans product_info :

Code
<?php echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a>'; ?>

je la perd tout le temps et du coup, j'ai des fiche produit qui n'ont plus d'image...

Si quelqu'un a une piste..?

Merci!!!

Écrit par : chti_poupon 29 Nov 2011, 17:32

Bonjour,
Dans catalog/includes/application_top.php, il y a ce code:

Code
    $spider_flag = false;

    if (tep_not_null($user_agent)) {
      $spiders = file(DIR_WS_INCLUDES . 'spiders.txt');

      for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {
        if (tep_not_null($spiders[$i])) {
          if (is_integer(strpos($user_agent, trim($spiders[$i])))) {
            $spider_flag = true;
            break;
          }
        }
      }
    }

    if ($spider_flag == false) {
      tep_session_start();
      $session_started = true;
    }
  } else {
    tep_session_start();
    $session_started = true;
  }

En y remplaçant:
En supprimant la condition tep_not_null($user_agent)


En ajustant dans les conditions finales en:[code]

if ($ss_image_flag == false) {


"METTRE ICI LE CODE STANDARD D'INSERTYION D'IMAGE"

}
/code]

Il me semble que çà devrait "le faire"




Bons essais !

Chti poupon



Écrit par : Tramb.R 2 Dec 2011, 08:58

Salut Chti_poupon!

Merci pour réponse, car je commençais à me rendre fou avec ça..!!!
Cette image est vouée à disparaître sur tous mes produits, mais il faut que je la laisse sur certains encore quelques temps, le temps que je finisse ma nouvelle page produit.

Du coup, si je t'ai bien suivi, je fais un copier-coller du code que tu as cité, je remplace les différents élément et mets la condition d'insertion d'images, comme ceci :

Code
    $ss_image_flag = false;

    if (tep_not_null($user_agent)) {
      $ss_image = file(DIR_WS_INCLUDES . '$ss_image.txt');

      for ($i=0, $n=sizeof($ss_image); $i<$n; $i++) {
        if (tep_not_null($ss_image[$i])) {
          if (is_integer(strpos($user_agent, trim(ss_image[$i])))) {
            $ss_image_flag = true;
            break;
          }
        }
      }
    }

    if ($ss_image_flag == false) {
<?php echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a>'; ?>
    }


Et dans le fichier texte, je mettrai les différents id de produits où je veux que les images soient présentes..
Dans tous les cas je vais faire cet essai, si jamais tu vois que je pars en co** enfin, dans la mauvaise direction, merci de me recadrer!!!! happy.gif

Encore merci!

Écrit par : chti_poupon 2 Dec 2011, 14:43

Ouaip !
Chtite modif ($user_agent n'a rien à faire ici donc:

Code
    $ss_image_flag = false;

       $ss_image = file(DIR_WS_INCLUDES . '$ss_image.txt');

       for ($i=0, $n=sizeof($ss_image); $i<$n; $i++) {
         if (tep_not_null($ss_image[$i])) {
           if (is_integer(strpos($product_id, trim(ss_image[$i])))) {
             $ss_image_flag = true;
             break;
           }
         }
       }

     if ($ss_image_flag == false) {
<?php  echo tep_image(DIR_WS_IMAGES . $product_info['products_image'],  $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,  'hspace="5" vspace="5"') . '</a>'; ?>
     }

Chti poupon
PS attention à la strucure du fichier txt qui doit ressembler à :
Code
32
25
45
11
56

etc, etc...

Écrit par : Tramb.R 5 Dec 2011, 11:24

Salut chti_poupon, et encore merci!

J'ai inséré le code suivant dans l'application_top :

Code
      $ss_image_flag = false;

       $ss_image = file(DIR_WS_INCLUDES . 'ss_image.txt');

       for ($i=0, $n=sizeof($ss_image); $i<$n; $i++) {
         if (tep_not_null($ss_image[$i])) {
           if (is_integer(strpos($product_id, trim($ss_image[$i])))) {
             $ss_image_flag = true;
             break;
           }
         }
       }

     if ($ss_image_flag == false) {
  echo tep_image(DIR_WS_IMAGES . $product_info['products_image'],  $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,  'hspace="5" vspace="5"') . '</a>';
     }


Et j'ai créé le document ss_image.txt, avec dedans des ID produits pour tester... mais pour l'instant, cela ne change rien... j'ai toujours les images sur tous les produits.
Cela vient-il du fichier ss_image.txt ? dedans, j'ai mis en page comme tu m'as dit, les id les uns en dessous des autres...

Dans mon fichier product_info.phph, j'ai bien laissé la ligne :

Code
<?php echo tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a>'; ?>


Faut-il que je la vire??
Je vais continuer à tester, si tu as une idée!! Merci!

Écrit par : chti_poupon 5 Dec 2011, 12:42

Citation
Faut-il que je la vire??

Ben Dame ! Ben Sûr ! sinon, tu auras une ou 2 images superposées.
Vérifies en relisant le code source d'une page "sans" image et d'une page avec (chercher <img sur la page de code)
Chti poupon

Écrit par : Tramb.R 5 Dec 2011, 16:50

Oui, bon je l'ai viré!!! biggrin.gif

Par contre, impossible d'en faire réapparaître une en passant par application_top.... rrrr....
Et je n'ai que sur product_info.php que j'appelle une image de cette manière.

Dans mon fichier ss_image, je ne mets que les id les uns à la suite de autres, rien de plus??

J'ai essayé aussi ce code pour appeler l'image :

Code
      $ss_image_flag = false;

       $ss_image = file(DIR_WS_INCLUDES . 'ss_image.txt');

       for ($i=0, $n=sizeof($ss_image); $i<$n; $i++) {
         if (tep_not_null($ss_image[$i])) {
           if (is_integer(strpos($product_id, trim($ss_image[$i])))) {
             $ss_image_flag = true;
             break;
           }
         }
       }

     if ($ss_image_flag == false) {
tep_image(DIR_WS_IMAGES . $item_image, $item_name, SMALL_IMAGE_WIDTH-90, SMALL_IMAGE_HEIGHT-90);
     }


Est-ce que dans la page product_info.php il ne faut pas faire appel à ce qu'on a mis dans application_top à l'endroit où doit apparaître l'image (ok, c'est pas très code, mais j'ai des lacunes en php .... )

En tout cas, si tu as d'autres pistes, je continue de tester de mon côté!

Encore merciiii!

Écrit par : chti_poupon 5 Dec 2011, 18:27

Code
tep_image(DIR_WS_IMAGES . $item_image, $item_name, SMALL_IMAGE_WIDTH-90, SMALL_IMAGE_HEIGHT-90);

késséksa?
le code original doit marcher. Ce qu'il faut virer, c'est en dohors de if flag...
Le truc ci dessus, en supposant que les variables $item corerspondent au produit, est une image de taille 90-90 par 90-90 donc 0x0 ce qui est un peu petit pour mes vieux yeux!

En résumé, il faut:
Code
     if ($ss_image_flag == false) {
  echo  tep_image(DIR_WS_IMAGES .  $product_info['products_image'],  $product_info['products_name'],  SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,  'hspace="5" vspace="5"') .  '</a>';
     }

et aucune autre ligne ailleurs

Je crois m'être mal expliqué: application_top n'a rien à faire là dedans et il faut le laisser intact. C'était juste pour te donner la source de ce qu'il fallait mettre dans product_info.php à la place de
Code
  echo  tep_image(DIR_WS_IMAGES .  $product_info['products_image'],  $product_info['products_name'],  SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,  'hspace="5" vspace="5"') .  '</a>';

Je comprends mieux l'échec de tes essais
Chti poupon

Écrit par : Tramb.R 6 Dec 2011, 09:07

OK.... on peut dire que je suis une plaie!!!!! wacko.gif

Je me disais que cela semblait bancal ce que je faisais dans application_top...

Du coup, j'ai bien placé le code dans product_info.php :

Code
<?php $ss_image_flag = false;

       $ss_image = file(DIR_WS_INCLUDES . 'ss_image.txt');

       for ($i=0, $n=sizeof($ss_image); $i<$n; $i++) {
         if (tep_not_null($ss_image[$i])) {
           if (is_integer(strpos($products_id, trim($ss_image[$i])))) {
             $ss_image_flag = true;
             break;
           }
         }
       }

     if ($ss_image_flag == false) {
  echo tep_image(DIR_WS_IMAGES . $product_info['products_image'],  $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,  'hspace="5" vspace="5"') . '</a>';
     } ?>


En laissant tranquille application_top !!!!

Après dans mon fichier ss_image.txt , j'ai mis quelques ID produits pour tester... MAIS en faisant comme ceci, je n'ai plus aucune image qui s'affiche... alors que si je mets :
Code
if ($ss_image_flag == true) {

toutes mes images apparaissent.

Si jamais tu vois d'où cela peut venir, moi je vais continuer de tester et cette fois-ci dans le bon fichier, encore désolé de cette perte de temps!!!!

Merci!

Écrit par : chti_poupon 6 Dec 2011, 18:59

Oui !

Pourquoi faire compliqué, çà ne s'impose pas ici.
Remplaces donc

Code
           if (is_integer(strpos($products_id, trim($ss_image[$i])))) {

par
Code
           if ($products_id == trim($ss_image[$i])) {

et laisses false dans le test final
Cela devrait aller mieux
Chti poupon

PS[édition] bien sûr le fichier .txt doit être dans catalog/includes

Écrit par : Tramb.R 7 Dec 2011, 10:01

Je ne peux que m'incliner devant ton aide... vraiment MERCI BEAUCOUP... cela fonctionne!!
Sans ton aide, je serai encore à triturer ce pauvre code dans les mauvais fichiers!!!

Ce qui est bien, c'est que j'ai un peu près tout compris, mais mon apprentissage du php est loin d'être fini. la plupart du temps, j'arrive à m'en sortir avec mes notions et l'aide de bouquin ou d'internet, mais là, vraiment merci beaucoup, je vais pouvoir avancer!!!!!

Bon, j'espère ne pas te solliciter trop vite!!! Encore MERCI!


Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)