ECSHOP 二次开发

普通模板与公共模板之间嵌套

  • 普通模板的后缀:dwt

  • 公共模板的后缀:lbi

  • 普通模板可以嵌套公共模板

<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->
  • 公共模板无法嵌套普通模板

  • 公共模板可以嵌套公共模板

 {insert name='member_info'}

ECSHOP目录结构介绍

  • admin 后台管理系统的相关文件夹

  • api 对外提供数据接口的相关文件夹

  • cert 存放证书的文件夹

  • data 数据连接设置等,包括各种广告的上传图片等

  • images 上传商品图片文件夹

  • includes 前台核心库文件夹(重点,属于模型层M

  • js 前台用js脚本文件夹

  • languages 语言包文件夹

  • temp 临时文件夹(编译、缓存)

  • themes 模板文件夹(重点,属于视图层V

  • wap 手机浏览程序文件夹

  • widget 小插件文件夹

模板内置标签

  • 分支流程

<!-- {if $val.max_amount > 0} -->
{$val.max_amount}
<!-- {else} -->
{$lang.nolimit}
<!-- {/if} -->
  • 循环流程

<!-- {foreach from=$val.act_range_ext item=ext} -->
{$ext.name}
<!-- {/foreach} -->

init.php 功能

  1. 参数过滤

  2. 初始化设置与数据定义

  3. 加载核心库与类

  4. 创建数据库连接与ECS对象

  5. 读取全局配置

  6. 初始化模板引擎配置

  7. 初始化session

  8. 其他

加载init.php后,就可以直接操作数据库以及使用模板引擎

移动设备 判断与处理

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);

$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i";

if (($ua == '' || preg_match($uachar, $ua)) && !strpos(strtolower($_SERVER['REQUEST_URI']), 'wap')) {
    $Loaction = 'h5/';

    if (!empty($Loaction)) {
        ecs_header("Location: $Loaction\n");

        exit;
    }
}

在.lbi或.dwt模板文件中,对数据进行处理的源码实现

  • 代码如下:

<div class="goods-brief">{$goods.brief|truncate:20}</div>
<div class="gos-title">{$goods.short_name|escape:html}</div>
  • 在cls_template.php文件中,第601行:

        if (!empty($moddb))
        {
            foreach ($moddb AS $key => $mod)
            {
                $s = explode(':', $mod);
                switch ($s[0])
                {
                    case 'escape':
                        $s[1] = trim($s[1], '"');
                        if ($s[1] == 'html')
                        {
                            $p = 'htmlspecialchars(' . $p . ')';
                        }
                        elseif ($s[1] == 'url')
                        {
                            $p = 'urlencode(' . $p . ')';
                        }
                        elseif ($s[1] == 'decode_url')
                        {
                            $p = 'urldecode(' . $p . ')';
                        }
                        elseif ($s[1] == 'quotes')
                        {
                            $p = 'addslashes(' . $p . ')';
                        }
                        elseif ($s[1] == 'u8_url')
                        {
                            if (EC_CHARSET != 'utf-8')
                            {
                                $p = 'urlencode(ecs_iconv("' . EC_CHARSET . '", "utf-8",' . $p . '))';
                            }
                            else
                            {
                                $p = 'urlencode(' . $p . ')';
                            }
                        }
                        else
                        {
                            $p = 'htmlspecialchars(' . $p . ')';
                        }
                        break;

                    case 'nl2br':
                        $p = 'nl2br(' . $p . ')';
                        break;

                    case 'default':
                        $s[1] = $s[1]{0} == '$' ?  $this->get_val(substr($s[1], 1)) : "'$s[1]'";
                        $p = 'empty(' . $p . ') ? ' . $s[1] . ' : ' . $p;
                        break;

                    case 'truncate':
                        $p = 'sub_str(' . $p . ",$s[1])";
                        break;

                    case 'strip_tags':
                        $p = 'strip_tags(' . $p . ')';
                        break;

                    default:
                        # code...
                        break;
                }
            }
        }

        return $p;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值