盐城店铺街项目http://www.0515go.com用了ECMALL作为开发平台,重新设计了前台模板,功能方面没做修改。 经过一段时间的使用,发现ECMALL架构很清晰,代码方面我菜鸟一个,没资格评价了。
        刚开始接触ECMALL,被其模板机制弄的一头雾水,现在的模板完全是依葫芦画瓢弄出来的,其中也走了不少弯路。在使用过程中,我经常碰到不能在后台编辑其首页模板,点击之后一直显示加载中或者loading,在网上找到的答案都是说自己新建的模板缺少一段代码:

<base href="{$site_url}/" />
<script type="text/javascript">
//<!CDATA[
var SITE_URL = "{$site_url}";
</script>
{$_head_tags}
<!--<editmode></editmode>-->

        但是经过多次确认,这些代码我的模板里面都有,去ECMALL论坛找原因也空手而归,咱们还是自力更生吧,找到编辑模板的页面,发现是如下的URL/admin/index.php?app=template,不是直接显示的PHP地址,看来是ECMALL用了MVC,请求都是通过控制器转的,还是用笨办法,打开该页的源代码,找到一段HTML用工具在整个站点里面搜索,没一会就找到了template.index.html.php,经过查看,该页是个展示页面,不涉及程序,找到其表单的 action,还是index.php,于是我只能根据表单里面隐含域的值进行搜索,最终找到了template.app.php,这个就是负责模板编辑的PHP。(其实直接搜索编辑页面里面的部分源代码就能找到这个PHP了,还是走弯路了)

        找到template.app.php后,接着寻找相关的函数,后来发现了_make_editable函数,这个函数就是首页编辑的核心,他输出了若干JS到编辑页面(烦扰我的“加载中”,就是他弄出来的)。我找了一番没发现问题,于是只好请出firebug,看下是不是前台出了问题。(又走了弯路,一开始用firebug查看,很快就能知道原因了),果然在firebug控制台里面看到了2个错误,两个都是JS请求,返回的是404,看来是路径的问题,两个报404的都是因为使用了相对路径,我将两处输出都改成绝对路径,问题就解决了。 

      两处分别是:template.app.php里面的:$editmode = '<script type="text/javascript" src="/admin/index.php?act=jslang"></script>

      第二个地方藏在一个JS的AJAX请求里面:template.panel.js里面的$.get('/admin/index.php?app=template&act=get_editor_panel'...

      修改完毕之后,就能正常使用模板编辑功能了,问题解决之后,有点小小的成就感,但是这个问题其实可以更有效率的解决,下次或许就有经验一些了!

 


 

posted on 2010-11-03 14:47  Sunshine08  阅读(832)  评论(1编辑  收藏  举报