PDA

Zobacz pełną wersję : [VM 1.1.9][J! 1.5] Powiązane produkty - kolejność (related products)



vereb
05-04-2013, 09:24
Witam, szukam rozwiązania, ale nie mogę znaleźć. Jak ustawić kolejność powiązanych produktów? W pliku relatedProducts.tpl.php powiązane produkty niby wybierane są po product_sku ale efekt widziany na stronie jest inny.
Zmodyfikowałem co prawda skrypt na następujący:

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<!--<h3><?php //echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING') ?></h3>-->

<!--<table width="100%" align="center"><tbody>-->

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
$caly_div='<div id="add_im_blank"></div>';
?>

<!--<h3><?php //echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING') ?></h3>-->


<div class="miniaturki_zdjec_pion">

<!--<table width="100%" align="center"><tbody>-->
<?php $licznik=0;
while( $products->next_record() ) {
$licznik++;
$powiazany_produkt1[$licznik]='<div id="add_im_'.$licznik.'">';
$powiazany_produkt[$licznik]= $ps_product->product_snapshot( $products->f('product_sku') );
$powiazany_produkt[$licznik].= "</div>";

}
//echo $licznik;
for($i=1;$i<=$licznik;$i++) {
echo $powiazany_produkt1[$i].$powiazany_produkt[$i];
}

if($licznik==0) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==1) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==2) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==3) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==4) {
$html.= $caly_div; $html.= $caly_div;
}
else if($licznik==5) {
$html.= $caly_div;
}
echo $html;
?>
</div>

Efekt jest taki jak chcę, oprócz kolejności:
6519

vereb
05-04-2013, 15:53
Jeśli nikt nie zna sposobu na odpowiednie ustawienie powiązanych produktów to bardzo proszę chociaż o informację dlaczego w takiej a nie innej kolejności powiązane produkty są pobierane z bazy danych. Czy to przez pętlę "while"?

vereb
05-04-2013, 18:26
Odpowiem sam sobie - może komuś się przyda :).

Oto zmodyfikowany kod pliku relatedProducts.tpl.php:

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>

<!--<h3><?php //echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING') ?></h3>-->

<!--<table width="100%" align="center"><tbody>-->

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
$caly_div='<div id="add_im_blank"></div>';
?>

<!--<h3><?php //echo $VM_LANG->_('PHPSHOP_RELATED_PRODUCTS_HEADING') ?></h3>-->


<div class="miniaturki_zdjec_pion">

<!--<table width="100%" align="center"><tbody>-->
<?php $licznik=0;
while( $products->next_record() ) {
$identyfikator_prod = $products->f('product_sku');
$identyfikator_prod = explode(" ", $identyfikator_prod);
$identyfikator_prod = implode("_", $identyfikator_prod);
$licznik++;
$powiazany_produkt[$identyfikator_prod]='<div id="add_im_'.$licznik.'">';
$powiazany_produkt[$identyfikator_prod].= $ps_product->product_snapshot( $products->f('product_sku') );
$powiazany_produkt[$identyfikator_prod].= "</div>";
}

ksort($powiazany_produkt);
//echo $licznik;
/*for($i=1;$i<=$licznik;$i++) {
echo $powiazany_produkt[$i];
}*/
foreach ($powiazany_produkt as $value) {
echo $value;
}

if($licznik==0) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==1) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==2) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==3) {
$html.= $caly_div; $html.= $caly_div; $html.= $caly_div;
} else if($licznik==4) {
$html.= $caly_div; $html.= $caly_div;
}
else if($licznik==5) {
$html.= $caly_div;
}
echo $html;
?>
</div>

Oto efekt:
6524