Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] 【教程】第二讲:UCH模板及插件中的变量和标签使用(if else篇+模板嵌套)

[复制链接]
kongkang 发表于 2008-6-12 23:59:54 | 显示全部楼层 |阅读模式
转载请注明(作者:kongkang 来源:discuz论坛 或者 www.daxuesheng.com大学生网)
教程建议及讨论:http://www.daxuesheng.com/space-mtag-tagid-789.html

上次课程的回顾:
第一讲(https://discuz.dismall.com/thread-957572-1-1.html)我们说了两点,简单的介绍了如何使用if和$_SGLOBAL['supe_uid']全局变量来控制是否登陆状态,这节课,我们继续上次的话题,让他更完善。

第一次课程结束后,有朋友问我,如果要让登陆的看到一种内容,让没有登录的看到一种内容,例如左侧列表,登陆前就是登陆框,登陆后就是列表内容了,还有朋友说:听说有else这一说,让我也讲一讲,那么这节课我们详细的讲讲这个,当然还会有其他的新内容。
  1. <!--{if $_SGLOBAL['supe_uid']}-->
  2. 如果登录了才会显示你看到的这段文字
  3. <!--{else}-->
  4. 没有登陆的话,就只能看到这段文字了,不过登陆后就看不到了,只能看到上面那句,呵呵
  5. <!--{/if}-->
复制代码
其实只要有这个例子,我们就可以实现刚才讨论的没登录用户看到一种,登录用户看到一种内容了。

那么,我们就要问,除了控制这个,举一反三,还有什么内容呢?
例如,我们来看看header这个文件
  1.                 <div id="header">
  2.                         <h2><a href="index.php"><img src="$_SCONFIG[sitelogo]" alt="$_SCONFIG[sitename]" /></a></h2>
  3.                         <!--{if $_SGLOBAL[supe_uid]}-->
  4.                         <ul id="menu">
  5.                                 <li><a href="space.php?do=home">首页</a><!--{if $space[self] && $space[credit]<10}--><a href="space.php?do=home&view=guide" class="edit">向导</a><!--{/if}--></li>
  6.                                 <li><a href="space.php">个人主页</a></li>
  7.                                 <li><a href="space.php?do=friend">好友</a><a href="javascript:;" onclick="openSub(this,'friend');" class="drop">&nbsp;</a></li>
  8.                                 <li><a href="network.php">随便看看</a><!--{if empty($_SCONFIG['showall'])}--><a href="space.php?do=home&view=all" class="edit">近况</a><!--{/if}--></li>
  9.                                 <li><a href="space.php?do=pm"><span id="span_newpm">私信</span><!--{if !empty($_SGLOBAL['member']['newpm'])}--><script>newpm();</script><!--{/if}--></a><a href="javascript:;" onclick="openSub(this,'pm');" class="drop">&nbsp;</a></li>
  10.                         </ul>
  11.                         <div id="op">
  12.                                 <a href="cp.php">设置</a><span class="pipe">|</span>
  13.                                 <a href="cp.php?ac=privacy">策略</a><span class="pipe">|</span>
  14.                                 <!--{if $space[self] && $space[credit]>=10}--><a href="space.php?do=home&view=guide">向导</a><span class="pipe">|</span><!--{/if}-->
  15.                                 <a href="cp.php?ac=common&op=logout">退出</a>
  16.                         </div>
  17.                         <!--{else}-->
  18.                         <div id="op">
  19.                                 <a href="index.php">首页</a><span class="pipe">|</span>
  20.                                 <a href="space.php">我的空间</a><span class="pipe">|</span>
  21.                                 <a href="help.php">帮助</a>
  22.                         </div>
  23.                         <!--{/if}-->
  24.                 </div>
复制代码
这段看起来比较痛苦,为什么呢?因为你没有仔细看,其实很简单。
我这里要强调的是几个问题:
1、<!--{if XXX}-->YYY<!--{else}-->ZZZ<!--{/if}-->表达的意思是:如果XXX条件是真实的,那么我们就要运行或者显示YYY的内容,否则(也就是XXX不成立的话)就显示或者执行ZZZ的内容。
2、<!--{if XXX}-->YYY<!--{else}-->ZZZ<!--{/if}-->和<!--{if XXX}-->YYY<!--{/if}-->其实是一样的,后者是前者的简单功能版本。
3、if语句是可以嵌套的,这也是上面这段代码例子主要表达的,一个if语句中可以继续写if语句,不过必须成对使用,封闭最里面的if才可以继续写外面的if语句。类似一个盒子里面要再放一个盒子,必须一个包括一个,不可能A盒子里面有B盒子,同时B盒子里面还有A盒子的部分,这样是会出乱子的

再有,这节课结尾部分我想说一下另外一点,就是模板嵌套的问题。
一个模板可以嵌套另外一个模板:
你会发现,所有的页面的顶部和尾部都一样,这是为什么呢?
因为任何一个文件(大部分)的顶部和尾部都有一句类似这样的代码:<!--{template XXX}-->
其中XXX可能是header或者footer,这就表示,这个地方就是调用了header.htm的模板或者是footer.htm的模板。
那么,我们就可以重用代码了,这个在我后面插件课程中也会说道代码重用的问题,一个程序员基本的素质哦。
别让自己太累了,如果有一大段代码可以重复使用,为什么不让他们独立出来呢?
这样做有两个好处:
1、代码重用,调用代码只有一行,所以调用的话会让你的代码很整齐,非常便于维护;
2、重复使用的代码,可以一次性更新,因为都在调用这个,所以这部分需要修改,只需要修改一次,其它调用的时候自然会用更新过的文件调用,如果重复代码没有很好的重用,你修改的话就会很多地方同时修改,重复劳动不说,ctrl+c ctrl+v 也是很累,而且容易出错的。


好了,今天的课成就暂时结束了,又是临晨了……
不过如果睡得太早你就不是一个大众程序员,哈哈,因为一半以上的程序员都喜欢晚上写代码,至少我有这个坏毛病。
晚安各位未来的成功者,希望你们成长,记得继续支持我,支持大学生网哦~

PS:不要嫌每次讲的太少,积少成多,多巩固你的知识才是最重要的,回帖可以写写你的心得,再就是要交作业,以后我会布置作业了~

[ 本帖最后由 kongkang 于 2008-6-13 00:19 编辑 ]

评分

7

查看全部评分

枯心树 发表于 2008-6-13 00:08:46 | 显示全部楼层
沙发都没人要……
回复

使用道具 举报

poplong 发表于 2008-6-13 00:15:29 | 显示全部楼层
支持啊~~~~~~~~~~
回复

使用道具 举报

poplong 发表于 2008-6-13 00:16:19 | 显示全部楼层
再来个超级地板~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

大街 发表于 2008-6-13 00:18:28 | 显示全部楼层
强烈支持,我搬条板凳来学习下~~
KK,送我两块钱吧,我想买插件都没有钱呢……
回复

使用道具 举报

 楼主| kongkang 发表于 2008-6-13 00:19:40 | 显示全部楼层
原帖由 大街 于 2008-6-13 00:18 发表
强烈支持,我搬条板凳来学习下~~
KK,送我两块钱吧,我想买插件都没有钱呢……


看你还有2元存款呢~
回复

使用道具 举报

lawroad 发表于 2008-6-13 00:50:34 | 显示全部楼层
kongkang一出必属精品^_^
回复

使用道具 举报

 楼主| kongkang 发表于 2008-6-13 00:57:23 | 显示全部楼层
原帖由 lawroad 于 2008-6-13 00:50 发表
kongkang一出必属精品^_^


对我至高无上的评价了,感谢泪流满面,我会继续加油……
回复

使用道具 举报

5to20 发表于 2008-6-13 01:02:06 | 显示全部楼层
kongkang一出必属精品^_^
回复

使用道具 举报

crazyff85 发表于 2008-6-13 01:12:42 | 显示全部楼层
授人以鱼不如授人以渔~~哈哈~支持~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-24 07:00 , Processed in 0.027778 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表