`

模仿template

 
阅读更多
<?php

/**
 * ECSHOP 模板类
 * ============================================================================
 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。
 * 网站地址: http://www.ecshop.com;
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用;不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: liubo $
 * $Id: cls_template.php 17217 2011-01-19 06:29:08Z liubo $
 */

if (!defined('IN_ECS'))
{
    die('Hacking attempt');
}

class template
{
    /**
    * 用来存储变量的空间
    *
    * @access  private
    * @var     array      $vars
    */
    var $vars = array();

   /**
    * 模板存放的目录路径
    *
    * @access  private
    * @var     string      $path
    */
    var $path = '';

    /**
     * 构造函数
     *
     * @access  public
     * @param   string       $path
     * @return  void
     */
    function __construct($path)
    {
        $this->template($path);
    }

    /**
     * 构造函数
     *
     * @access  public
     * @param   string       $path
     * @return  void
     */
    function template($path)
    {
        $this->path = $path;
    }

    /**
     * 模拟smarty的assign函数
     *
     * @access  public
     * @param   string       $name    变量的名字
     * @param   mix           $value   变量的值
     * @return  void
     */
    function assign($name, $value)
    {
        $this->vars[$name] = $value;
    }

    /**
     * 模拟smarty的fetch函数
     *
     * @access  public
     * @param   string       $file   文件相对路径
     * @return  string      模板的内容(文本格式)
     */
    function fetch($file)
    {
        extract($this->vars);
        ob_start();
        include($this->path . $file);
        $contents = ob_get_contents();
        ob_end_clean();

        return $contents;
    }

    /**
     * 模拟smarty的display函数
     *
     * @access  public
     * @param   string       $file   文件相对路径
     * @return  void
     */
    function display($file)
    {
        echo $this->fetch($file);
    }
}

?>

 

分享到:
评论

相关推荐

    模仿QQ的界面

    本项目即为利用金山开源界面库——WTL(Windows Template Library)来实现对QQ界面的模仿。 【WTL】 WTL是微软开发的一个轻量级C++库,它提供了用于构建Windows应用程序的模板类。这个库主要针对那些希望用C++编写...

    Tools - Template List

    他们可以通过查看和模仿这些模板,学习到行业标准的实践方式,从而提升技能水平。同时,对于团队协作来说,共享和使用统一的模板可以增强团队之间的沟通,减少因理解差异导致的错误。 总的来说,“Tools - Template...

    VC模仿超炫QQ界面的实现

    为了实现更高级的功能,如气泡对话框、拖放操作,我们需要了解COM(Component Object Model)和ATL(Active Template Library)等相关技术。COM用于组件化开发,ATL则是微软提供的轻量级COM对象实现框架,能够帮助...

    C51 Template.rar

    - 学习工具:对于初学者,模板提供了学习和模仿的对象,有助于理解和掌握C51编程。 总结,C51 Template.rar 文件对于8051单片机的开发人员来说是一个宝贵的资源,它能加速项目启动,规范编程实践,并作为学习C51...

    模仿QQ界面的程序myqq.2013.7.1

    《模仿QQ界面的程序myqq.2013.7.1详解》 在IT行业中,软件界面的设计和用户体验是至关重要的。QQ作为一款全球知名的即时通讯软件,其用户界面简洁、直观,深受用户喜爱。因此,许多开发者会尝试模仿QQ的界面设计,...

    electron-template:一个简单的 Electron 应用模板

    该模板使用带有自定义标题栏的无框窗口,其中的按钮模仿 Windows 应用程序框架的按钮。 中间按钮在“最大化”和“恢复”之间切换,具体取决于窗口是否全屏。 检查是使用 Angular $interval并比较屏幕和窗口大小而...

    mbam-chameleon-3.1.33.0.zip_chameleon_template

    【标签】"chameleon template" 强调了这个模板与Chameleon技术有关,可能是设计用于安全或隐私相关的应用,比如反恶意软件程序,它可以模仿其他进程或软件,以防止被恶意软件识别和关闭。 结合以上信息,我们可以...

    模仿vivo官网html+css.zip

    9. **CSS Grid布局**:适用于更复杂的二维布局,通过`grid-template-columns/rows`定义网格。 10. **响应式图片**:使用`object-fit`和`object-position`控制图片在容器中的填充方式和位置。 在这个项目中,开发者...

    WPF模仿鲁大师界面

    同时,通过设置样式(Style)和模板(Template),可以调整控件的外观和行为。 3. **数据绑定与MVVM**:鲁大师界面中的数据显示通常是动态的,比如硬件温度、内存使用情况等。WPF的数据绑定机制可以帮助我们实现这一...

    模仿千千静听和Winamp 的音乐播放器

    本文将深入探讨如何在VC6.0环境下,利用Windows Template Library (WTL) 和XML等技术,开发一款类似千千静听和Winamp的音乐播放器。我们将关注其界面设计、功能实现以及程序优化。 ### 1. WTL库的运用 WTL...

    用django模仿的精简版知乎网站.zip

    【标题】:用Django模仿的精简版知乎网站 【描述】:这个项目是一个使用Python的Django框架实现的简化版知乎社区。它旨在帮助初学者了解如何使用Django来构建一个功能齐全的Web应用,同时展示Django的核心功能和MVC...

    Template for Step-Step Next Sequence.rar

    5. **实战演练**:通过分析和模仿这个模板,学习者可以实际动手模拟各种步进序列,如生产线的启停控制、装配过程的顺序操作等。这将有助于加深对PLC编程的理解,提升实际操作能力。 6. **优化与调试**:除了基本的...

    仿微信支付页面html

    在创建仿微信支付页面时,开发者通常会结合CSS(Cascading Style Sheets)和JavaScript来实现更丰富的交互效果。CSS用于控制网页的样式,包括颜色、布局和字体等,让网页看起来更接近微信支付的实际样式。...

    Template Program for Robonova2_robobasic_roboBasicMF_robobasic舞蹈

    在标签中,“MF机器人程序”和“金刚战士代码”可能暗示这个舞蹈程序可能是为了模仿某种特定的角色或动作,比如电影《金刚战士》中的角色。这种类型的编程挑战在于精确地同步机器人的动作与音乐节拍,同时保持动作的...

    Caliburn.MahApps.Metro.Template-master.zip

    MahApps.Metro则是一个流行的开源库,为WPF应用提供了一套现代的用户界面风格,模仿了Windows 8及之后版本的 Metro 设计语言。它提供了丰富的控件、样式和主题,可以快速地将传统WPF应用转变为具有触摸友好界面的...

    模仿腾讯的一款桌面软件Q运用了jscss3html5的相关技术完成的一款webapp桌面应用

    【标题】中的“模仿腾讯的一款桌面软件Q”指的是一个基于Web技术实现的桌面应用程序,它借鉴了腾讯产品的设计理念,旨在提供类似桌面应用的用户体验。这个软件的核心是利用JavaScript、CSS3和HTML5这三种现代Web技术...

    用原生html、css、js模仿华为商城写的一个静态网页.zip

    `来定义容器的布局方式,通过`flex-direction`或`grid-template-columns`调整元素的排列方向。 2. **颜色与背景**:设置合适的背景颜色、图像或渐变,以匹配华为商城的视觉风格。可以使用`background-color`、`...

    【JavaScript源代码】Vue模仿ElementUI的form表单实例代码.docx

    ### Vue模仿ElementUI的form表单实例代码解析 #### 一、概述 本文将详细介绍一个模仿ElementUI的Vue表单实现方案,该方案通过构建四层结构:`index`组件、`Form`表单组件、`FormItem`表单项组件、`Input`与`...

    parcel_template_sandbox:用于包裹模板开发的测试平台

    该存储库parcel_template_sandbox旨在模仿使用宗地模板的UrbanSim项目的外观。 随意添加笔记本,或复制/分叉它。 (如果您将内容直接添加到仓库中,请尝试通过分支和拉取请求来完成,这样我们就可以避免合并冲

    Django模仿简书网的一个网站.zip

    这个项目可以帮助开发者熟悉Django的MVT(Model-View-Template)设计模式,并提升其在web开发中的实践能力。 【Django框架】 Django是一个高性能、轻量级的开源web开发框架,遵循“DRY”(Don't Repeat Yourself)...

Global site tag (gtag.js) - Google Analytics