适用人群
这篇文章写给完全没接触过帝国CMS,或者用过但只会套后台默认模板的新手朋友,如果你懂点HTML和简单的PHP语法更好,不懂也没关系,只要会复制粘贴、能分清“栏目”和“内容”这两个概念,跟着下面的步骤走,两三个小时就能用帝国CMS模板标签把一个小型企业官网搭起来。
完整搭建步骤
第一步:安装帝国CMS并准备本地环境
去官网下载最新版帝国CMS,放到你的网站根目录,比如www文件夹,浏览器访问http://localhost,按照安装引导填好数据库信息,注意:数据库密码别用弱口令,站点设置里把“生成静态页”和“开启模板标签缓存”先全部关掉,等会调试标签时能看到实时效果。
第二步:创建栏目和数据源
后台左侧菜单找到“系统设置”→“数据表与系统模型”,默认有“新闻”和“产品”两个模型,够用了,然后进入“栏目管理”→“增加栏目”,例如建一个“公司新闻”栏目,绑定“新闻”模型,URL生成方式选“伪静态”或“静态”,这里千万别选“动态”,否则后面模板标签里有些参数不生效。

帝国CMS模板标签从入门到上手指南,零基础也能搭出企业站
第三步:手动添加几条测试内容
每个栏目下随便录入3~5篇文章或产品,标题、图片、正文都要填,这些数据是用来验证模板标签输出是否正确的,千万别只加一条,不然列表标签都看不出循环效果。
第四步:制作模板并写入标签代码
进入“模板管理”→“公共模板”,先新建一个“首页模板”,默认是PHP风格,在模板的列表循环位置,填入帝国CMS最常用的核心标签:
<ul class="news-list">
[e:loop={"select * from phome_ecms_news order by newstime desc limit 8",0,24,0}]
<li><a href="<?=$bqsr[titleurl]?>"><?=$bqsr[title]?></a> <span><?=date('Y-m-d',$bqsr[newstime])?></span></li>
[/e:loop]
</ul>
上面这段的意思:从phome_ecms_news表里按时间倒序取8条新闻,循环输出标题链接和日期。e:loop标签是帝国CMS的核心,参数依次是SQL语句、缓存时间(0表示不缓存)、显示条数(24是控制分页的)、操作类型,新手先照抄,不要乱改SQL里表名前缀phome_,这是你安装时填的表前缀。
再拿“产品图片列表”举例:
<ul class="products">
[e:loop={"select * from phome_ecms_product where checked=1 order by newstime desc limit 6",0,24,0}]
<li>
<a href="<?=$bqsr[titleurl]?>"><img src="<?=$bqr[titlepic]?>" alt="<?=$bqr[title]?>"></a>
<h3><?=$bqr[title]?></h3>
</li>
[/e:loop]
</ul>
注意:$bqsr和$bqr的区别,在帝国CMS中,$bqr代表当前循环里的“数据行数组”,包含所有字段值,比如titlepic标题图片、title标题;$bqsr则代表“当前内容页的URL及相关参数数组”,通常用来取titleurl页地址),列表里显示图片用$bqr[titlepic],点击跳转用$bqsr[titleurl],千万别搞反,否则图片URL会带上前缀出错。
第五步:引用栏目列表标签
除了用SQL直接查,也可以调用更友好的标签:
[e:loop={栏目ID,显示条数,操作类型,是否带子栏目}]
例如显示栏目ID为1下的5条新闻,并包含子栏目:
[e:loop={1,5,0,1}]
<li><a href="<?=$bqsr[titleurl]?>"><?=$bqr[title]?></a></li>
[/e:loop]
这个写法内部会自动查该栏目所属数据表,新手用这种方式更安全,不容易查错表。
第六步:生成首页并验证
保存模板后,前往“栏目管理”→“更新首页”,选择刚做的模板,点击“生成”,生成后到浏览器前台打开,看是否正常输出,如果显示空白,把后台“系统设置”→“系统参数设置”→“性能优化”里的“模板调试模式”打开,刷新页面就能看到具体报错位置为哪一行。
配置要点
- 表前缀一致性:SQL里写的
phome_必须和数据库实际前缀完全一致,否则报“数据表不存在”。 - 缓存时间:
e:loop第二个参数如果写大于0,例如3600,那么一小时内修改内容后前台不更新,开发阶段一律写0,正式上线后再改,截取:要控制标题长度,用<?=cn_substr($bqr[title],30)?>,30是字符个数(一个汉字算一个字),直接用$bqr[title]会输出完整标题,列表页容易撑破布局。 - 日期格式化:用
date('Y-m-d',$bqr[newstime]),不要自己拼字符串,因为newstime是时间戳。 - 图片缩略图:如果模板需要固定尺寸的缩略图,建议在后台“数据表管理”里为图片字段设置缩略图尺寸,模板中直接调用
$bqr[titlepic],帝国CMS会自动生成指定大小的缩略图。
常见踩坑提醒
坑1:忘了更新“内容页模板”
很多新手做完首页模板,列表数据出来了,但点击标题进去发现404或页面错乱,原因是帝国CMS需要单独为“新闻内容页”建立内容模板,并在栏目设置里绑定,你不做内容模板,光有首页模板是撑不起整站的,请到“模板管理”→“内容模板”新建一个,然后栏目管理里把对应栏目的内容模板选上,再“更新栏目”一下。
坑2:列表页分页失效
e:loop的第三个参数设为0时,分页可能不出现,想要分页,第三个参数要写24(每页显示24条)或你需要的每页条数,同时SQL里不要写limit,而要靠帝国CMS的分页机制去控制每页条数,否则所有内容挤在一页,分页按钮也不出来。
坑3:图片路径带/d/file/却打不开
有些模板在循环里写<?=$bqr[titlepic]?>,但输出的图片地址是相对路径,如果网站部署在子目录,图片会找不到,解决办法:在模板最前面设置$public_r['imgurl'],或者直接在图片链接前拼上<?=$public_r['siteurl']?>:<img src="<?=$public_r['siteurl']?><?=$bqr[titlepic]?>">。
坑4:模板标签里用了PHP短标签
帝国CMS支持PHP模板,但有些服务器禁用了短标签<?,你在写模板时尽量使用完整写法<?php ?>,尤其是在e:loop内部,避免某些虚拟主机上直接解析失败。
坑5:修改了模板但前台不变化
除了缓存时间,帝国CMS还会对模板文件生成编译缓存,修改模板后,必须到“系统设置”→“清除缓存”→“更新模板缓存”里清理一次,再重新生成首页,否则改了等于白改。
坑6:SQL里的字段名写错
pic写成了thumb`,报错信息会提示“字段不存在”,赶紧去“数据表管理”→“管理系统模型”里查该模型的字段名,每个模型的字段都不同,别凭记忆胡猜。
按照上面这些步骤,把模板标签一个个写进你的页面,再用实际数据调试,很快就能看到完整效果,帝国CMS的模板标签本质就是“在PHP模板里写SQL循环”,只要理解了查询哪个表、怎么排序、怎么选取,剩下的就是HTML修饰问题,遇到报错别慌,打开调试模式,看提示在哪一行,通常都是SQL语句或字段名的问题,多写几遍,你就能摆脱对现成模板的依赖,做出属于自己的网站了。
发表评论