2012-07-27 59 views
0

我正在寻找一些对我来说真的很难做的事情。我真的试图在网络上搜索解决方案,但是我不能似乎没有找到任何。我也试过几个小时。回复“{FORUM_NAME}”并忽略“{}”


我在做什么:为PHPBB2制作主题,安装了一个可以在主题中包含PHP的MOD。 什么是问题:当我在php中使用{}标记时,它只是无法回显这些标记。 比方说,我有我创建了一个表的功能,这样的:

CreateMyTable(Name,Size,Color); 

我放在函数的字符串:

CreateMyTable("{FORUM_NAME}",1000,red); 

标题保持空白,其实我是想它的回声{论坛名称}。 我该怎么做?

P.S:我不能这样做

CreateMyTable(?>{FORUM_NAME}<?php , 1000, red); 

它不会监守<? = <!-- PHP --> , ?> = <!-- ENDPHP -->工作。

  • 感谢您的帮助:)
+1

尝试使用单引号?也许这会有所帮助。 – Palladium 2012-07-27 15:02:06

+1

难道你不能只写''FORUM_NAME''或'FORUM_NAME'(如果“FORUM_NAME'是一个常量)或者”{FORUM_NAME}“(如果你真的想输出”{FORUM_NAME}“)吗? – 2012-07-27 15:02:09

+0

不,它会响应FORUM_NAME,而不是真正的论坛名称。如果我在html中使用{FORUM_NAME},它会回应FORUM NAME。 – 2012-07-27 15:03:42

回答

1

如果您查看PHPbb2模板类,您会发现该模板只是使用eval()函数进行评估的一组PHP。您可以打印PHP的内容,它是使用eval()解析,然后使用该变量名的模板提供,IE类似(取决于你的模板是如何设置可能无法正常工作)之前:

CreateMyTable(((isset($this->_tpldata['.'][0]['FORUM_NAME'])) ? $this->_tpldata['.'][0]['FORUM_NAME'] : ''),1000,randomcolor()); 

请注意,为了做到这一点类似于上述方式,您实际上必须将其插入模板类。

一个更好的解决方案是避免使用允许在模板中使用PHP的模块,并在模板中使用JavaScript来创建函数,然后打印对该JavaScript函数的调用。

+0

我正在尝试。如果有效,我会在这里注意。 – 2012-07-27 15:14:29

+0

谢谢。这工作:) – 2012-07-27 15:18:20

0

这将工作:

CreateMyTable(FORUM_NAME,1000,red); 

我还注意到,red时没有引号使用 - 这是也是一个常数?如果它是一个变量,它需要在它前面有一个$。如果它是一个字符串,它应该在引号之间。

CreateMyTable(FORUM_NAME,1000,"red"); 
+0

我认为'{FORUM_NAME}'应该是解析器解释的变量,而不是实际的表名或常量。如果是这样,比这很讨厌 - 用视图语法创建表... TBH我不知道这里发生了什么。 – 2012-07-27 15:08:17

+0

这不是一个常数。 – fred2 2012-07-27 15:09:18

+0

@WesleyMurch好点。 @ user1557994如果这应该是一个变量,那么将GET RID OF THE-CAPS NAME改为$ forumName或$ forum_name(无论你使用哪种命名约定取决于你),然后尝试'CreateMyTable($ forum_name,1000,$红色);' – Matt 2012-07-27 15:09:54