[原创]ecshop 分析(4) 添加自己的模板

2009-04-22 20:01 | 分类:Web开发, ecshop, 原创 | 标签:, , | 作者:Tommy | 756 views

上次我们主要讨论了关于模板的问题,最后我们留下了一个问题——cache的问题。我觉得这个问题到目前位置先不要讨论好,再往后一点我们再来分析这个问题。到现在我们知道了模板的一些操作了,但是我们还是很郁闷,因为我们只是在ecshop的前台框架的控制之下。那么我们如何能够脱离出来呢?如果我们能做到自己添加属于自己或者可以放自己想要放的东西的模板,那么应该算是到了一个更高的台阶来看ecshop了。

要做到添加一个模板就必须做到前台可以显示这个模板,后台可以编辑这个模板。下面我们一步一步教大家怎么添加一个属于自己的模板。在添加之前我们先稍微分析一下,对以一个模板,在前台一定有一个php文件和它对应(很显然这个php文件就是实现给这个模板文件传送数据的)。并且在后台可以编辑这个模板对于的模块,也就是在模板管理——设置模板中有你加的模板的选项。下面我们来添加一个home模板。首先在根目录下新建home.dwt和home.php。然后将index.dwt和index.php中的内容分别拷贝到home.dwt和home.php中。对于这个模板的内容完全由你自己决定,你的内容就会决定你要怎么修改home.dwt和home.php。当然这个模板的内容是受限制的,首先要home这个模板的候选的库文件是存在的。这个是什么意思呢?这句话的意思就是对于每个模板文件,可以调用的库文件是固定的,并且这些可以调用的库文件在文件admin/includes/lib_templete.php中定义的。首先要在后台将home这个模板放入到可设置内容的模板中,部分代码如下:

/* 可以设置内容的模板 */
$template_files = array(
'home.dwt',
'index.dwt',
'zhiku.dwt',
'article.dwt',
'article_cat.dwt',
'brand.dwt',
'category.dwt',
'user_clips.dwt',
'compare.dwt',
'gallery.dwt',

在上面的代码中就将home.dwt加入到后台的可编辑模板中,这个时候你就可以在后台的模板管理->设置模板中编辑home模板了。但是到这里我们发现一个很小的问题,那就是这个home模板在后台是显示成什么名字。其实这个很简单,只要在文件language/zh_cn/admin/template.php中添加$_LANG['template_files']['home'] = ‘home模板’;这样的语句,那么在后台看到的home模板的名称就是“home模板”,当然这里也可以设置成其他的名称。在上面我们有说到每个模板可以调用的库文件是固定的,既然说是固定的,那应该是哪些呢?就拿index来说吧,在文件admin/includes/lib_templete.php中有下面这样的代码:

'index' => array(
'/library/ur_here.lbi' => 0,
'/library/search_form.lbi' => 0,
'/library/member.lbi' => 0,
'/library/new_articles.lbi' => 0,
'/library/success_article.lbi' => 0,
'/library/dynamic_article.lbi' => 0,
'/library/school_article.lbi' => 0,
'/library/category_tree.lbi' => 0,
'/library/top10.lbi' => 0,
'/library/invoice_query.lbi' => 0,
'/library/recommend_best.lbi' => 3,
'/library/recommend_new.lbi' => 3,
'/library/recommend_hot.lbi' => 3,
'/library/recommend_promotion.lbi' => 4,
'/library/group_buy.lbi' => 3,
'/library/auction.lbi' => 3,
'/library/brands.lbi' => 0,
'/library/promotion_info.lbi' => 0,
'/library/cart.lbi' => 0,
'/library/order_query.lbi' => 0,
'/library/email_list.lbi' => 0,
'/library/vote_list.lbi' => 0
),

那么这边枚举到的库文件,对于index.dwt都可以调用的。依葫芦画瓢,home.dwt需要调用哪些库文件,那么就对应上面这个写就是了,相信大家都有这个水平。好的,到目前为止一个模板文件添加成功了,那么它在浏览器中的显示就要通过后台的设置模板来确定了。好的,添加一个自己的模板我就说到这里,我们下期继续讨论ecshop。Thanks!!!

  1. 10条评论 关于 “[原创]ecshop 分析(4) 添加自己的模板”

  2. Melinda 发表于2009-04-23

    Well written article.

  3. Tommy 发表于2009-04-24

    Thanks for your coming! Melinda!

  4. 殷亮 发表于2009-04-30

    写的太好了,很少见到这样详细的分析ECshop 的文章,让我明白了一些以前所不明白的。

  5. sidney 发表于2009-06-02

    cool! thank you

  6. jiansihun 发表于2009-07-09

    仔细阅读了你的文章,其中有个遗漏:

    首先在根目录下新建home.dwt和home.php

    home正常情况下应该被放置到theme中各个主题文件的目录下,而不是直接放置在根目录。而且应该指出,在ecshop的根目录下的php文件,假如是前台页面可以访问到的,应该会对应一个模板文件,在用户访问该文件的时候,ecshop是去渲染对应的theme目录下的模板文件。

  7. Quentin 发表于2009-07-12

    我将楼主的这几篇文章转到我的博客www.naturemana.com去了。感觉写得蛮好个。我是管理系统的,移植没空看这些商务网站。最近刚刚结束商务网站,首先选择了ecshop源码来看。虽然用过smarty但是dwt和lib这些文件倒是第一次看到。第一次看到还以为是注释的,后来发现我错了。看到楼主的第一篇文章,我才明白其中道理。一直不使用DW,html多是自己手动写的,没想到还存在dwt。
    呵呵,感谢下楼主。

  8. chat 发表于2009-07-13

    Thank you for sharing! Looking forward for the next.

  9. 匿名 发表于2009-11-04

    写的相当好,我看了一段时间echsop,有些收获,但是看了楼主的总结,感觉收获不小啊,期待中!!1

  10. 匿名 发表于2009-12-15

    写的太好了! 期待下文!

  11. 匿名 发表于2010-01-28

    朋友现在为什么不更新了啊。。

发表您的评论

您的名字:

您的邮箱: (*不会被公布

您的网站: