大家晚上好。
我目前正在重写我的网站,我正在尝试创建一个片段,它将将各种值输出到MODX (进化)页面中的数组中。我有一个名为SYSTEM_STATUS设置的片段,如下所示;
<?php
$statusfile = file_get_contents('URL_REMOVED');
$statusarray = json_decode($statusfile, true);
// Parsing omitted
$_OUTPUTARR = Array('API_IMAGE' => $_APIDBIMAGE,
'API_MSG' => $_API_STATUS_MSG,
'API_COLOR' => $_APICOLOR,
'API_PING' => $statusarray['API_PING'],
'SITE_IMAGE' => $_SITEDBIMAGE,
'SITE_MSG' => $_SITE_STATUS_MSG,
'SITE_COLOR' => $_SITECOLOR,
'SITE_PING' => $statusarray['SITE_PING'],
'CDN_IMAGE' => $_CFDBIMAGE,
'CDN_MSG' => $_CF_STATUS_MSG,
'CDN_COLOR' => $_CDNCOLOR,
'CDN_PING' => $statusarray['SITE_CF_PING']);
return $_OUTPUTARR;
?>使用[[!SYSTEM_STATUS]]代码段标记在页面顶部调用该片段。但是,在我的页面后面,我希望将这些值中的一些从数组输出到页面。例如,所有_COLOR值用于更改表示状态的框的颜色(CSS属性),所有_IMAGE值用于更改图像,所有_PING和_MSG值用于输出状态消息和ping值。
我想知道的是如何从数组中“提取”值,并在页面的相关点打印它们。假设我想以字符串的形式将SITE_MSG值打印到页面。我将如何在MODX进化中做到这一点?
我原以为这会像[[!SYSTEM_STATUS $X=SITE_MSG]]那样,但老实说,我不确定这是否正确--我觉得我还需要更多的东西。我不确定我是否需要一些块或额外的片段,或者我是否只需要一个带有某种属性的标记,所以任何帮助都将是非常感谢的。
发布于 2013-11-22 02:43:27
好的,首先:如果你使用的是进化论,那么你的片段标签就错了。你用的是革命标签语法。它们应该是:
[!SYSTEM_STATUS!] (未处理)[[SYSTEM_STATUS]] (缓存)有两种方法可以将值从片段打印到页面上。
1-您可以返回一个值,该值将准确地打印在页面上的代码段标记的位置。例:
// replaces [!my_snippet!] with 'text'
return 'text';`2-您可以将占位符设置为将值输出到页面的不同部分。
$modx->setPlaceholder('placeholder', 'some value');然后,您的模板可能是:
[!my_snippet!]
<p>The value returned by my snippet is: [+placeholder+]</p>您可以设置任意数量的占位符。
http://wiki.modxcms.com/index.php/API:setPlaceholder Snippets anatomy
https://stackoverflow.com/questions/20134046
复制相似问题