ecshop开发笔记

JS文件代入
<script type='text/javascript' src='themes/ecmoban/js/jquery-1.7.2.min.js'></script>
{insert_scripts files='common.js,index.js'}
模板文件包含
<!-- #BeginLibraryItem "/library/page_footer.lbi" --><!-- #EndLibraryItem -->
{include file="pagefooter.htm"}
transport.js和jquery冲突

在 page_header.lbi 库文件中加入如下代码,注意操作顺序:

1.先导入transport.js 文件 {insert_scripts files=’transport.js,utils.js’}

2.然后导入您网站使用的jquery文件

3.加入代码

<script type="text/javascript">
    $(function() {
        window.__Object_toJSONString = Object.prototype.toJSONString;
delete Object.prototype.toJSONString;
    });
</script>
新建广告位

ECSHOP模板机制是在模板文件.dwt里面设置了可编辑区域如下:

<!-- TemplateBeginEditable name="左边区域" -->

<!-- TemplateEndEditable -->

程序通过操作可编辑区域,可以在模板文件.dwt里面插入某一个库文件.lib
如:

<!-- TemplateBeginEditable name="68ecshop广告01" -->
<!-- #BeginLibraryItem "/library/ad_position.lbi" --> <!-- #EndLibraryItem -->
<!-- TemplateEndEditable -->

可编辑区域名字任意起,前提是在同一个模板文件里不能有重名的。
可编辑区域可以在.dwt文件里任意添加多个。不过不能嵌套,也不能在库文件里添加可编辑区域啊。

提交模板内容设置(广告位使用哪一个lbi)

在template.php大概249行位置的function里

两种ecshop调用指定的广告位的方法

1.在include/lib_goods.php文件下面新增:

function getads($cat,$num){
$time = gmtime();
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('ad') . " where position_id=".$cat." and  start_time <= '" . $time . "' AND end_time >= '" . $time . "' ORDER BY ad_id desc limit ".$num;
$res = $GLOBALS['db']->getAll($sql);
   $arr = array();
    foreach ($res AS $idx => $row)
    {
        $arr[$idx]['id']          = $row['ad_id'];
        $arr[$idx]['title']       = $row['ad_name'];
   $arr[$idx]['ad_link']       = $row['ad_link'];
        $arr[$idx]['ad_code']     = "data/afficheimg/".$row['ad_code'];
    }
    return $arr;
}

然后再指定的位置的控制页面增加:
例如首页调用,我们在index.php页面增加

$smarty->assign("banner",getads(1,4));

其中:1表示广告位置的id,4表示调用的数量。

打开 模板文件index.dwt,在指定位置调用即可。

<!--{foreach from=$banner name=ban item=banner}-->
     <li><a href="{$banner.ad_link}"><img src="{$banner.ad_code}"></a></li>
<!--{/foreach}--> 

2.调用广告位的方法

 {insert name='ads' id=2 num=1}

id值表达广告位置的id。num表示数量

添加新增模板页面的方法

1、例如:把根目录下 category.php 这个文件复制一下,名字自定义,就以category2.php为例 同样的方法打开themes\default文件夹,category.dwt这个文件也复制一个,改为category2.dwt

2、打开这个文件category2.php 打到以下行 大约是74行
if (!$smarty->is_cached('category.dwt', $cache_id))
改为
if (!$smarty->is_cached('category2.dwt', $cache_id))
大约是397行
$smarty->display('category.dwt', $cache_id);
改为
$smarty->display('category2.dwt', $cache_id);

