首页 > 其他分享 >【UCHome二次开发】UCHome模板语法…

【UCHome二次开发】UCHome模板语法…

时间:2023-10-26 18:06:16浏览次数:33  
标签:代码 value SN UCHome 二次开发 解析 模板


UCHome二次开发时,了解模板的语法是必须的,下面对其中的语法做一一介绍。至于模板的解析过程请参考《UCHome二次开发之模板解析》。

1、调用其他模板

<!--{template footer}-->



说明:将以模板header.htm来替换此处的代码

2、调用头像

模板代码:

<!--{avatar($value[uid],small)}-->



解析后的代码:

<?php echo avatar($value[uid],small); ?>




3、调用广告

模板代码:

<!--{ad/header}-->



解析后的代码:



<?php adshow('header'); ?>




4、调用时间

模板代码:


<!--{date('Y-m-d H:i', $value[dateline], 1)}-->



解析后的代码:

<?php echo sgmdate('Y-m-d H:i', $value[dateline], 1); ?>



5、输出PHP代码

模板代码:



<!--{eval echo formhash();}-->




解析后的代码:

<?php echo formhash(); ?>


说明:<!–{eval和}–>之间的是需要执行的PHP代码,要求语句完整。

6、调用变量

模板代码:

<a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a>



解析后的代码:


<a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a>



说明:{和}之间的是需要输出的变量。

7、选择输出逻辑

模板代码:


1	<!--{if empty($mtag['ismember']) && $mtag['joinperm'] < 2}-->
2	   <li><a href="cp.php?ac=mtag&op=join&tagid=$mtag[tagid]" id="a_mtag_join_$mtag[tagid]" onclick="ajaxmenu(event, this.id, 99999)">加入群组</a></li>
3	<!--{elseif $mtag['allowpost']}-->
4	   <li><a href="cp.php?ac=thread&tagid=$mtag[tagid]">发起话题</a></li>
5	<!--{/if}-->


解析后的代码:

1	<?php if(empty($mtag['ismember']) && $mtag['joinperm'] < 2) { ?>
2	   <li><a href="cp.php?ac=mtag&op=join&tagid=<?=$mtag['tagid']?>" id="a_mtag_join_<?=$mtag['tagid']?>" οnclick="ajaxmenu(event, this.id, 99999)">加入群组</a></li>
3	<?php } elseif($mtag['allowpost']) { ?>
4	   <li><a href="cp.php?ac=thread&tagid=<?=$mtag['tagid']?>">发起话题</a></li>
5	<?php } ?>


说明:当然这里可以没有elseif,其语法有点类似VB,需要有结尾符。

8、循环输出逻辑

模板代码 1:

01	<!--{loop $list $key $value}-->
02	<tr <!--{if $key%2==1}--><!--{/if}-->>
03	<td>
04	   <!--{if $value[displayorder]}--> [顶] <!--{/if}-->
05	   <!--{if $value[digest]}--> [精] <!--{/if}-->
06	   <a href="space.php?uid=$value[uid]&do=thread&id=$value[tid]">$value[subject]</a></td>
07	<td><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a><br>$value[replynum]/$value[viewnum]</td>
08	<td><a href="space.php?uid=$value[lastauthorid]" title="{$_SN[$value[lastauthorid]]}">{$_SN[$value[lastauthorid]]}</a><br><!--{date('m-d H:i',$value[lastpost],1)}--></td>
09	</tr>
10	<!--{/loop}-->


解析后的代码 1:


01	<?php if(is_array($list)) { foreach($list as $key => $value) { ?>
02	<tr <?php if($key%2==1) { ?><?php } ?>>
03	<td>
04	   <?php if($value['displayorder']) { ?> [顶] <?php } ?>
05	   <?php if($value['digest']) { ?> [精] <?php } ?>
06	   <a href="space.php?uid=<?=$value['uid']?>&do=thread&id=<?=$value['tid']?>"><?=$value['subject']?></a></td>
07	<td><a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a><br><?=$value['replynum']?>/<?=$value['viewnum']?></td>
08	<td><a href="space.php?uid=<?=$value['lastauthorid']?>" title="<?=$_SN[$value['lastauthorid']]?>"><?=$_SN[$value['lastauthorid']]?></a><br><?php echo sgmdate('m-d H:i',$value[lastpost],1); ?></td>
09	</tr>
10	<?php } } ?>


说明:loop后跟三个参数时,第一个参数是用于循环的数组,第二个和第三个参数分别是对数组中每一项循环时项的键名和值。

模板代码 2:

