晚上好。
我目前正在重写我的网站,而我正在尝试创建一个代码段,该代码段会将各种值输出到MODX
(Evolution)页面中的数组中。我有一个称为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
和{{ 1}}值用于输出状态消息和ping值。
我想知道的是我如何从该数组中“提取”值并在页面的相关位置打印它们。假设我想将_MSG
值作为字符串打印到页面。我将如何在MODX Evolution中实现这一目标?
我原以为它会像SITE_MSG
那样,但我老实说不确定这是否正确 - 感觉就像我需要的更多。我不确定我是否需要一些块或其他片段,或者我是否只需要一个具有某种属性的标签,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
好的,首先关闭:如果您正在使用Evolution,那么您的代码段标签是错误的。您正在使用Revolution标记语法。他们应该是:
[!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 http://wiki.modxcms.com/index.php/Creating_Snippets http://wiki.modxcms.com/index.php/Snippet_call_anatomy