如果用户在模板变量中选中复选框,我正在尝试显示社交图标 所以我做了我需要的所有东西,在模板变量的每个页面上显示这个复选框(我只有1个模板) 接下来我将此代码放入base.html(我使用所有块和模板的静态文件 - 此文件是BaseTemplate静态文件)
<?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 :(得分:3)
试试这个,您不需要使用代码段或编写任何代码来使其工作,
在您的模板[base.html]中:
[[*social:eq=`Yes`:then=`[[$YourSocialHTMLChunk]]` ]]
[更好的是,将您的“社交”电视更改为数字类型1或0,您可能需要仔细检查输出过滤器:http://rtfm.modx.com/display/revolution20/Input+and+Output+Filters+(Output+Modifiers),我不确定'eq'是否会在字符串上工作...]
然后将所有社交链接粘贴到您想要命名为YourSocialHTMLChunk的任何内容
答案 1 :(得分:0)
您可以在Modx中的模板或块中使用纯PHP。如果必须使用PHP,则需要为此创建一个Snippet。
您可以通过编写[*templatevarname*]
来模板或块中的模板变量,然后输出内容。请注意,这只会输出您正在显示的页面的内容。
如果您想从其他资源加载templatevariables,您必须为此创建一个代码段。
看看这个维基页面: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'];