3、打开admin\includes\lib_template.php这个文件
在“/* 可以设置内容的模板 *” 下面增加多一行'category2.dwt',
在”/* 每个模板允许设置的库项目 ” 中复制粘贴

'category' => array(
'/library/ur_here.lbi' => 0,
'/library/search_form.lbi' => 0,
'/library/member.lbi' => 0,
'/library/category_tree.lbi' => 0,
'/library/top10.lbi' => 0,
'/library/history.lbi' => 0,
'/library/recommend_best.lbi' => 3,
'/library/recommend_hot.lbi' => 3,
'/library/goods_list.lbi' => 0,
'/library/pages.lbi' => 0,
'/library/recommend_promotion.lbi' => 3,
'/library/brands.lbi' => 3,
'/library/promotion_info.lbi' => 0,
'/library/cart.lbi' => 0,
'/library/vote_list.lbi' => 0
),

并把'category' => array( 这个改为'category2' => array(

再打开:languages\zh_cn\admin\template.php文件
在“/* 每一个模板文件对应的语言 *”后面增加多一行$_LANG['template_files']['category2'] = '新建商品首页'; (这个文件名可以自定义)

4、打开“themes\default\libs.xml”编辑
复制73行至83行

<file name="category.dwt">
<region name="">
<lib>cart</lib>
<lib>category_tree</lib>
<lib>filter_attr</lib>
<lib>price_grade</lib>
<lib>history</lib>
</region>
<region name=""/>
<region name="">
<lib>recommend_best</lib>
<lib>goods_list</lib>
<lib>pages</lib>
</region>

改名后粘贴
打开后台模板就可以设置了。

ECshop后台角色权限的添加和分配

1.在权限文件中配置
d:\ecshop\lang\zh_cn\admin\ priv_action.php

2.在需要加权限的文件中加入权限。
d:\ecshop\admin\user_account.php
例如:

admin_priv('surplus_list');

3.在数据库表 ecs_admin_action ecs_touch_action中配置

4.会员权限 分配 给角色

ECSHOP热门搜索关键词随机显示

一、打开 include/lib_main.php 文件,找到下面这段代码,删除之(大概在1652行左右)

if (!empty($GLOBALS['_CFG']['search_keywords']))
{
    $searchkeywords = explode(',', trim($GLOBALS['_CFG']['search_keywords']));
}
else
{
    $searchkeywords = array();
}
$smarty->assign('searchkeywords', $searchkeywords);

二、打开 include/lib_insert.php 文件 ,在文件最下边加入下面这个函数

function insert_searchkeywords() {
if (!empty($GLOBALS['_CFG']['search_keywords']))
{
$searchkeywords = explode(',', trim($GLOBALS['_CFG']['search_keywords']));
$rand = array_rand($searchkeywords,3);//后面的 3 是设置显示的数量
for($i=0;$i<3;$i++) {
$search[] = $searchkeywords[$rand[$i]];
}
$searchkeywords = $search;
}
else
{
$searchkeywords = array();
}
$GLOBALS['smarty']->assign('searchkeywords', $searchkeywords);
$val = $GLOBALS['smarty']->fetch('library/search.lbi');  //这里要在你的模板里面创建一个search.lbi
return $val;
}

三、在你的“/themes/ECSHOP模板文件夹/library/” 下面创建一个名为 search.lbi 的文件,文件内容如下:

{if $searchkeywords}
{$lang.hot_search} :
{foreach from=$searchkeywords item=val}
<a href="search.php?keywords={$val|escape:url}">{$val}</a>
{/foreach}
{/if}

四、打开你的“/themes/ECSHOP模板文件夹/library/page_header.lbi ”,找到下面这段代码

{if $searchkeywords}
{$lang.hot_search} :
{foreach from=$searchkeywords item=val}
<a href="search.php?keywords={$val|escape:url}">{$val}</a>
{/foreach}
{/if}

将这段代码替换为

{insert name='searchkeywords'}
商品发布到现在的时间
$time = time()-strtotime(‘2012-11-22 12:00:00′);
$yourday = (int)($time/(3600*24));
$yourhour = (int)(($time%(3600*24))/(3600));
$yourmin = (int)($time%(3600)/60);
echo $yourday.’天’.$yourhour.’小时’.$yourmin.’分’;

原理:用当前时间戳 - 发布商品的时间戳 = 差值
天 = 差值/一天的时间戳(86400)
时 = 余数/小时时间戳(3600)
分 = 余数/分时间戳(3600)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值