[Résolu] Souci sur contribution Simple Price Break

Messagepar Gil1256 » Jeu 23 Juil 2009, 23:17

Bonsoir, je viens d'installer la version 2.1 de Simple Price Break.
J'y accède sans problème via l'admin. Mais rien ne s'affiche sur ma page produit, enfin si elle tronquée à partir de ce code (tirée de includes/content/product_info.php) :

Code: Tout sélectionner
<?php
// BO SimplePriceBreak
  if (tep_not_null($product_info['products_url']))
add before :
    if (tep_not_null($product_info['products_discount'])) {
   if( isset($product_info['products_discount']) && strlen($product_info['products_discount'])>2 ) {
     $first = true;
    $last = false;
    $tab_aff = array();
   $tab_percent = array();
   echo '<tr><td><table><tr><td>';
   $info_box_contents = array();
     $info_box_contents[] = array('text' => '<span class="productSpecialPrice">' . TEXT_HEAD_REDUC_QTY . '</span>' );
        if( $tranche = explode( ',', $product_info['products_discount'] ) ) {
     $index = 0;
       foreach( $tranche as $cle => $trn )
         if( $qty_px = explode( ':', $trn ) ) {
        $tab_aff[$index][0] = $qty_px[0];
       $tab_aff[$index][1] = $qty_px[1];
       $tab_percent[$index]['discount'] = 1;
       $tab_percent[$index]['percent'] = '';
       if( strstr($qty_px[1],'%') ) {
          $tab_percent[$index]['discount'] = (1-($qty_px[1]/100));
          $tab_percent[$index]['percent'] = '%';
        }
       $index++;
         }
     $new_price = tep_get_products_special_price($product_info['products_id']);
      for( $i=0; $i<$index; $i++) {
       if( $tab_percent[$i]['percent'] != '%' ) {
        if( $new_price > $tab_aff[$i][1] || $new_price==0 ) $products_price = $currencies->display_price($tab_aff[$i][1], tep_get_tax_rate($product_info['products_tax_class_id']));
        else $products_price = '<s>' . $currencies->display_price($tab_aff[$i][1], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
      }
     else {
        if( $new_price > ($product_info['products_price']*$tab_percent[$i]['discount']) || $new_price==0 ) $products_price = '-' . $tab_aff[$i][1];
       else $products_price = '<s>' . '-' . $tab_aff[$i][1] . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
      }

       if( $i==0 ) {
       if ( $new_price ) $products_price_1 = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
                          else $products_price_1 = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
        $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX_FIRST, $tab_aff[$i][0]-1 ) . '</td><td class="boxText">' . $products_price_1  );
       if( isset($tab_aff[$i+1][0]) ) $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td class="boxText">' . $products_price );
        else $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td class="boxText">' . $products_price );
      }
     elseif ( $i == ($index-1) ) $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td class="boxText">' . $products_price );
     else $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td class="boxText">' . $products_price  );
     }
     }
   new infoBox($info_box_contents);
    echo '</td></tr></table></td></tr>';
    }
?>
       </td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php
    }
// EO SimplePriceBreak
  if (tep_not_null($product_info['products_url'])) {
?>

J'imagine que le souci vient de ces "info_box_contents", mais j'ai beau essayer de "nettoyer" tout ce bazar, je n'y arrive malheureusement pas :(.
Quelqu'un saurait-il ? Je l'en remercie infiniment.
Bonne poursuite à vous tous.
+
Dernière édition par Gil1256 le Ven 31 Juil 2009, 14:13, édité 1 fois.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar j4k » Ven 24 Juil 2009, 12:04

deja cette ligne est en trop :

Code: Tout sélectionner
<?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?>

cette fonction n'existe plus sous oscss.

Pour la suite il va falloir se baser sur les autres pages du même genre pour nettoyer le fichier et le rendre xhtml
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar Gil1256 » Ven 24 Juil 2009, 12:18

Merci J4K.
Entre nous, c'est la première que j'ai vue effectivement et que je supprime allégrement dès qu'elle se fait jour.
Code: Tout sélectionner
echo '<tr><td><table><tr><td>';
        $info_box_contents = array();

sera supprimé.
Code: Tout sélectionner
$info_box_contents[] = array('text' => '<span class="productSpecialPrice">' . TEXT_HEAD_REDUC_QTY . '</span>' );

deviendra :
Code: Tout sélectionner
<h4><?php echo TEXT_HEAD_REDUC_QTY, ?></h4>

etc...

Je m'y mets entre midi et 2.
+

PS : Je viens de voir qu'en tête du code il y avait un "add before :" qui tranaît par là (malheureux copier-coller)... je regarde si c'est pas cela qui pose souci également.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Sam 25 Juil 2009, 00:07

Je n'y arrive pas trop... à l'aide.

J'arrive à afficher que l'en-tête du tableau et la première ligne, mais ensuite dès qu'il y a les conditions php, je ne m'en sors pas (accolades, etc.).

Voici la partie centrale du code donné plus haut avec mes modifications (partie commentée). Quelqu'un pourrait-il me tuyauter ? Je souhaite dans un premier temps conserver la présentation en tableau (ce sont malgré tout des données à consigner dans des cases).

Merci beaucoup. +

Code: Tout sélectionner
/**/     
              <table cellspacing="0">
              <thead><tr>
              <td><?php echo TEXT_HEAD_REDUC_QTY_QTY; ?></td>
              <td><?php echo TEXT_HEAD_REDUC_QTY_PRIX; ?></td>
              </tr></thead>
              <tbody><tr>
              <td><?php echo sprintf(TEXT_QTY_PRIX_FIRST, $tab_aff[$i][0]-1 );?></td>
              <td><?php echo $products_price_1 ;?></td>
              </tr></tbody>
              </table>
/**/
<?php
       
        if( isset($tab_aff[$i+1][0]) )
        $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td>' . $products_price );
       else
        $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td>' . $products_price );
     }
     elseif ( $i == ($index-1) )
     $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td>' . $products_price );
     else
      $info_box_contents[] = array('align' => 'center', 'text' => sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td>' . $products_price  );
      }
     }
   }
