2012-07-04 44 views
0

我試圖顯示社交圖標,如果用戶選中複選框模板varribles中。
所以我做了一切我需要在模板變量的每個頁面上顯示這個複選框(我只有1個模板)。
接下來,我把這個代碼到base.html文件(我使用的所有塊和模板靜態文件 - 這個文件是BaseTemplate靜態文件)使用TemplateVariable複選框ModX

<?php if ($modx->getTemplateVar(1,'Yes')) { ?> 
    <a href="#"><img src="assets/templates/default/images/facebook.png" alt="Facebook" style="width: 26px; height: 26px; border: 0; margin-left: 40px;" /></a> 
    <a href="#"><img src="assets/templates/default/images/twitter.png" alt="Twitter" style="width: 26px; height: 26px; border: 0; margin-left: 10px;" /></a> 
    <a href="#"><img src="assets/templates/default/images/linkedin.png" alt="LinkedIn" style="width: 25px; height: 25px; border: 0; margin-left: 10px;" /></a><br /><br /> 
<?php } ?> 

而且我想:

<?php if ($modx->getTemplateVar($social,'Yes')) { ?> 

其中social是我的電視名稱,1是我電視的ID。

而且這是我得到的網站:

getTemplateVar($social,'Yes')) { ?> 

我雖然這是因爲我不能在塊/模板文件中使用PHP的,所以我創建段放在代碼來檢查電視被選中進去,但這沒有給我任何結果。

這是documentation我閱讀使用電視。
我做錯了什麼?如何以這種方式使用電視,而不是顯示資源時的過濾器?

+0

你使用的是什麼版本的Modx? – OptimusCrime

+0

MODX Revolution 2.2.0-pl2(advanced) – miszczu

回答

3

試試這個,你不需要使用一個片段編寫任何代碼來完成這項工作,

在模板[base.html文件]:

[[*social:eq=`Yes`:then=`[[$YourSocialHTMLChunk]]` ]] 

[更好的是,改變你的「社交」電視到數字式的1或0,你可能必須仔細檢查輸出濾波器:http://rtfm.modx.com/display/revolution20/Input+and+Output+Filters+(Output+Modifiers),我不知道如果「情商」將一個字符串工作...]

然後堅持所有的社交鏈接到任何你想要的名字YourSocialHTMLChunk

+0

它的作品,這是非常好的答案:)謝謝 – miszczu

0

您可以在Modx中的模板或塊中使用純PHP。如果你必須使用PHP,你需要爲它創建一個Snippet。

您可以通過編寫[*templatevarname*]在模板或塊中獲得模板變量,並輸出內容。請注意,這隻會輸出您正在顯示的網頁的內容。

如果你想加載其他資源的模板變量,你必須爲它創建一個代碼段。

看看這個wiki頁面:http://wiki.modxcms.com/index.php/Placeholders_used_by_MODx_Pages_and_Templates

對於一個片斷,你會寫類似

[!yourSnippetName? &sid=`[[*id*]]`!] 

內容片斷:

$tvPr = $modx->getTemplateVarOutput(array("templatevarname"),$sid,1); 
echo $tvPr['templatevarname']; 

http://wiki.modxcms.com/index.php/API:getTemplateVarOutput

+0

這不起作用。你的代碼段的使用是錯誤的,但無論如何,如果我使用它的權利,雙'[[]]',它不起作用。 Aby的其他想法?我只需要訪問當前顯示的頁面im的模板變量。 – miszczu

+0

你確定我的代碼片段標記是錯誤的?自從我在Evo編程以來已經有一段時間了,但我相信未找到的片段被稱爲這種方式......嗯,奇怪它不起作用。 – OptimusCrime

+0

他可能使用revo(我們可以得到一個確認?)在這種情況下語法稍有不同:[[!yourSnippetName? &sid ='[[* id]]']] –