Aller au contenu

Comment eviter les pop up dans oscommerce ?


Sujets conseillés

Posté

Bonjour,

J'installe actuellement un site avec oscommerce et je voudrais savoir comment faire pour éviter d'afficher les images des articles dans une pop up. Ce que je voudrais c'est pouvoir l'afficher dans la page elle même .

Existe-t-il une contrib ?

Merci pour vos conseils

Pan

Posté (modifié)

Bonjour,

Pour faire simple, tu recherches (ligne 100) du fichier product_info.php les lignes suivantes:

?>
<table border="0" cellspacing="0" cellpadding="2" align="right">
<tr>
<td align="center" class="smallText">
<script language="javascript"><!--
document.write('<?php echo '<a href="java script:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>');
//--></script>
<noscript>
<?php echo '<a href="' . tep_href_link(DIR_WS_IMAGES . $product_info['products_image']) . '" target="_blank">' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>'; ?>
</noscript>
</td>
</tr>
</table>
<?php

Tu supprimes l'appel du script java, et les balises <noscript> et </noscript>(plus d'appel de script popup et le code de substitution en cas de javascript désactivé devient le code par défaut)

Ce qui donne

?>
<table border="0" cellspacing="0" cellpadding="2" align="right">
<tr>
<td align="center" class="smallText">

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

</td>
</tr>
</table>
<?php

Tu peux fignoler en supprimant le définition du script dans le head et le fichier popup_image.php (faire une sauvegarde) et tu auras une nouvelle page toute neuve d'ouverte ...

Oups !! après relecture de ton post, il me semble que tu veux l'afficher dans la zone centrale de ta page en cours !!!

C'est faisable mais c'est une histoire un peu plus complexe ... et il faudra vraiment mettre le nez dans le code ... A moins qu'il y ait une contribution, ça je ne sais, désolé.

Modifié par ghost
Posté (modifié)

Re,

Ca c'est quand on a pas trop envie de faire ce que l'on doit faire alors au lieu de regarder les moustiques se coller à mon écran et après refexion, ça n'avait pas l'air si compliqué que ça alors si ça te convient

Modifie product_info.php au même endroit comme post précedent mais remplace le code par celui ci :

<?php
if (tep_not_null($product_info['products_image'])) {
?>
<table border="0" cellspacing="0" cellpadding="2" align="right">
<tr>
<td align="center" class="smallText">

<?php
if (isset($_GET['affiche']))// on vérifie que $_get existe (on devrait vérifier aussi quelle soit = à oui !!)
{ // si oui on récupère les données du produit dans la table
$products_query = tep_db_query("select pd.products_name, p.products_image from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id where p.products_status = '1' and p.products_id = '".(int)$HTTP_GET_VARS['products_id']."' and pd.language_id = '" . (int)$languages_id . "'");
$products = tep_db_fetch_array($products_query);
echo tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name']);// on les affiche
echo '<a href="product_info.php?products_id='.$HTTP_GET_VARS['products_id'].'"> retour</a>';// un petit lien pour le retour et on recharge la page


}else
{// si non, on affiche les données normales avec en cas de click sur agrandir un passage de la variable $_get[affiche] dans l'url et on recharge la page, on repasse aussi le product_id du produit.
echo '<a href="product_info.php?products_id='.$HTTP_GET_VARS['products_id'].'&affiche=oui"' . tep_image(DIR_WS_IMAGES . $product_info['products_image'], $product_info['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '<br>' . TEXT_CLICK_TO_ENLARGE . '</a>';
}
?>
</td>
</tr>
</table>
<?php
}
?>
<p><?php echo stripslashes($product_info['products_description']); ?></p>
<?php

C'est brut de décoffrage et à peine testé, sur une maquette en local chez moi ça tourne, il reste à vérifier tout ça !!

C'est peut être pas le plus conventionnel mais ça a le mérite de ne pas refaire des km de code.

Bon courage.

Modifié par ghost
Posté

Excellent :thumbsup::thumbsup::thumbsup::thumbsup: !

Le seul souci est le suivant :

Quand tu es dans la liste des articles (rubrique), si tu clique sur un article, à ce moment la vignette disparait mais il reste le lien "cliquer pour agrandir" => si on clique sur le lien à ce moment là... tadannn ....

on arrive sur la page avec l'article en grand :thumbsup:

Peut-on supprimer l'étape où l'on va faire apparaitre la petite image ?

En tout cas si on peu améliorer ça c'est top !

Posté

Bonjour,

Je viens de tester chez moi, je n'ai pas ce problème.

Regardes si tu as bien inséré le code mais à priori le lien et la photo de l'article ne sont pas dissociés dans le code et c'est d'ailleurs le seul "morceau identique " à l'original. J'y pense, ma version est une MS2 de base sans contribution peut être que ...

Sinon tu me donnes un mail en MP et je t'envoie mon fichier product_info

Bon courage

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...