mhcms标签的详细说明
———————————————————————————-
SEO变量
{head[‘title’]} 网站seo标题
{head[‘keyword’]} 网站seo关键词
{head[‘description’]} 网站seo描述
———————————————————————————-
基础全局变量
第一类:系统预设变量
{$MH[‘site_url’]} 网站网址、是网站域名+网站路径
{$MH[‘site_name’]} 网站名称
{$MH[‘tlp_name’]} 网站模版名称
{$MH[‘tlp_path’]} 网站模版路径
{$MH[‘mhcms_path’]} 网站路径,例如 /mhcms
{$MH[‘site_id’]} 站点编号
{$MH[‘map’]} 地图精准坐标,如果需要加载地图:{loadmap($MH[‘map’])}
{$MH[‘icpno’]} 网站备案号
{$MH[‘logo’]} 网站logo
{$MH[‘copyright’]} 网站版权代码
第二类:自定义全局变量
自定义全局变量,是通过后台,“网站配置–>添加变量”即可
自定义的全局变量调用均是{$MH[‘变量名称’]}
普通变量
{loadmap(坐标)} 获取一个坐标的地图
{$catid} 栏目ID 这个实用于 内页(列表,文字展示,单页,频道首页)
{$id} ID编号,如果在列表页中调用则是,栏目id,如果在文章页中则是文章id
{$page} 当前分页
{$dir_postion} 当前位置
{$dir_catname} 当前栏目名称,不推荐使用一般使用{catname($catid)}
———————————————————————————-
mhcms函数:
mhcms的函数除了直接使用php函数以外,mhcms还写了写简单函数方便大家使用
{catname($catid)} 获取栏目名称
{caturl($catid)} 获取栏目地址
{catimage($catid)} 获取栏目封面图片地址
get_pos($catid=0,$separator=”) 获取当前位置$catid栏目id,$separator为分隔字符
{strtojpg($str,$width=’100′,$height=’24’)} 将文本转换成图片
{get_images($str)} 获取一段文本中的所有图片
{getcururl()} 获取当前地址
{sub_string($string, $length, $dot=”)} 字符截取函数,$string是要截取的字符串,$length是截取长度数
{string2array($str)} 字符串转换成数组
{explorer_version()} 获得浏览器的类型
{getparentid($catid)} 获取一个栏目的父级id,如果catid为顶级栏目,那么返回的是0
{isfinalcatid($catid)} 判断一个栏目是否为最终栏目
{ishaschildren($catid)} 判断一个栏目是否有子栏目
{gettopparentid($catid)} 获取一个栏目的顶级栏目id
{hotkeywords($type=’hot’,$num=10,$pre=”,$next=’ ’)} 热门关键词的调用,$type可选:
hot 热门
counts 总数
weight 权重
{morefield($mores,$limit=”4″)} 多字段的调用,返回数组,主要用于,多字段, 多图, 附件
{ip2area($ip)} ip转化成地区
{catstatistics(栏目ID,$today)} 栏目统计函数,当 $today=1时,显示今日发帖量,当 $today=0时,为全部信息量
———————————————————————————-
其他自定义函数可以写到include/extends.func.php
{createthumb1($img,$thumb_width,$thumb_height,$ctype=”1″,$nopic=”images/nophoto.gif”)} 前台创建缩略图函数,
参数:
$img 图片地址,只能是本机图片
$thumb_width 缩略图宽度
$thumb_height 缩略图高度
$ctype 是否等比例缩放,1
{DateDiff($interval, $date1, $date2)}时间对比函数
$interval格式:
‘w’ 周
“d” 天
“h” 小时
“n” 分钟
“s” 秒
———————————————————————————-
其他经常用到的php函数
strip_tags 过滤html函数 例如,要截取 内容中的全200个字符作为描述 {sub_string(strip_tags(field:content),200,’…’)}
date函数 实际上是php的时间函数,例如:我们要获取文字的时间格式:{date(‘Y-m-d’,field:updatetime)} 2013-12-03
格式:
d – 月中的天 (01-31)
m – 当前月,以数字计 (01-12)
Y – 当前的年(四位数)
H – 小时
i – 分钟
s – 秒
y-m-d H:i:s 13-12-03 11:20:31
其他函数可以翻阅php手册
mhcms常用标签
———————————————————————————-
{tlp 文件名} 引用一个文件 比如 {tlp head}
{mhcms } 是前端转换成php运行
———————————————————-
category栏目、单页标签
{mh:category}html模版{/mh:category}
参数
‘id’=’0’ 调用id, 可选
‘catid’=’0’ 调用栏目ID 可选,一般内页做相关分类的时候需要用到
‘offset’=’0’ 从第几条开始调用
‘parentid’=’0’ 父级栏目id
‘row’=’0’ 调用数目,条数
‘mod’=’1,2,4’ 模型类型,1文字,2单页,3,系统,比如会员等,4外部连接
‘nav’=’0’ 栏目显示位置,0表示所有,1为顶部栏目,2主导航栏目,3为底部栏目,分组根据后台行设置,
‘type’=” 调用类型 top 顶级分类,self同级分类,son子级分类
示例代码
{mhcms $pid=gettopparentid($catid);}
{if $pid==0}
{mhcms $pid=$catid;}
{/if}
<li {if iset($catid) || $catid==0 }class=”active”{/if}><a href=”{$MH[‘site_url’]}”>首页</a></li>
{mh:category mod=”1,2,4″ nav=”2″ type=”top”}
<li {if field:id==$pid || field:id==gettopparentid($pid) }class=”active”{/if}><a href=”{field:url}”>{field:catname}</a>
{if ishaschildren(field:id)}
<ul>
{mh:category parentid=”field:id” mod=”1,2,4″ nav=”2″ type=”son”}
<li {if field:id==$pid || field:id==gettopparentid($pid) }class=”active”{/if}><a href=”{field:url}”>{field:catname}</a>
{if ishaschildren(field:id)}
<ul>
{mh:category parentid=”field:id” mod=”1,2,4″ nav=”2″ type=”son”}
<li {if field:id==$pid || field:id==gettopparentid($pid) }class=”active”{/if}><a href=”{field:url}”>{field:catname}</a></li>
{/mh:category}
</ul>
{/if}
</li>
{/mh:category}
</ul>
{/if}
</li>
{/mh:category}
代码剖析:
{mhcms $pid=gettopparentid($catid);}
{if $pid==0}
{mhcms $pid=$catid;}
{/if}
获取参数$catid的顶级分类id, 并赋值给$pid,如果顶级分类id为0或者不存在,那么说明$catid自身是属于顶级分类
{if iset($catid) || $catid==0 }class=”active”{/if} 如果$catid不存在,或者为0 则表示是首页,判断首页被选择的样式,前面已经说了,$catid只属于,栏目列表,单页,和内容展示页
{mh:category mod=”1,2,4″ nav=”2″ type=”top”}显示顶级分类的栏目,
{if ishaschildren(field:id)}如果拥有子栏目
{mh:category parentid=”field:id” mod=”1,2,4″ nav=”2″ type=”son”}进行显示子分类
…………可以无限级别调用
{/mh:category}
{/if} //关闭if标签
{/mh:category} //关闭category标签
category字段
================================================
field:id 栏目id
field:modelid 模型ID
field:parentid 父级ID
field:type 栏目类型
field:catname 栏目名称
field:domain 栏目绑定域名
field:image 栏目封面图片
field:catdir
field:url 栏目连接地址
field:setting 栏目设置为数组类型,
调用的时候,需要转换{mhcms:$rs=string2array(field:setting)},然后可以调用设置例如:
{$rs[‘meta_title’]} seo设置
{$rs[‘meta_keywords’]} seo关键词
{$rs[‘meta_description’]} seo描述
field:siteid 站点id
field:content 栏目内容,如果为单页的时候需要
field:navtype 导航分组
其他自定义字段
field:_自定义名称
================================================
———————————————————————————–
content内容调取标签,所有参数均为可选参数
{mh:content}{/mh:content}
‘catid’=’$catid’ 栏目id 为空,就表示所有栏目
‘areaid’=’0’ 区域id 可选
‘posid’=’0’ 推荐位1,2,3,4,5后天自行设置推荐位置
‘row’=’10’ 调取条数
‘limit’=’0’ 从地几天开始调用,例如:从第二条调用limit=1
‘withthumb’=’0’ 是否调用图片的
‘orderby’=”id” 排序规则 默认以id排序
‘orderbyway’=”desc” 默认desc,倒序,可选
‘subday’=’0’ 调用多少天的帖子
‘titlelen’=’0’ 标题长度
‘infolen’=’0’ 简介长度
‘keyword’=”” 关键词
‘ismore’=’0’ 是否附加字段,注意content属于附加字段
‘userid’=”all” 调用每个用户的文字
================================================
示例代码:
{mh:cotent catid=”5″ posid=”1″ row=”10″ orderby=”id” orderbyway=’asc’ withthumb=’1′ titlelen=’40’ infolen=’180′ ismore=1}
<li>【<a herf='{caturl(field:catid)}’>{catname(field:catid)}</a>】<a href=”{field:url}”>{field:title}</a>
<img src='{createthumb1(field:thumb,100,100,0)}’>
<p>
{sub_string(strip_tags(field:content),200,’…’)}
</p>
<li>
{/mh:content}
================================================
示例剖析
{mh:cotent catid=”5″ posid=”1″ row=”10″ orderby=”id” orderbyway=’asc’ withthumb=’1′ titlelen=’40’ infolen=’180′ ismore=1}
调用栏目等于5的头条,且包含图片的文章10条,按id升序排序,设置标题等于长度为40个文字,描述为180个文字,并且调用附加字段,
{createthumb1(field:thumb,100,100,0)}将封面图片生存100*100的缩略图,并且显示
{sub_string(strip_tags(field:content),200,’…’)} 从文章过滤html以后调用200个文字作为说明,这个是需要ismore=1才可以,当然这里设置了infolen长度,我们可以采用{field:description}将显示描述的180个字符
这里的做法是为了演示,一些函数的使用特意做的
================================================
content字段
field:id 文章id
field:modelid 模型id
field:catid 栏目id
field:areaid 区域id
field:template 文章使用模版
field:title 文章标题
field:style 标题样式,颜色和加粗
field:thumb 封面图片
field:keywords 文章关键词
field:description 文字描述
field:posid 文章推荐位
field:url 文章地址连接
field:status 发布状态
field:point 文字阅读点数
field:amount 阅读钱数
field:inputtime 发布时间
field:updatetime 更新时间
field:clicks 点击次数
field:comments 评论次数
field:islink 是否外链
field:siteid 站点id
field:autoindex 循环计数器,从1开始
其他自定义字段
field:content 文章内容
……
================================================
list列表标签
———————————————————————————-
使用方法:
{mh:list}{/list}
参数:
catid’=’$catid’ 栏目名称
‘row’=’10’ 每页显示条数
‘orderby’=”id” 排序方式
‘orderbyway’=”desc”
‘ismore’=’0’ 是否调用附加字段
‘page’=’$page’ 调用的页数
‘userid’=’all’ 用户的帖子
代码示例:
{mh:list row=”20″ ismore=1}
<li><a href=”{field:url}”>
<span>[<a herf='{caturl(field:catid)}’>{catname(field:catid)}</a>]</span>
{field:title}
<span>{date(‘y-m-d’,field:inputtime)}</span>
</li>
{/mh}
分页显示:
{mh:pagelist listsize=”5″}
{if $pageno>1} //判断,如总页数大于1则显示分页导航
<div>当前是 <strong>{$page}</strong> 页{$index} {$pre} {$pagelist} {$next} {$end} 共 <strong>{$totalcount}</strong> 条 <strong>{$pageno}</strong> 页</div>
{/if}
{/mh:pagelist}
说明:listsize为中间分页显示的数目,例如:上一页【1,2,3,4,5 】下一页
条件判断标签if:
———————————————————————————–
{if 条件}显示结果{/if}
{if 条件1}显示1{elseif 条件2}显示2{elseif 条件3}显示3{else}其他显示{/if}
{if 条件1}显示1{else}其他显示{/if}
示例代码:
{if $no mod 2==0}<hr>{/if}
隔行换颜色
循环标签loop
———————————————————————————-
{loop $data $rs}{/loop}
示例代码:例如我们有个图片模型,有个字段为pics为图集类型,要调用图集类型形成相册
{mhcms $pic=morefield(field:pics,100);}
{loop $pic $rs}
{$rs[name]}
{$rs[url]}
{/loop}
友情连接标签
———————————————————————————
{mh:flink}{/mh:flink}
参数:
withlogo:0不限制,1为图片连接
isindex:0不限制,1为推荐
typeid:后台分组
示例代码:
{mh:flink row=”40″ withlogo=”0″ isindex=”0″ typeid=”1,2″}
<a href=”{field:url}” target=”_blank”>{field:name}</a>|
{/mh:flink}
table万能标签
———————————————————————————–
mhcms万能标签的使用主要是跨数据库的调用,为了方便站点调用其他数据库的信息,我们采用万能标签
table的使用方法
{table:数据表的名称}{/table}
参数:
where=”” 查询条件sql语句
row=”” 显示条数
dbhost=”” 远程数据库的连接地址
dbuesr=”” 远程数据库的用户名
dbpass=”” 远程数据库的用户密码
dbdata=”” 远程数据库
说明:
注意在同站点的调用可以不需要后面的参数,如果这样写在模版中可能会涉及到泄漏远程数据库信息,不推荐使用
mhcms内容页的使用
—————————————————————————————
文章显示中内容页的使用方法
{$title} 文章标题
{$content} 文章内容
{$author} 文章作者
{$copyform} 文章来源
{$其他字段} 根据模型字段打印出需要的内容
{$content_page} 内容分页
{date(‘Y-m-d’,$updatetime)}
==========================
<span id=”hits”>{js:clicks} </span> 点击次数
{js:comment} 评论次数
调用时候需要在引用:
<script language=”javascript” src=”/api/statistics/c.js.php?id={$id}”></script>
===========================
下一条:{getnext($id,$catid,60)}
上一条:{getpre($id,$catid,60)}
————————————————————————————-
faq,常见问题
1、什么时候用field,什么时候用$?
答:field是在在标签中使用,$为变量,不需要标签支持
2、mhcms模版支持php语句吗:
答:mhcms为开放式模版,模版中支持php语句
3、为什么有的时候我模版做好了,放到服务器上不显示,出现500错误呢?
答:因为mhcms分隔字符采用的是{},而在js语句的时候,很多人直接把js写在一行,导致误解。解决办法,将js语句保存到js文件中,用<script src=”url”>引用进来
4、如何将本地建设好的网站传到服务器上呢?
答:先进入后台备份数据,然后上传到服务器上,进入后台还原系统
5、为什么刚建立好栏目,点击预览却出现没有找到模版呢?
答:一般mhcms有五重模版,index_*htm(频道封面)、list_*.htm列表模版、article_*.htm、single_*.htm单页模版,因为大家安装好系统,建立栏目的时候模版不存在,导致的。一般建立模版方式可以参考官方即将退出的视频
跟多问答,未来将慢慢整理