1	<!--{loop $memberlist $value}-->
2	<li>
3	<div><a href="space.php?uid=$value[uid]"><img src="<!--{avatar($value[uid],small)}-->" alt="{$_SN[$value[uid]]}" /></a></div>
4	<p><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a></p></li>
5	<!--{/loop}-->


解析后的代码 2:

1	<?php if(is_array($memberlist)) { foreach($memberlist as $value) { ?>
2	<li>
3	<div><a href="space.php?uid=<?=$value['uid']?>"><img src="<?php echo avatar($value[uid],small); ?>" alt="<?=$_SN[$value['uid']]?>" /></a></div>
4	<p><a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a></p></li>
5	<?php } } ?>


说明:loop后跟两个参数时,第一个参数是用于循环的数组,第二个参数是对数组中每一项循环时项的值。

注:以上所有实例皆摘录自UCHome 1.5默认模板。对比一下模板代码和解析后的代码便可知语法的效果,所以文中不多解释。个人自习结果,如有不对之处欢迎拍砖。

标签:代码,value,SN,UCHome,二次开发,解析,模板
From: https://blog.51cto.com/u_710020/8041922

相关文章

  • Dynamics CRM中自定义页面实现附件管理包含下载模板、上传、下载、删除
    前言附件使用的DynamicsCRM平台本身的注释表annotation存储,将附件转换成二进制字节流保存到数据库中,因自带的注释在页面中显示附件不够直观,特做了一个单独的附件管理自定义页面,通过CRM自定义按钮打开对话框的方式展示附件列表页面。同时支持下载附件模板,页面为简单的H5+Bootstr......
  • 如何设计edm邮件营销模板?模板制作方法
    在进行edm邮件营销活动时,一个优秀的邮件模板设计是必不可少的。一个好的邮件模板设计可以提高邮件的打开率和转化率,引起潜在客户的关注和兴趣。那么,如何设计edm邮件营销模板?下面,我们将为大家介绍几种模板制作方法。一、选择合适的邮件模板首先,要选择款式简洁、色彩明亮、布局合理、......
  • 测试报告模板三
    测试报告项目:编写:文档版本版本号修改日期编写评审批准修改内容1.0建立目 录1.  简介41.1         编写目的..41.2         参考资料..41.3         术语定义..42.  测试背景42.1         项目背景..42.2         ......
  • 测试总结报告模板一
    XX测试总结报告文档作者:编写日期:项目经理:批准日期:文档修改纪录表日期制修人修改内容描述目录1.      引言....31.1.    目的..31.2.    背景..31.3.    测试范围和内容...31.4.    定义..31.5.    参考资料..32.      测试总结..........
  • 测试计划模板一
    测试计划修订历史记录版本日期AMD修订者说明1.0XXXX年XX月XX(A-添加,M-修改,D-删除)目录1.        简介..41.   1目的...41.   2背景...41.3范围...42.   测试参考文档和测试提交文档...52.1测试......
  • 测试方案模板一
    {项目名称}测试方案状态:草稿      标识号:评审           当前版本:1初始版         前一版本:修订版         发布日期: 摘要描述文档的主要内容。修改历史日期版本作者修改内容评审号更改请求号注释:评审号为......
  • 变更测试要点模板
    系统变更_测试要点整理文档提示:测试前,请阅读“主要流程”列的测试内容执行测试每一个“主要流程”时,大致阅读测试要点系统版本模块主要流程变更内容_及测试要点变更时间......
  • 3.1 模板测试与深度测试(Stencil Test & Z Test)
    一、模板测试(StencilTest)模板测试可以实现的一些效果图1.是什么①从渲染管线出发:模板测试是在逐片源操作阶段,透明测试之后,深度测试之前的位置。②从书面概念上理解说到模板测试,就要先说道模板缓冲区。模板缓冲区与颜色缓冲区和深度缓冲区类似,模板缓冲区可以为屏幕上的每个像素点保......
  • OI模板库
    有时间就加一点吧....TarjannamespaceTarjan{ intcol[N],num[N],dfn[N],low[N],cnt,colornum,val[N]; boolins[N]; stack<int>s; vector<int>g[N]; vector<int>e[N]; inta[N]; inlinevoidtarjan(intu){ dfn[u]=low[u]=++cnt; s.push(u);ins[u]=......
  • Laravel中的blade模板
    Blade简介当开发Laravel应用程序时,您将经常使用Blade模板引擎来构建和渲染视图。Blade是Laravel的默认模板引擎,它提供了简洁、直观的语法,使您能够轻松地编写动态的、可重用的视图。下面是一些Blade模板的常见特性和语法:输出变量:使用双花括号{{$variable}}来输出......