?>
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Ven 31 Juil 2009, 14:12

Bonjour,

Bon, après quelques moments passés la tête dans les mains, j'y suis (enfin) arrivé à nettoyer le fichier, à enlever les $info_box_contents, à déclarer correctement toutes les balises du tableau, etc.

Voilà ce que ça donne pour ceux que ça intéresse :

Code: Tout sélectionner
<?php
 
// BO SimplePriceBreak
  if (tep_not_null($product_info['products_discount'])) {
    if( isset($product_info['products_discount']) && strlen($product_info['products_discount'])>2 ) {
     $first = true;
    $last = false;
    $tab_aff = array();
   $tab_percent = array();
   echo '<table cellspacing="0" summary="' . TEXT_HEAD_REDUC_QTY . '"><thead><tr><td>' . TEXT_HEAD_REDUC_QTY_QTY . '</td><td>' . TEXT_HEAD_REDUC_QTY_PRIX . '</td></tr></thead><tbody><tr><td>';
        if( $tranche = explode( ',', $product_info['products_discount'] ) ) {
      $index = 0;
       foreach( $tranche as $cle => $trn )
         if( $qty_px = explode( ':', $trn ) ) {
        $tab_aff[$index][0] = $qty_px[0];
       $tab_aff[$index][1] = $qty_px[1];
       $tab_percent[$index]['discount'] = 1;
       $tab_percent[$index]['percent'] = '';
       if( strstr($qty_px[1],'%') ) {
          $tab_percent[$index]['discount'] = (1-($qty_px[1]/100));
          $tab_percent[$index]['percent'] = '%';
        }
       $index++;
         }
     $new_price = tep_get_products_special_price($product_info['products_id']);
      for( $i=0; $i<$index; $i++) {
       if( $tab_percent[$i]['percent'] != '%' ) {
        if( $new_price > $tab_aff[$i][1] || $new_price==0 ) $products_price = $currencies->display_price($tab_aff[$i][1], tep_get_tax_rate($product_info['products_tax_class_id']));
        else $products_price = '<s>' . $currencies->display_price($tab_aff[$i][1], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span>' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
      }
     else {
        if( $new_price > ($product_info['products_price']*$tab_percent[$i]['discount']) || $new_price==0 ) $products_price = '-' . $tab_aff[$i][1];
       else $products_price = '<s>' . '-' . $tab_aff[$i][1] . '</s> <span>' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
      }

       if( $i==0 ) {
       if ( $new_price ) $products_price_1 = '<s>' . $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '</s> <span>' . $currencies->display_price($new_price, tep_get_tax_rate($product_info['products_tax_class_id'])) . '</span>';
              else $products_price_1 = $currencies->display_price($product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id']));
        ?>
        <?php echo sprintf( TEXT_QTY_PRIX_FIRST, $tab_aff[$i][0]-1 ) . '</td><td>' . $products_price_1 . '</td></tr><tr><td>' ;?>
              <?php
        if( isset($tab_aff[$i+1][0]) ) echo sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td>' . $products_price . '</td></tr><tr><td>' ;
       else echo sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td>' . $products_price . '</td></tr><tr><td>' ;
     }
     elseif ( $i == ($index-1) ) echo sprintf( TEXT_QTY_PRIX_LAST, $tab_aff[$i][0] ) . '</td><td>' . $products_price . '</td>' ;
     else echo sprintf( TEXT_QTY_PRIX, $tab_aff[$i][0], $tab_aff[$i+1][0]-1 ) . '</td><td>' . $products_price . '</td>' ;
      }
     }
   echo '</tr></tbody></table>';
   }
?>
<?php
    }
// EO SimplePriceBreak

  if (tep_not_null($product_info['products_url'])) {
?>
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16


Retourner vers Design

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron