站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Joomla/MosIf的使用
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{Joomla top}} MosIf是一个[[Joomla!]]触发器(mambot)的名称。所谓触发器,就是当 Joomla! 的页面被[[浏览器]]打开时,就立即执行的“机器人代码”。通常来说,“页面被打开”就是触发器运行的唯一“触发”条件。但是,MosIf 是一个特例。 MosIf 特殊在,在某些特定条件下才能看到它执行的结果。例如,有一段文字指定只给“熊猫烧香”这个会员看,那么其他访客或会员打开该页面时就看不到这段话,而“熊猫烧香”会员却在登录后能在同一个页面上看到这段文字。严格来讲,看不到结果的时候,MosIf 也是运行了的,只不过没有“显示”出来。给人的感觉似乎并没有执行。 ==为什么要用MosIf== 首先举一个简单的例子来说明:我们都知道Joomla!后台可以对某个模块或某篇文章设置其访问权限,比方说只让注册会员看到,而未注册访客看不到。这样做的好处是可以诱惑访客注册为会员。但是,如果反过来:我们希望某些文字只展示给未注册访客(含未登录的会员),而注册会员在登录后就看不到—— 这一点Joomla!就做不到!因为开发人员认为很可笑:凭什么未注册访客都能看到的东西,站内注册会员却看不到?他们认为不公平! 但是,这种需求与公平无关。例如,我想在一篇名为《欢迎访问我的网上家园》的文章中,分别对未注册访客和会员问候一下,而且我希望未注册访客看到的文章内容是“亲爱的访客朋友…… 点击此处立即注册…… 如果您已经注册,请点击此处登录”,而已注册会员在登录后看到的是“亲爱的会员…… 感谢您在本站注册”。也就是说,会员在登录后完全看不到给访客显示的文字。遗憾的是,Joomla! 本身不具备这个能力——除非你准备两篇内容不同的文章,但是这样就背离了我们的初衷:文章的数量增加了,而且[[URL]]也不同。 如果启用了 MosIf 就很容易做到:这个触发器可以基于用户类型(访客、会员、管理员等等)而显示指定的文字。例如,用mosif 来完成上面的任务,其代码就是: {mosif usertype=registered}亲爱的会员{else}亲爱的访客朋友{endif}: 上面一段代码执行后的结果就是会员和访客看到不同内容的问候语。 ==用MosIf能干什么== 这个条件触发器(Conditional Mambot)支持的条件可不止一种,条件还可以是:用户名、文章作者、浏览器版本、日期、时间、星期、浏览器语言、IP 地址,甚至是 cookie ! 例如,我们显示一段文字,只允许会员 batman 看到: {mosif username=batman}亲爱的batman{else}陌生人{endif},您好!: 至于其他条件的应用,大家参看安装包中的 readme_cn.txt 文件。 在最新的 1.11 版本中,软件作者 Martin Larsen 还增加了“嵌套”功能。即,在MosIf 语句中可以嵌套另一个 MosIf 条件,而且嵌套曾数不限。唯一要注意的是:为了避免[[代码]]混淆,每一层必须设定一个识别标志。 举例来说,我们刚才问候了 batman ,这次我们搞复杂一点:我们判断时间是否已过23:00 ,如果过了就提醒他休息,如果没过,就说点别的;同时对于陌生人也作出提醒: {mosif username=batman}亲爱的batman 时间 {mosif.a time gt 23}很晚了{else.a}还不算晚{endif.a}{else}陌生人{endif},您还在网上流浪吗? 可以看出,这是嵌套了两层 MosIf,内层的增加了一个 .a 的识别标志。那么 gt 又是什么?这表示 Greater Than,即“大于”(>)。这是 MosIf 允许的“运算符”。 ==MosIf用法== MosIf 的语法是: {mosif <参数><运算符><列表>}some content{else}other content{endif} <参数> 包括:username | usergroup | usertype | ip | language | cookie_<name> | author | browser | date | time | datetime | weekday <运算符> 包括:> | < | = | != (分别代表“大于”、“小于”“等于”和“不等于”),其中前两个还可以写作 gt (greater than)和 lt (less than)。 <列表> 表示参数值可以是多个,互相用英文逗号分隔。例如,我们希望 batman 、spider 和 superman 三个会员看到同样一段文字,而其他人看不到,就可以写成: {mosif username=batman, spider, superman}bla bla bla {else} heyihayo {endif} 另外,MosIf 还支持使用通配符(Wildcard),同样的,? 表示任意一个字符,* 表示任意数量的任意字符。例如,username=john* 就表示以 john 开头的所有会员。 通配符可以用来描述[[IP地址]]段。例如,我们只允许特定IP范围的访客看到某些内容: {mosif ip=10.0.0.?}这段文字仅对网络地址范围 10.0.0.0-10.0.0.9 的用户可见{endif} 由于?表示任意一个字符,因此只能是 0 至 9;假如使用*,则表示 0 至 255。 几点注意事项: *MosIf 标记可以跨越多行。 *条件及名称是区分大小写的。 *您可以在逗号(commas)及等于号(equal sign)之前或之后添加空格以便于识别。 最后,提醒一下:当网站启用了 PDF 按钮,显示文章的 PDF 格式时,MosIf 触发器不能生效。如果您希望 mosIf 在 PDF 视图下生效,你必须上传 Martin 修改过的 pdf.php 文件(此文件在安装包内)到[[服务器]]上,放置到 /includes 目录,覆盖Joomla! 原有的同名文件。 ==参考来源== http://www.joomlagate.com/article/joomla10-tutorial/mosif-execute-joomla-command-on-conditions/ {{Joomla 1.0}} [[category:Joomla|M]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:Joomla 1.0
(
编辑
)
模板:Joomla top
(
编辑
)