云南网站建设创新企业 昆明多彩网络公司

在线qq:540105663

ecshop网店系统开发技巧总结

来源:昆明多彩网络公司 日期:2010-11-19 阅读: 发表评论

ecshop二次开发技巧总结

1. 去除Powered by ECShop: 修改includes/lib_main.php中 $page_title\

---

2. 显示所有产品分类,修改category.php中331行和goods.php中128行的get_categories_tree 参数为空即可。

---

3.删除跳动的js,除随机跳动的 by ecshop, /js/common.js找到onload事件,注释掉。

---

4. searcb.php漏洞 爆出admin密码,大概300行,if (is_not_null($val) )修改为if (is_not_null($val) && is_numeric($key))

---

5.修改缩略图质量的默认值,提高缩略图的质量,找到includes/cls_image.php,在大约250行左右
/* 生成文件 */
if (function_exists('imagejpeg'))
{
$filename .= '.jpg';
imagejpeg($img_thumb, $dir . $filename);
}
改为
/* 生成文件 */
if (function_exists('imagejpeg'))
{
$filename .= '.jpg';
imagejpeg($img_thumb, $dir . $filename, 90);
}

---

6. xp下配置ecshop权限设置问题,首先取消简单文件共享,然后给文件夹添加network和networks service就可以了

---

7.ecshop让没有登陆的人都看不到商品信息
在商品列表页 category.dwt 或商品详情页 goods.dwt 加判断代码
{if $smarty.session.user_id gt 0}
......
{else}
登陆后方可见
{/if}

---

8.修改商店名称
$GLOBALS['_CFG']['shop_name'] 为商店名称
$GLOBALS['_CFG']['shop_title'] 为商店标题
修改:找到includes/lib_main.php 143行左右

---

9.判断当前文件是否为首页:在includes/lib_main.php中获取$filename的值,如果是首页为index

---

10.修改订单规则
includes/lib_order.php 818行左右
修改函数get_order_sn里面的规则.
return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); //显示为20091221+随机

---

11.修改fckeditor上传文件重命名解决:使用当前时间戳做为文件名
打开fckeditor/editor/filemanager/connectors/php/commands.php 找到 $sFileName = $oFile['name'] ;
改为 $sFileName = time().".".strtolower(array_pop(explode(".",$oFile['name'])));

---

12.修改版权page_footer.lbi,是$copyright控制的,位置在/languages/zh_cn/common.php文件里。

---

13.如何修改首页文章标题的长度(字数)? 商店设置 - 商店设置- 显示设置 最下面 文章标题的长度

---

14.举例如首页调用方法:
1、先打开index.php文件找到以下代码:
$smarty->assign('new_articles', index_get_new_articles()); // 最新文章
在它下面增加以下:
//调用方法
$smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类调用文章
//调用多个就修改传进去的参数,以及模板接收的变量,其中上面的4就是文章分类ID,其中6是调用数量
$smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类调用文章
$smarty->assign('class_articles_6', index_get_class_articles(6,6)); // 分类调用文章
$smarty->assign('class_articles_7', index_get_class_articles(7,6)); // 分类调用文章
$smarty->assign('class_articles_8', index_get_class_articles(8,6)); // 分类调用文章
//在最后?>这个之前增加以下函数
/**
* 获得指定栏目最新的文章列表。
*
* @access private
* @return array
*/
function index_get_class_articles($cat_aid, $cat_num)
{
$sql = "SELECT article_id, title,open_type,cat_id,file_url FROM " .$GLOBALS['ecs']->table('article'). " WHERE cat_id = ".$cat_aid." and is_open = 1 LIMIT " . $cat_num;
$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['article_id'];
$arr[$idx]['title'] = $row['title'];
$arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
$arr[$idx]['cat_name'] = $row['cat_name'];
$arr[$idx]['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);
$arr[$idx]['url'] = $row['open_type'] != 1 ?
build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);
$arr[$idx]['cat_url'] = build_uri('article_cat', array('acid' => $row['cat_id']));
}
return $arr;
}
2、第二步是在index.dwt模板想调用的地方增加以下代码,(注:以下调上面设置里的分类ID为8的文章列表):
<!--{foreach from=$class_articles_8 item=article}-->
<li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li>
<!--{/foreach}-->
 

发表评论评论列表(有 条评论)