PDA

View Full Version : Giúp em chỉnh sửa đoạn code sau với!!



duongtien
15-01-2009, 01:49
Chào mọi người, em đang có chút vấn đề về PHP, mong mọi người chỉ giáo.
Đây là đoạn code 1:

<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/*
* Special Products Module
*
* @version $Id: mod_virtuemart_featureprod.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2000 - 2004 Mr PHP
// W: www.mrphp.com.au
// E: info@mrphp.com.au
// P: +61 418 436 690
* Conversion to Mambo and many enhancements:
* @copyright (C) 2004-2005 Soeren Eberhardt
*
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/
global $mosConfig_absolute_path;

// Load the virtuemart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

$max_items = $params->get( 'max_items', 2 ); //maximum number of items to display
$category_id = $params->get( 'category_id', null ); // Display products from this category only
$display_style = $params->get( 'display_style', "vertical" ); // Display Style
$products_per_row = $params->get( 'products_per_row', 4 ); // Display X products per Row
$show_price = (bool)$params->get( 'show_price', 1 ); // Display the Product Price?
$show_addtocart = (bool)$params->get( 'show_addtocart', 1 ); // Display the "Add-to-Cart" Link?

require_once ( CLASSPATH. 'ps_product.php');
$ps_product = new ps_product;
$db = new ps_DB;

if ( $category_id ) {
// BEGIN - MultiCategory Display - deneb
$cat_ids = explode(",",$category_id);
if (count($cat_ids) > 1){
$multi_cats = 1;
}
// END - MultiCategory Display - deneb

$q = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE \n";
$q .= "(#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') \n";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_categor y_xref.product_id \n";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_categ ory_xref.category_id \n";
// BEGIN - MultiCategory Display - deneb
if ($multi_cats){
$i = 1;
$q .= "AND (";
foreach ($cat_ids as $cat_id){
if ($i == count($cat_ids)){
$q .= "(#__{vm}_category.category_id='$cat_id')";
} else {
$q .= "(#__{vm}_category.category_id='$cat_id') OR \n";
}
$i++;
}
$q .= ") \n";
} else {
$q .= "AND #__{vm}_category.category_id='$category_id' \n";
}
// END - MultiCategory Display - deneb
$q .= "AND #__{vm}_product.product_publish='Y' \n";
$q .= "AND #__{vm}_product.product_special='Y' \n";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
$q .= " AND product_in_stock > 0 \n";
}
$q .= "ORDER BY RAND() LIMIT 0, $max_items";
}
else {
$q = "SELECT DISTINCT product_sku FROM #__{vm}_product WHERE ";
$q .= "(#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') AND vendor_id='".$_SESSION['ps_vendor_id']."' ";
$q .= "AND #__{vm}_product.product_publish='Y' ";
$q .= "AND #__{vm}_product.product_special='Y' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
$q .= " AND product_in_stock > 0 ";
}
$q .= "ORDER BY RAND() LIMIT 0, $max_items";
}
$db->query($q);
if( $db->num_rows() > 0 ) {
$width = intval(100 / intval($db->num_rows()));
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<?php
$i = 0;
while($db->next_record() ){
if ($i%2)
$sectioncolor = "sectiontableentry2";
else
$sectioncolor = "sectiontableentry1";

if( $display_style == "vertical" ) {
?>
<tr align="center" class="<?php echo $sectioncolor ?>">
<td width="<?php echo $width ?>%">
<?php
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
?><br />
</td>
</tr>
<?php
}
elseif( $display_style== "horizontal" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td width=\"$width%\" align=\"center\">";
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if( ($i+1) == $db->num_rows() )
echo "</tr>\n";
}
elseif( $display_style== "table" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td width=\"$width%\" align=\"center\">";
$ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if ( ($i+1) % $products_per_row == 0)
echo "</tr><tr>\n";
if( ($i+1) == $max_items )
echo "</tr>\n";
}
$i++;
}
?>
</table>
<?php
}
?>
Đoạn code này hiển thị các sản phẩm theo hàng và cột.
Còn đây là đoạn code 2. Đoạn code này hiển thị sản phẩm theo hàng và có một khung bao quanh mỗi sản phẩm

<?php

/**
* Gavick VM Products Scroller
* @package Joomla!
* @Copyright (C) 2007 Gavick.com
* @ All rights reserved
* @ Joomla! is Free Software
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @version $Revision: 1.0 $
**/

/**
access restriction
**/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

/**
getting global variables
**/

global $mosConfig_absolute_path, $sess;
require_once( $mosConfig_absolute_path.'/components/com_virtuemart/virtuemart_parser.php' );

/**
getting PA variables
**/

$module_width = $params->get('module_width',600); //
$block_height = $params->get('block_height',200); //
$select_type = $params->get('select_type',1);
$categories = $params->get('categories',null); //
$max_amount = $params->get('max_amount',10); //
$visible_amount = $params->get('visible_amount',3); //
$show_price = (bool)$params->get('show_price',1); //
$show_cart = (bool)$params->get('show_cart',1); //
$useMoo = $params->get('useMoo',1); //
$useScript = $params->get('useScript',1); //

// spaces beetween blocks
$space = 8;

