Home > Backend Development > PHP Tutorial > 关于ecshop的smarty问题

关于ecshop的smarty问题

WBOY
Release: 2016-06-23 13:53:37
Original
826 people have browsed it

这是ecshop手机端的index模板的一段代码

define('IN_ECS', true);require(dirname(__FILE__) . '/includes/init.php');$type = !empty($_GET['type']) ? $_GET['type'] : 'best';if ($type != 'best' && $type != 'promote' && $type != 'hot' && $type != 'new'){	$type = 'best';}$smarty->assign('type', $type);if (empty($_GET['order_price'])){	$order_rule = 'ORDER BY shop_price ASC, g.last_update DESC';}else{	$order_rule = 'ORDER BY shop_price DESC, g.last_update DESC';}if ($type == 'promote'){	$goods = wap_get_promote_goods($order_rule);}else{	$goods = wap_get_recommend_goods($type, $order_rule);}$num = count($goods);if ($num > 0){	foreach ($goods as $key => $data)	{		$sort_array[$data['id']] = $key;	}	$page_num = '10';	$page = !empty($_GET['page']) ? intval($_GET['page']) : 1;	$pages = ceil($num / $page_num);	if ($page <= 0)	{		$page = 1;	}	if ($pages == 0)	{		$pages = 1;	}	if ($page > $pages)	{		$page = $pages;	}	$i = 1;	foreach ($sort_array as $goods_key)	{		if (($i > ($page_num * ($page - 1 ))) && ($i <= ($page_num * $page)))		{			$price = empty($goods[$goods_key]['promote_price_org']) ? $goods[$goods_key]['shop_price'] : $goods[$goods_key]['promote_price'];			//$wml_data .= "<a href='goods.php?id={}'>".encode_output($goods[$goods_key]['name'])."</a>[".encode_output($price)."]<br/>";			$goods_data[] = array('i' => $i , 'price' => encode_output($price) , 'id' => $goods[$goods_key]['id'] , 'name' => encode_output($goods[$goods_key]['name']), 'thumb' => $goods[$goods_key]['thumb']);//16:43 2013-07-16		}		$i++;	}	$smarty->assign('goods_data', $goods_data);	$pagebar = get_wap_pager($num, $page_num, $page, 'goods_list.php?type='.$type.'&order_price='.(empty($order_price)?0:$order_price), 'page');	$smarty->assign('pagebar' , $pagebar);}$smarty->assign('footer', get_footer());$smarty->display('goods_list.html');function wap_get_recommend_goods($type = '', $order_rule = ''){	if (!in_array($type, array('best', 'new', 'hot')))	{		return array();	}	//取不同推荐对应的商品	static $type_goods = array();	if (empty($type_goods[$type]))	{		//初始化数据		$type_goods['best'] = array();		$type_goods['new'] = array();		$type_goods['hot'] = array();		$data = read_static_cache('recommend_goods');		if ($data === false)		{			$sql = 'SELECT g.goods_id, g.is_best, g.is_new, g.is_hot, g.is_promote, b.brand_name,g.sort_order ' .			   ' FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .			   ' LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON b.brand_id = g.brand_id ' .			   ' WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 AND (g.is_best = 1 OR g.is_new =1 OR g.is_hot = 1)'.			   ' ORDER BY g.sort_order, g.last_update DESC';			$goods_res = $GLOBALS['db']->getAll($sql);			//定义推荐,最新,热门,促销商品			$goods_data['best'] = array();			$goods_data['new'] = array();			$goods_data['hot'] = array();			$goods_data['brand'] = array();			if (!empty($goods_res))			{				foreach($goods_res as $data)				{					if ($data['is_best'] == 1)					{						$goods_data['best'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);					}					if ($data['is_new'] == 1)					{						$goods_data['new'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);					}					if ($data['is_hot'] == 1)					{						$goods_data['hot'][] = array('goods_id' => $data['goods_id'], 'sort_order' => $data['sort_order']);					}					if ($data['brand_name'] != '')					{						$goods_data['brand'][$data['goods_id']] = $data['brand_name'];					}				}			}			write_static_cache('recommend_goods', $goods_data);		}		else		{			$goods_data = $data;		}		$time = gmtime();		$order_type = $GLOBALS['_CFG']['recommend_order'];				static $type_array = array();		$type2lib = array('best'=>'recommend_best', 'new'=>'recommend_new', 'hot'=>'recommend_hot');		if (empty($type_array))		{			foreach($type2lib as $key => $data)			{				if (!empty($goods_data[$key]))				{					$data_count = count($goods_data[$key]);					$num = $data_count ;					if ($order_type == 0)					{						//usort($goods_data[$key], 'goods_sort');						$rand_key = array_slice($goods_data[$key], 0, $num);						foreach($rand_key as $key_data)						{							$type_array[$key][] = $key_data['goods_id'];						}					}					else					{						$rand_key = array_rand($goods_data[$key], $num);						if ($num == 1)						{							$type_array[$key][] = $goods_data[$key][$rand_key]['goods_id'];						}						else						{							foreach($rand_key as $key_data)							{								$type_array[$key][] = $goods_data[$key][$key_data]['goods_id'];							}						}					}				}				else				{					$type_array[$key] = array();				}			}		}		//取出所有符合条件的商品数据,并将结果存入对应的推荐类型数组中		$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' .				"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".				"promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, g.goods_img, RAND() AS rnd " .				'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .				"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".				"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ";		$type_merge = array_merge($type_array['new'], $type_array['best'], $type_array['hot']);		$type_merge = array_unique($type_merge);		$sql .= ' WHERE g.goods_id ' . db_create_in($type_merge);		$order_rule = empty($order_rule) ? ' ORDER BY g.sort_order, g.last_update DESC' : $order_rule;		$sql .= $order_rule;		$result = $GLOBALS['db']->getAll($sql);		foreach ($result AS $idx => $row)		{			if ($row['promote_price'] > 0)			{				$promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);				$goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';			}			else			{				$goods[$idx]['promote_price'] = '';			}			$goods[$idx]['id']		   = $row['goods_id'];			$goods[$idx]['name']		 = $row['goods_name'];			$goods[$idx]['brief']		= $row['goods_brief'];			$goods[$idx]['brand_name']   = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';			$goods[$idx]['goods_style_name']   = add_style($row['goods_name'],$row['goods_name_style']);			$goods[$idx]['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ?											   sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];			$goods[$idx]['short_style_name']   = add_style($goods[$idx]['short_name'],$row['goods_name_style']);			$goods[$idx]['market_price'] = price_format($row['market_price']);			$goods[$idx]['shop_price']   = price_format($row['shop_price']);			$goods[$idx]['thumb']		= get_image_path($row['goods_id'], $row['goods_thumb'], true);			$goods[$idx]['goods_img']	= get_image_path($row['goods_id'], $row['goods_img']);			$goods[$idx]['url']		  = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);			if (in_array($row['goods_id'], $type_array['best']))			{				$type_goods['best'][] = $goods[$idx];			}			if (in_array($row['goods_id'], $type_array['new']))			{				$type_goods['new'][] = $goods[$idx];			}			if (in_array($row['goods_id'], $type_array['hot']))			{				$type_goods['hot'][] = $goods[$idx];			}		}	}	return $type_goods[$type];}function wap_get_promote_goods($order_rule = ''){	$time = gmtime();	/* 取得促销lbi的数量限制 */	$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ' .				"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".				"promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, goods_img, b.brand_name, " .				"g.is_best, g.is_new, g.is_hot, g.is_promote, RAND() AS rnd " .			'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .			'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON b.brand_id = g.brand_id ' .			"LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ".				"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ".			'WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 ' .			" AND g.is_promote = 1 AND promote_start_date <= '$time' AND promote_end_date >= '$time' ";	$order_rule = empty($order_rule) ? 'ORDER BY g.sort_order, g.last_update DESC' : $order_rule;	$sql .= $order_rule;	$result = $GLOBALS['db']->getAll($sql);	$goods = array();	foreach ($result AS $idx => $row)	{		if ($row['promote_price'] > 0)		{			$promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);			$goods[$idx]['promote_price'] = $promote_price > 0 ? price_format($promote_price) : '';		}		else		{			$goods[$idx]['promote_price'] = '';		}		$goods[$idx]['id']		   = $row['goods_id'];		$goods[$idx]['name']		 = $row['goods_name'];		$goods[$idx]['brief']		= $row['goods_brief'];		$goods[$idx]['brand_name']   = $row['brand_name'];		$goods[$idx]['goods_style_name']   = add_style($row['goods_name'],$row['goods_name_style']);		$goods[$idx]['short_name']   = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];		$goods[$idx]['short_style_name']   = add_style($goods[$idx]['short_name'],$row['goods_name_style']);		$goods[$idx]['market_price'] = price_format($row['market_price']);		$goods[$idx]['shop_price']   = price_format($row['shop_price']);		$goods[$idx]['thumb']		= get_image_path($row['goods_id'], $row['goods_thumb'], true);		$goods[$idx]['goods_img']	= get_image_path($row['goods_id'], $row['goods_img']);		$goods[$idx]['url']		  = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);	}	return $goods;}
Copy after login

这是业务代码,为什么index模板的$new_num会为0没有数据?


回复讨论(解决方案)

代码不完整,都没看到调用模版的代码。


 我在index.php改好了 谢谢

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template