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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 请教如何在模板中调用函数

[复制链接]
zhuarji 发表于 2014-1-10 01:19:50 | 显示全部楼层 |阅读模式
问题描述
适用版本: Discuz! X3
浏览器: 其他(帖子中请注明浏览器) 
使用模板: 其他模板(请在回帖中说明模板的名称或者是模板的下载地址)
BUG地址: https://discuz.dismall.com
本帖最后由 zhuarji 于 2014-1-10 12:32 编辑

我刚开始自学DISCUZ,想利用源程序做一些自己的东西,因此需要增加自定义模板。现在遇到一个问题,希望各位指教指教

先讲讲有关文件与路径
|-bbs
     house.php(自定义的单页)
     |-source
     |          |-function
     |                    |-function_house.php(自定义函数库)
     |-template
     |           |-myweb
     |                  |-common
     |                             |-house.htm

下面讲讲我想要实现的目标:
   在house.htm中从数据库成功获取到三条记录(各字段为:id  title  status):
   然后用loop循环得如下结果:
   编号  标题  状态
   1       AAAA    1
   2       BBBB    0
   3      CCCC    1
我想把状态(status)的数字转换成中文,1--有效,0--失效;本来用if是可以在house.htm中实现的,由于其他的需要,想通过函数库来处理然后再调用出来。
于是我在function_house.php中写了一个函数:
function show_status($status){
     if($status==1){
         $s_status='有效';
     }elseif($status==0){
         $s_status='失效';
     }
     return $s_status;
}

接着在house.htm模板loop中用<!--{eavl show_status($v['status']);}-->调用。只显示成
编号  标题  状态
   1       AAAA    {eavl show_status(1);}
   2       BBBB    {eavl show_status(0);}
   3      CCCC    {eavl show_status(1);}
考虑到是否为函数调用问题,我在house.php中加上一条:$a=show_status(1);后,再在house.htm中调用$a,结果能成功显示“有效”。
由此我推测是<!--{eavl show_status($v['status']);}-->无法向function_house.php中传递参数或<!--{eavl show_status($v['status']);}-->根本无法做到调用此函数的操作。

现在我需要的是弄清楚具体的原因并实现这种处理。恳请有经验的高手指点迷津,我将会万分感谢。
 楼主| zhuarji 发表于 2014-1-10 12:31:52 | 显示全部楼层
我找到问题所在了。第一:eavl写错了,应该是eval,第二,用eval后不能显示,结果是空白。改用echo后正常。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 04:31 , Processed in 0.025504 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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