require_once ( CLASSPATH. 'ps_product.php');
$ps_product = new ps_product;
$db = new ps_DB;


if($select_type == 1){
if ($categories) {
$cat_ids = explode(",",$categories);
$q = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE (#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') AND #__{vm}_product.product_id=#__{vm}_product_categor y_xref.product_id AND #__{vm}_category.category_id=#__{vm}_product_categ ory_xref.category_id ";
if(count($cat_ids) > 1){$i = 1; $q .= "AND (";
foreach ($cat_ids as $cat_id){$q .= ($i == count($cat_ids)) ? "(#__{vm}_category.category_id='$cat_id')" : "(#__{vm}_category.category_id='$cat_id') OR \n";$i++;}
$q .= ") \n";
} else { $q .= "AND #__{vm}_category.category_id='$category_id' "; }
$q .= "AND #__{vm}_product.product_publish='Y' AND #__{vm}_product.product_special='Y' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") $q .= " AND product_in_stock > 0 ";
$q .= "ORDER BY RAND();";
}
else {
$q = "SELECT DISTINCT product_sku FROM #__{vm}_product WHERE (#__{vm}_product.product_parent_id='' OR #__{vm}_product.product_parent_id='0') AND vendor_id='".$_SESSION['ps_vendor_id']."' AND #__{vm}_product.product_publish='Y' AND #__{vm}_product.product_special='Y' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") $q .= " AND product_in_stock > 0 ";
$q .= "ORDER BY RAND();";
}

}elseif($select_type == 2){

$q = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, p.product_name, c.category_id, c.category_flypage FROM #__{vm}_product p, #__{vm}_product_category_xref pc, #__{vm}_category c WHERE p.product_publish='Y' AND pc.product_id = p.product_id AND pc.category_id = c.category_id AND p.product_sales > 0 GROUP BY p.product_id ORDER BY sales DESC, p.product_name;";

}elseif($select_type == 3){

if ( $categories ) {
$q = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE product_parent_id='' AND #__{vm}_product.product_id=#__{vm}_product_categor y_xref.product_id AND #__{vm}_category.category_id=#__{vm}_product_categ ory_xref.category_id AND #__{vm}_category.category_id='$categories' AND #__{vm}_product.product_publish='Y' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") $q .= " AND product_in_stock > 0 ";
$q .= "ORDER BY RAND(), product_id";
}
else {
$q = "SELECT DISTINCT product_sku FROM #__{vm}_product WHERE product_parent_id='' AND vendor_id='".$_SESSION['ps_vendor_id']."' AND #__{vm}_product.product_publish='Y' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") $q .= " AND product_in_stock > 0 ";
$q .= "ORDER BY RAND(), product_id";
}

}elseif($select_type == 4){

$q = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE product_parent_id='' AND #__{vm}_product.product_id=#__{vm}_product_categor y_xref.product_id AND #__{vm}_category.category_id=#__{vm}_product_categ ory_xref.category_id ";
if( !empty( $categories ) ) $q .= "AND #__{vm}_category.category_id='$categories' ";
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") $q .= " AND product_in_stock > 0 ";
$q .= "AND #__{vm}_product.product_publish='Y' ORDER BY #__{vm}_product.product_id DESC;";
}

$db->query($q);

$block_width = floor( ( $module_width - ( $space * ( $visible_amount - 1 ) ) ) / $visible_amount );

if( $db->num_rows() > 0 ) {
$products_amount = 0;
($max_amount > $db->num_rows()) ? $products_amount = $db->num_rows() : $products_amount = $max_amount;

echo '<div class="gk_vm_scroller_container_1" style="width:'.$module_width.'px">';
echo '<div class="gk_vm_scroller_container_2" style="width: '.$module_width.'px;overflow: hidden;">';
echo '<div class="gk_vm_scroller_container_3" style="width: '.(($products_amount*$block_width)+($space*($visib le_amount-2))).'px;">';

$i = 0;
while($db->next_record() && $i < $products_amount){
$i++;
$styleBlock = 'height:'.$block_height.'px;width:'.$block_width.' px;';

?>
<div class="gk_vm_product_block" style="<?php echo $styleBlock; ?>">
<div>
<div>
<div>
<?php $ps_product->show_snapshot($db->f("product_sku"), $show_price, $show_cart); ?>
</div>
</div>
</div>
</div>
<?php
}

echo '</div>';
echo '</div>';
echo '<div id="gk_vm_pagin"><div class="gk_vm_scroller_left"></div><div class="gk_vm_scroller_right"></div></div>';
echo '</div>';



// scripts
if($useMoo == 1) echo '<script type="text/javascript" src="modules/mod_gk_vm_product_scroll/scripts/mootools.js"></script>';
if($useScript == 1) echo '<script type="text/javascript" src="modules/mod_gk_vm_product_scroll/scripts/engine.js"></script>';
echo '<div style="clear:both;"></div>';
}
else{
echo 'No products to show...';
}

?>
Chỗ in đậm màu đỏ là cái chỗ em đang quan tâm. Bây giờ em muốn mỗi sản phẩm hiện thị trong code 1 cũng có một khung bao quanh thì em phải chỉnh sửa như thế nà ạ?
Y!M của em là duongtienx, mong mọi người chỉ giúp a.