ecmall php5.4,ecmall2.3_PHP5.3_PHP5.4

/* 定义like语句转换为in语句的条件 */

define('MAX_ID_NUM_OF_IN', 10000); // IN语句的最大ID数

define('MAX_HIT_RATE', 0.05); // 最大命中率(满足条件的记录数除以总记录数)

define('MAX_STAT_PRICE', 10000); // 最大统计价格

define('PRICE_INTERVAL_NUM', 5); // 价格区间个数

define('MIN_STAT_STEP', 50); // 价格区间最小间隔

define('NUM_PER_PAGE', 16); // 每页显示数量

define('ENABLE_SEARCH_CACHE', true); // 启用商品搜索缓存

define('SEARCH_CACHE_TTL', 3600); // 商品搜索缓存时间

class SearchApp extends MallbaseApp

{

/* 搜索商品 */

function index()

{

// 查询参数

$param = $this->_get_query_param();

if (empty($param))

{

header('Location: index.php?app=category');

exit;

}

if (isset($param['cate_id']) && $param['layer'] === false)

{

$this->show_warning('no_such_category');

return;

}

/* 筛选条件 */

$this->assign('filters', $this->_get_filter($param));

/* 按分类、品牌、地区、价格区间统计商品数量 */

$stats = $this->_get_group_by_info($param, ENABLE_SEARCH_CACHE);

$this->assign('categories', $stats['by_category']);

$this->assign('category_count', count($stats['by_category']));

$this->assign('brands', $stats['by_brand']);

$this->assign('brand_count', count($stats['by_brand']));

$this->assign('price_intervals', $stats['by_price']);

$this->assign('regions', $stats['by_region']);

$this->assign('region_count', count($stats['by_region']));

/* 排序 */

$orders = $this->_get_orders();

$this->assign('orders', $orders);

/* 分页信息 */

$page = $this->_get_page(NUM_PER_PAGE);

$page['item_count'] = $stats['total_count'];

$this->_format_page($page);

$this->assign('page_info', $page);

/* 商品列表 */

$sgrade_mod =& m('sgrade');

$sgrades = $sgrade_mod->get_options();

$conditions = $this->_get_goods_conditions($param);

$goods_mod =& m('goods');

$goods_list = $goods_mod->get_list(array(

'conditions' => $conditions,

'order' => isset($_GET['order']) && isset($orders[$_GET['order']]) ? $_GET['order'] : '',

'limit' => $page['limit'],

));

foreach ($goods_list as $key => $goods)

{

$step = intval(Conf::get('upgrade_required'));

$step < 1 && $step = 5;

$store_mod =& m('store');

$goods_list[$key]['credit_image'] = $this->_view->res_base . '/images/' . $store_mod->compute_credit($goods['credit_value'], $step);

empty($goods['default_image']) && $goods_list[$key]['default_image'] = Conf::get('default_goods_image');

$goods_list[$key]['grade_name'] = $sgrades[$goods['sgrade']];

}

$this->assign('goods_list', $goods_list);

/* 商品展示方式 */

$display_mode = ecm_getcookie('goodsDisplayMode');

if (empty($display_mode) || !in_array($display_mode, array('list', 'squares')))

{

$display_mode = 'squares'; // 默认格子方式

}

$this->assign('display_mode', $display_mode);

/* 取得导航 */

$this->assign('navs', $this->_get_navs());

/* 当前位置 */

$cate_id = isset($param['cate_id']) ? $param['cate_id'] : 0;

$this->_curlocal($this->_get_goods_curlocal($cate_id));

/* 配置seo信息 */

$this->_config_seo($this->_get_seo_info('goods', $cate_id));

$this->display('search.goods.html');

}

/* 搜索店铺 */

function store()

{

/* 取得导航 */

$this->assign('navs', $this->_get_navs());

/* 取得该分类及子分类cate_id */

$cate_id = empty($_GET['cate_id']) ? 0 : intval($_GET['cate_id']);

$cate_ids=array();

$condition_id='';

if ($cate_id > 0)

{

$scategory_mod =& m('scategory');

$cate_ids = $scategory_mod->get_descendant($cate_id);

}

/* 店铺分类检索条件 */

$condition_id=implode(',',$cate_ids);

$condition_id && $condition_id = ' AND cate_id IN(' . $condition_id . ')';

/* 其他检索条件 */

$conditions = $this->_get_query_conditions(array(

array( //店铺名称

'field' => 'store_name',

'equal' => 'LIKE',

'assoc' => 'AND',

'name' => 'keyword',

'type' => 'string',

),

array( //地区名称

'field' => 'region_name',

'equal' => 'LIKE',

'assoc' => 'AND',

'name' => 'region_name',

'type' => 'string',

),

array( //地区id

'field' => 'region_id',

'equal' => '=',

'assoc' => 'AND',

'name' => 'region_id',

'type' => 'string',

),

array( //商家用户名

'field' => 'user_name',

'equal' => 'LIKE',

'assoc' => 'AND',

'name' => 'user_name',

'type' => 'string',

),

));

$model_store =& m('store');

$regions = $model_store->list_regions();

$page = $this->_get_page(10); //获取分页信息

$stores = $model_store->find(array(

'conditions' => 'state = ' . STORE_OPEN . $condition_id . $conditions,

'limit' =>$page['limit'],

'order' => empty($_GET['order']) || !in_array($_GET['order'], array('credit_value desc')) ? 'sort_order' : $_GET['order'],

'join' => 'belongs_to_user,has_scategory',

'count' => true //允许统计

));

$model_goods = &m('goods');

foreach ($stores as $key => $store)

{

//店铺logo

empty($store['store_logo']) && $stores[$key]['store_logo'] = Conf::get('default_store_logo');

//商品数量

$stores[$key]['goods_count'] = $model_goods->get_count_of_store($store['store_id']);

//等级图片

$step = intval(Conf::get('upgrade_required'));

$step < 1 && $step = 5;

$stores[$key]['credit_image'] = $this->_view->res_base . '/images/' . $model_store->compute_credit($store['credit_value'], $step);

}

$page['item_count']=$model_store->getCount(); //获取统计数据

$this->_format_page($page);

/* 当前位置 */

$this->_curlocal($this->_get_store_curlocal($cate_id));

$scategorys = $this->_list_scategory();

$this->assign('stores', $stores);

$this->assign('regions', $regions);

$this->assign('cate_id', $cate_id);

$this->assign('scategorys', $scategorys);

$this->assign('page_info', $page);

/* 配置seo信息 */

$this->_config_seo($this->_get_seo_info('store', $cate_id));

$this->display('search.store.html');

}

function groupbuy()

{

empty($_GET['state']) && $_GET['state'] = 'on';

$conditions = '1=1';

// 排序

$orders = array(

'group_id desc' => Lang::get('select_pls'),

'views desc' => Lang::get('views'),

);

if ($_GET['state'] == 'on')

{

$orders['end_time asc'] = Lang::get('lefttime');

$conditions .= ' AND gb.state ='. GROUP_ON .' AND gb.end_time>' . gmtime();

}

elseif ($_GET['state'] == 'end')

{

$conditions .= ' AND (gb.state=' . GROUP_ON . ' OR gb.state=' . GROUP_END . ') AND gb.end_time<=' . gmtime();

}

else

{

$conditions .= $this->_get_query_conditions(array(

array( //按团购状态搜索

'field' => 'gb.state',

'name' => 'state',

'handler' => 'groupbuy_state_translator',

)

));

}

$conditions .= $this->_get_query_conditions(array(

array( //活动名称

'field' => 'group_name',

'equal' => 'LIKE',

'assoc' => 'AND',

'name' => 'keyword',

'type' => 'string',

),

));

$page = $this->_get_page(NUM_PER_PAGE); //获取分页信息

$groupbuy_mod = &m('groupbuy');

$groupbuy_list = $groupbuy_mod->find(array(

'conditions' => $conditions,

'fields' => 'gb.group_name,gb.spec_price,gb.min_quantity,gb.store_id,gb.state,gb.end_time,g.default_image,default_spec,s.store_name',

'join' => 'belong_store, belong_goods',

'limit' => $page['limit'],

'count' => true, //允许统计

'order' => isset($_GET['order']) && isset($orders[$_GET['order']]) ? $_GET['order'] : 'group_id desc',

));

if ($ids = array_keys($groupbuy_list))

{

$quantity = $groupbuy_mod->get_join_quantity($ids);

}

foreach ($groupbuy_list as $key => $groupbuy)

{

$groupbuy_list[$key]['quantity'] = empty($quantity[$key]['quantity']) ? 0 : $quantity[$key]['quantity'];

$groupbuy['default_image'] || $groupbuy_list[$key]['default_image'] = Conf::get('default_goods_image');

$groupbuy['spec_price'] = unserialize($groupbuy['spec_price']);

$groupbuy_list[$key]['group_price'] = $groupbuy['spec_price'][$groupbuy['default_spec']]['price'];

$groupbuy['state'] == GROUP_ON && $groupbuy_list[$key]['lefttime'] = lefttime($groupbuy['end_time']);

}

$this->assign('state', array(

'on' => Lang::get('group_on'),

'end' => Lang::get('group_end'),

'finished' => Lang::get('group_finished'),

'canceled' => Lang::get('group_canceled'))

);

$this->assign('orders', $orders);

// 当前位置

$this->_curlocal(array(array('text' => Lang::get('groupbuy'))));

$this->_config_seo('title', Lang::get('groupbuy') . ' - ' . Conf::get('site_title'));

$page['item_count'] = $groupbuy_mod->getCount(); //获取统计数据

$this->_format_page($page);

$this->assign('nav_groupbuy', 1); // 标识当前页面是团购列表,用于设置导航状态

$this->assign('page_info', $page);

$this->assign('groupbuy_list',$groupbuy_list);

$this->assign('recommended_groupbuy', $this->_recommended_groupbuy(2));

$this->assign('last_join_groupbuy', $this->_last_join_groupbuy(2));

$this->display('search.groupbuy.html');

}

// 推荐团购活动

function _recommended_groupbuy($_num)

{

$model_groupbuy =& m('groupbuy');

$data = $model_groupbuy->find(array(

'join' => 'belong_goods',

'conditions' => 'gb.recommended=1 AND gb.state=' . GROUP_ON . ' AND gb.end_time>' . gmtime(),

'fields' => 'group_id, goods.default_image, group_name, end_time, spec_price',

'order' => 'group_id DESC',

'limit' => $_num,

));

foreach ($data as $gb_id => $gb_info)

{

$price = current(unserialize($gb_info['spec_price']));

empty($gb_info['default_image']) && $data[$gb_id]['default_image'] = Conf::get('default_goods_image');

$data[$gb_id]['lefttime'] = lefttime($gb_info['end_time']);

$data[$gb_id]['price'] = $price['price'];

}

return $data;

}

// 最新参加的团购

function _last_join_groupbuy($_num)

{

$model_groupbuy =& m('groupbuy');

$data = $model_groupbuy->find(array(

'join' => 'be_join,belong_goods',

'fields' => 'gb.group_id,gb.group_name,gb.group_id,groupbuy_log.add_time,gb.spec_price,goods.default_image',

'conditions' => 'groupbuy_log.user_id > 0',

'order' => 'groupbuy_log.add_time DESC',

'limit' => $_num,

));

foreach ($data as $gb_id => $gb_info)

{

$price = current(unserialize($gb_info['spec_price']));

empty($gb_info['default_image']) && $data[$gb_id]['default_image'] = Conf::get('default_goods_image');

$data[$gb_id]['price'] = $price['price'];

}

return $data;

}

/* 取得店铺分类 */

function _list_scategory()

{

$scategory_mod =& m('scategory');

$scategories = $scategory_mod->get_list(-1,true);

import('tree.lib');

$tree = new Tree();

$tree->setTree($scategories, 'cate_id', 'parent_id', 'cate_name');

return $tree->getArrayList(0);

}

function _get_goods_curlocal($cate_id)

{

$parents = array();

if ($cate_id)

{

$gcategory_mod =& bm('gcategory');

$parents = $gcategory_mod->get_ancestor($cate_id, true);

}

$curlocal = array(

array('text' => LANG::get('all_categories'), 'url' => "javascript:dropParam('cate_id')"),

);

foreach ($parents as $category)

{

$curlocal[] = array('text' => $category['cate_name'], 'url' => "javascript:replaceParam('cate_id', '" . $category['cate_id'] . "')");

}

unset($curlocal[count($curlocal) - 1]['url']);

return $curlocal;

}

function _get_store_curlocal($cate_id)

{

$parents = array();

if ($cate_id)

{

$scategory_mod =& m('scategory');

$scategory_mod->get_parents($parents, $cate_id);

}

$curlocal = array(

array('text' => LANG::get('all_categories'), 'url' => url('app=category&act=store')),

);

foreach ($parents as $category)

{

$curlocal[] = array('text' => $category['cate_name'], 'url' => url('app=search&act=store&cate_id=' . $category['cate_id']));

}

unset($curlocal[count($curlocal) - 1]['url']);

return $curlocal;

}

/**

* 取得查询参数(有值才返回)

*

* @return array(

* 'keyword' => array('aa', 'bb'),

* 'cate_id' => 2,

* 'layer' => 2, // 分类层级

* 'brand' => 'ibm',

* 'region_id' => 23,

* 'price' => array('min' => 10, 'max' => 100),

* )

*/

function _get_query_param()

{

static $res = null;

if ($res === null)

{

$res = array();

// keyword

$keyword = isset($_GET['keyword']) ? trim($_GET['keyword']) : '';

if ($keyword != '')

{

//$keyword = preg_split("/[\s," . Lang::get('comma') . Lang::get('whitespace') . "]+/", $keyword);

$tmp = str_replace(array(Lang::get('comma'),Lang::get('whitespace'),' '),',', $keyword);

$keyword = explode(',',$tmp);

sort($keyword);

$res['keyword'] = $keyword;

}

// cate_id

if (isset($_GET['cate_id']) && intval($_GET['cate_id']) > 0)

{

$res['cate_id'] = $cate_id = intval($_GET['cate_id']);

$gcategory_mod =& bm('gcategory');

$res['layer'] = $gcategory_mod->get_layer($cate_id, true);

}

// brand

if (isset($_GET['brand']))

{

$brand = trim($_GET['brand']);

$res['brand'] = $brand;

}

// region_id

if (isset($_GET['region_id']) && intval($_GET['region_id']) > 0)

{

$res['region_id'] = intval($_GET['region_id']);

}

// price

if (isset($_GET['price']))

{

$arr = explode('-', $_GET['price']);

$min = abs(floatval($arr[0]));

$max = abs(floatval($arr[1]));

if ($min * $max > 0 && $min > $max)

{

list($min, $max) = array($max, $min);

}

$res['price'] = array(

'min' => $min,

'max' => $max

);

}

}

return $res;

}

/**

* 取得过滤条件

*/

function _get_filter($param)

{

static $filters = null;

if ($filters === null)

{

$filters = array();

if (isset($param['keyword']))

{

$keyword = join(' ', $param['keyword']);

$filters['keyword'] = array('key' => 'keyword', 'name' => LANG::get('keyword'), 'value' => $keyword);

}

isset($param['brand']) && $filters['brand'] = array('key' => 'brand', 'name' => LANG::get('brand'), 'value' => $param['brand']);

if (isset($param['region_id']))

{

// todo 从地区缓存中取

$region_mod =& m('region');

$row = $region_mod->get(array(

'conditions' => $param['region_id'],

'fields' => 'region_name'

));

$filters['region_id'] = array('key' => 'region_id', 'name' => LANG::get('region'), 'value' => $row['region_name']);

}

if (isset($param['price']))

{

$min = $param['price']['min'];

$max = $param['price']['max'];

if ($min <= 0)

{

$filters['price'] = array('key' => 'price', 'name' => LANG::get('price'), 'value' => LANG::get('le') . ' ' . price_format($max));

}

elseif ($max <= 0)

{

$filters['price'] = array('key' => 'price', 'name' => LANG::get('price'), 'value' => LANG::get('ge') . ' ' . price_format($min));

}

else

{

$filters['price'] = array('key' => 'price', 'name' => LANG::get('price'), 'value' => price_format($min) . ' - ' . price_format($max));

}

}

}

return $filters;

}

/**

* 取得查询条件语句

*

* @param array $param 查询参数(参加函数_get_query_param的返回值说明)

* @return string where语句

*/

function _get_goods_conditions($param)

{

/* 组成查询条件 */

$conditions = " g.if_show = 1 AND g.closed = 0 AND s.state = 1"; // 上架且没有被禁售,店铺是开启状态,

if (isset($param['keyword']))

{

$conditions .= $this->_get_conditions_by_keyword($param['keyword'], ENABLE_SEARCH_CACHE);

}

if (isset($param['cate_id']))

{

$conditions .= " AND g.cate_id_{$param['layer']} = '" . $param['cate_id'] . "'";

}

if (isset($param['brand']))

{

$conditions .= " AND g.brand = '" . $param['brand'] . "'";

}

if (isset($param['region_id']))

{

$conditions .= " AND s.region_id = '" . $param['region_id'] . "'";

}

if (isset($param['price']))

{

$min = $param['price']['min'];

$max = $param['price']['max'];

$min > 0 && $conditions .= " AND g.price >= '$min'";

$max > 0 && $conditions .= " AND g.price <= '$max'";

}

return $conditions;

}

/**

* 根据查询条件取得分组统计信息

*

* @param array $param 查询参数(参加函数_get_query_param的返回值说明)

* @param bool $cached 是否缓存

* @return array(

* 'total_count' => 10,

* 'by_category' => array(id => array('cate_id' => 1, 'cate_name' => 'haha', 'count' => 10))

* 'by_brand' => array(array('brand' => brand, 'count' => count))

* 'by_region' => array(array('region_id' => region_id, 'region_name' => region_name, 'count' => count))

* 'by_price' => array(array('min' => 10, 'max' => 50, 'count' => 10))

* )

*/

function _get_group_by_info($param, $cached)

{

$data = false;

if ($cached)

{

$cache_server =& cache_server();

$key = 'group_by_info_' . var_export($param, true);

$data = $cache_server->get($key);

}

if ($data === false)

{

$data = array(

'total_count' => 0,

'by_category' => array(),

'by_brand' => array(),

'by_region' => array(),

'by_price' => array()

);

$goods_mod =& m('goods');

$store_mod =& m('store');

$table = " {$goods_mod->table} g LEFT JOIN {$store_mod->table} s ON g.store_id = s.store_id";

$conditions = $this->_get_goods_conditions($param);

$sql = "SELECT COUNT(*) FROM {$table} WHERE" . $conditions;

$total_count = $goods_mod->getOne($sql);

if ($total_count > 0)

{

$data['total_count'] = $total_count;

/* 按分类统计 */

$cate_id = isset($param['cate_id']) ? $param['cate_id'] : 0;

$sql = "";

if ($cate_id > 0)

{

$layer = $param['layer'];

if ($layer < 4)

{

$sql = "SELECT g.cate_id_" . ($layer + 1) . " AS id, COUNT(*) AS count FROM {$table} WHERE" . $conditions . " AND g.cate_id_" . ($layer + 1) . " > 0 GROUP BY g.cate_id_" . ($layer + 1) . " ORDER BY count DESC";

}

}

else

{

$sql = "SELECT g.cate_id_1 AS id, COUNT(*) AS count FROM {$table} WHERE" . $conditions . " AND g.cate_id_1 > 0 GROUP BY g.cate_id_1 ORDER BY count DESC";

}

if ($sql)

{

$category_mod =& bm('gcategory');

$children = $category_mod->get_children($cate_id, true);

$res = $goods_mod->db->query($sql);

while ($row = $goods_mod->db->fetchRow($res))

{

$data['by_category'][$row['id']] = array(

'cate_id' => $row['id'],

'cate_name' => $children[$row['id']]['cate_name'],

'count' => $row['count']

);

}

}

/* 按品牌统计 */

$sql = "SELECT g.brand, COUNT(*) AS count FROM {$table} WHERE" . $conditions . " AND g.brand > '' GROUP BY g.brand ORDER BY count DESC";

$by_brands = $goods_mod->db->getAllWithIndex($sql, 'brand');

/* 滤去未通过商城审核的品牌 */

if ($by_brands)

{

$m_brand = &m('brand');

$brand_conditions = db_create_in(addslashes_deep(array_keys($by_brands)), 'brand_name');

$brands_verified = $m_brand->getCol("SELECT brand_name FROM {$m_brand->table} WHERE " . $brand_conditions . ' AND if_show=1');

foreach ($by_brands as $k => $v)

{

if (!in_array($k, $brands_verified))

{

unset($by_brands[$k]);

}

}

}

$data['by_brand'] = $by_brands;

/* 按地区统计 */

$sql = "SELECT s.region_id, s.region_name, COUNT(*) AS count FROM {$table} WHERE" . $conditions . " AND s.region_id > 0 GROUP BY s.region_id ORDER BY count DESC";

$data['by_region'] = $goods_mod->getAll($sql);

/* 按价格统计 */

if ($total_count > NUM_PER_PAGE)

{

$sql = "SELECT MIN(g.price) AS min, MAX(g.price) AS max FROM {$table} WHERE" . $conditions;

$row = $goods_mod->getRow($sql);

$min = $row['min'];

$max = min($row['max'], MAX_STAT_PRICE);

$step = max(ceil(($max - $min) / PRICE_INTERVAL_NUM), MIN_STAT_STEP);

$sql = "SELECT FLOOR((g.price - '$min') / '$step') AS i, count(*) AS count FROM {$table} WHERE " . $conditions . " GROUP BY i ORDER BY i";

$res = $goods_mod->db->query($sql);

while ($row = $goods_mod->db->fetchRow($res))

{

$data['by_price'][] = array(

'count' => $row['count'],

'min' => $min + $row['i'] * $step,

'max' => $min + ($row['i'] + 1) * $step,

);

}

}

}

if ($cached)

{

$cache_server->set($key, $data, SEARCH_CACHE_TTL);

}

}

return $data;

}

/**

* 根据关键词取得查询条件(可能是like,也可能是in)

*

* @param array $keyword 关键词

* @param bool $cached 是否缓存

* @return string " AND (0)"

* " AND (goods_name LIKE '%a%' AND goods_name LIKE '%b%')"

* " AND (goods_id IN (1,2,3))"

*/

function _get_conditions_by_keyword($keyword, $cached)

{

$conditions = false;

if ($cached)

{

$cache_server =& cache_server();

$key1 = 'query_conditions_of_keyword_' . join("\t", $keyword);

$conditions = $cache_server->get($key1);

}

if ($conditions === false)

{

/* 组成查询条件 */

$conditions = array();

foreach ($keyword as $word)

{

$conditions[] = "g.goods_name LIKE '%{$word}%'";

}

$conditions = join(' AND ', $conditions);

/* 取得满足条件的商品数 */

$goods_mod =& m('goods');

$sql = "SELECT COUNT(*) FROM {$goods_mod->table} g WHERE " . $conditions;

$current_count = $goods_mod->getOne($sql);

if ($current_count > 0)

{

if ($current_count < MAX_ID_NUM_OF_IN)

{

/* 取得商品表记录总数 */

$cache_server =& cache_server();

$key2 = 'record_count_of_goods';

$total_count = $cache_server->get($key2);

if ($total_count === false)

{

$sql = "SELECT COUNT(*) FROM {$goods_mod->table}";

$total_count = $goods_mod->getOne($sql);

$cache_server->set($key2, $total_count, SEARCH_CACHE_TTL);

}

/* 不满足条件,返回like */

if (($current_count / $total_count) < MAX_HIT_RATE)

{

/* 取得满足条件的商品id */

$sql = "SELECT goods_id FROM {$goods_mod->table} g WHERE " . $conditions;

$ids = $goods_mod->getCol($sql);

$conditions = 'g.goods_id' . db_create_in($ids);

}

}

}

else

{

/* 没有满足条件的记录,返回0 */

$conditions = "0";

}

if ($cached)

{

$cache_server->set($key1, $conditions, SEARCH_CACHE_TTL);

}

}

return ' AND (' . $conditions . ')';

}

/* 商品排序方式 */

function _get_orders()

{

return array(

'' => Lang::get('select_pls'),

'sales desc' => Lang::get('sales_desc'),

'credit_value desc' => Lang::get('credit_value_desc'),

'price asc' => Lang::get('price_asc'),

'price desc' => Lang::get('price_desc'),

'views desc' => Lang::get('views_desc'),

'add_time desc' => Lang::get('add_time_desc'),

);

}

function _get_seo_info($type, $cate_id)

{

$seo_info = array(

'title' => '',

'keywords' => '',

'description' => ''

);

$parents = array(); // 所有父级分类包括本身

switch ($type)

{

case 'goods':

if ($cate_id)

{

$gcategory_mod =& bm('gcategory');

$parents = $gcategory_mod->get_ancestor($cate_id, true);

$parents = array_reverse($parents);

}

$filters = $this->_get_filter($this->_get_query_param());

foreach ($filters as $k => $v)

{

$seo_info['keywords'] .= $v['value'] . ',';

}

break;

case 'store':

if ($cate_id)

{

$scategory_mod =& m('scategory');

$scategory_mod->get_parents($parents, $cate_id);

$parents = array_reverse($parents);

}

}

foreach ($parents as $key => $cate)

{

$seo_info['title'] .= $cate['cate_name'] . ' - ';

$seo_info['keywords'] .= $cate['cate_name'] . ',';

if ($cate_id == $cate['cate_id'])

{

$seo_info['description'] = $cate['cate_name'] . ' ';

}

}

$seo_info['title'] .= Lang::get('searched_'. $type) . ' - ' .Conf::get('site_title');

$seo_info['keywords'] .= Conf::get('site_title');

$seo_info['description'] .= Conf::get('site_title');

return $seo_info;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值