如何修改ECSHOP首页或其他页面的商品展示数量
作者:我就是个世界
发表于:2009-06-28
这两天很忙,没什么时间,前天匆匆忙忙帮朋友用ECSHOP做了个[url=http://www.czcryp.com/][size=3][b][color=#FF0000]爱之缘成人用品网上商店[/color][/b][/size][/url],因为他要急着用。就这样交给他用了。
今天问我为什么首页总是显示3个商品,不能多点? 我说这个应该没问题的吧,帮他去后台看了一下,记得发布商品的时候可以直接在商品列表处选择是否是新品、精品和热销的,但我去设置了,首页还是没有显示,奇了怪了,自认为人家官方不可能把这个设置到模版里那么不智能的吧,可是在商店设置里找了半天也没找到在哪里设置,到模版设置里又找了一下还是没看见。于是开始翻程序代码:
找到根目录/includes/lib_main.php找到函数:get_library_number
[separator]
[code]/**
* 取得某模板某库设置的数量
* @param string $template 模板名,如index
* @param string $library 库名,如recommend_best
* @param int $def_num 默认数量:如果没有设置模板,显示的数量
* @return int 数量
*/
function get_library_number($library, $template = null)
{
if (emptyempty($template))
{
$template = basename(PHP_SELF);
$template = substr($template, 0, strrpos($template, '.'));
}
$template = addslashes($template);
static $lib_list = array();
/* 如果没有该模板的信息,取得该模板的信息 */
if (!isset($lib_list[$template]))
{
$lib_list[$template] = array();
$sql = "SELECT library, number FROM " . $GLOBALS['ecs']->table('template') .
" WHERE theme = '" . $GLOBALS['_CFG']['template'] . "'" .
" AND filename = '$template' AND remarks='' ";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res))
{
$lib = basename(strtolower(substr($row['library'], 0, strpos($row['library'], '.'))));
$lib_list[$template][$lib] = $row['number'];
}
}
$num = 0;
if (isset($lib_list[$template][$library]))
{
$num = intval($lib_list[$template][$library]);
}
else
{
/* 模板设置文件查找默认值 */
include_once(ROOT_PATH . 'admin/includes/lib_template.php');
static $static_page_libs = null;
if ($static_page_libs == null)
{
$static_page_libs = $page_libs;
}
$lib = '/library/' . $library . '.lbi';
$num = isset($static_page_libs[$template][$lib]) ? $static_page_libs[$template][$lib] : 3;
}
return $num;
}
[/code]
我们可以看到,他是把从数据库里的所有商品数据列出来之后在用get_library_number函数来切割数组的(array_slice)。这里的处理是从数据库里列出模板的lib。打印出sql看到(echo $sql)
[code]SELECT library, number FROM `ec`.`ecs_template` WHERE theme = 'default' AND filename = 'index' AND remarks='' [/code]
其搜索结果为:
[img][attach]243[/attach][/img]
哈哈。到这里应该不用在多说什么了吧?哈哈
直接修改相应的lib文件就可以了。。
这里以修改最新商品展示数量为例:
打开[color=#FF0000]管理后台->模板管理->设置模板->新品上架->显示数量[/color]。
看到这里才会恍然大悟,原来都在这里设置,都怪自己没注意看。
说了一堆代码。到后台改改就行了。
今天问我为什么首页总是显示3个商品,不能多点? 我说这个应该没问题的吧,帮他去后台看了一下,记得发布商品的时候可以直接在商品列表处选择是否是新品、精品和热销的,但我去设置了,首页还是没有显示,奇了怪了,自认为人家官方不可能把这个设置到模版里那么不智能的吧,可是在商店设置里找了半天也没找到在哪里设置,到模版设置里又找了一下还是没看见。于是开始翻程序代码:
找到根目录/includes/lib_main.php找到函数:get_library_number
[separator]
[code]/**
* 取得某模板某库设置的数量
* @param string $template 模板名,如index
* @param string $library 库名,如recommend_best
* @param int $def_num 默认数量:如果没有设置模板,显示的数量
* @return int 数量
*/
function get_library_number($library, $template = null)
{
if (emptyempty($template))
{
$template = basename(PHP_SELF);
$template = substr($template, 0, strrpos($template, '.'));
}
$template = addslashes($template);
static $lib_list = array();
/* 如果没有该模板的信息,取得该模板的信息 */
if (!isset($lib_list[$template]))
{
$lib_list[$template] = array();
$sql = "SELECT library, number FROM " . $GLOBALS['ecs']->table('template') .
" WHERE theme = '" . $GLOBALS['_CFG']['template'] . "'" .
" AND filename = '$template' AND remarks='' ";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res))
{
$lib = basename(strtolower(substr($row['library'], 0, strpos($row['library'], '.'))));
$lib_list[$template][$lib] = $row['number'];
}
}
$num = 0;
if (isset($lib_list[$template][$library]))
{
$num = intval($lib_list[$template][$library]);
}
else
{
/* 模板设置文件查找默认值 */
include_once(ROOT_PATH . 'admin/includes/lib_template.php');
static $static_page_libs = null;
if ($static_page_libs == null)
{
$static_page_libs = $page_libs;
}
$lib = '/library/' . $library . '.lbi';
$num = isset($static_page_libs[$template][$lib]) ? $static_page_libs[$template][$lib] : 3;
}
return $num;
}
[/code]
我们可以看到,他是把从数据库里的所有商品数据列出来之后在用get_library_number函数来切割数组的(array_slice)。这里的处理是从数据库里列出模板的lib。打印出sql看到(echo $sql)
[code]SELECT library, number FROM `ec`.`ecs_template` WHERE theme = 'default' AND filename = 'index' AND remarks='' [/code]
其搜索结果为:
[img][attach]243[/attach][/img]
哈哈。到这里应该不用在多说什么了吧?哈哈
直接修改相应的lib文件就可以了。。
这里以修改最新商品展示数量为例:
打开[color=#FF0000]管理后台->模板管理->设置模板->新品上架->显示数量[/color]。
看到这里才会恍然大悟,原来都在这里设置,都怪自己没注意看。
说了一堆代码。到后台改改就行了。
请发表您的评论