2012-07-27 50 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