2022-11-16 13:05来源:m.sf1369.com作者:宇宇
如何修改ecshop实现每个页面显示友情链接,具体分为两步:
1、打开index.php 找到 index_get_links()函数 剪切 [code]/**
* 获得所有的友情链接
*
* @access private
* @return array
*/
function index_get_links()
{
$sql = 'SELECT link_logo, link_name, link_url FROM ' . $GLOBALS['ecs']->table('friend_link') . ' ORDER BY show_order';
$res = $GLOBALS['db']->getAll($sql);
$links['img'] = $links['txt'] = array();
foreach ($res AS $row)
{
if (!empty($row['link_logo']))
{
$links['img'][] = array('name' => $row['link_name'],
'url' => $row['link_url'],
'logo' => $row['link_logo']);
}
else
{
$links['txt'][] = array('name' => $row['link_name'],
'url' => $row['link_url']);
}
}
return $links;
}[/code]
粘贴到include /lib_goods.php里。
第二步 复制 [code] /* links */
$links = index_get_links();
$smarty->assign('img_links', $links['img']);
$smarty->assign('txt_links', $links['txt']);
[/code]
到需要显示友情链接的页面即可,当然模板link.lbi 你要在显示的页面调用。
在文件 includes/lib_goods.php 最后加上
//*** 调用商品分类指定分类下级分类
function get_parent_id_tree($parent_id)
{
$three_c_arr = array();
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . WHERE parent_id = '$parent_id' AND is_show = 1 ;
if ($GLOBALS['db']->getOne($sql))
{
$child_sql = 'SELECT cat_id, cat_name, parent_id, is_show ' .
'FROM ' . $GLOBALS['ecs']->table('category') .
WHERE parent_id = '$parent_id' AND is_show = 1 ORDER BY sort_order ASC, cat_id ASC;
$res = $GLOBALS['db']->getAll($child_sql);
foreach ($res AS $row)
{
if ($row['is_show'])
$three_c_arr[$row['cat_id']]['id'] = $row['cat_id'];
$three_c_arr[$row['cat_id']]['name'] = $row['cat_name'];
$three_c_arr[$row['cat_id']]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
}
}
return $three_c_arr;
}
声明后用$smarty调用,就是在index.php中加上下面一句:
$smarty->assign('get_parent_id16_tree', get_parent_id_tree(16));//调用父级分类6的下级分类
最后就可以在index.dwt模板文件里开始调用了
<!--{foreach from=$get_parent_id16_tree item=list}-->
<a href={$list.url} target=_blank>{$list.name|truncate:15:true}</a>
| <!--{/foreach}--></div>
呵呵,这样就解决了,希望对你有用处
ecshop中的表名都有表前缀,默认的表前缀是ecs_,默认的分类表名是ecs_category,直接写数据库表名category,这个表是不存在的,同时ecshop的表前缀可以在安装时自定义,自定义表名有两个好处,一个就是更安全,另一方面就是可以在同一个数据库中安装多套ecshop,多个ecshop共存时我们可以用不同的表名前缀来区分,这样我们访问ecshop的表时通常用
$ecs->table('不带前缀的表名')
如果在函数中我们应该用:
$GLOBALS['ecs']>table('不带前缀的表名'')
ecshop这样做是比较合理科学的方法,现在一般的php开源的系统做法大致和ecshop一样,安全,灵活,可以多套程序共用一个库,
如何查看ecshp安装时设置的表前缀?你可以参考 ecshop_topit_cn/ecshop-tutorial/quick_show_ecshop_table_prefix-116.html (发不了链接请域名部分的下横线换成点号访问)