在每个页面上获取模板变量值 modx revolution

get template variable value on each page modx revolution

我使用 modx,老实说,我是这个 CMS 的新手。我想在每个页面上显示相应的模板变量的值。这是我在片段中编写的代码:

<?php
if ( isset($modx->documentObject['PDF-Resource-Url'][1]) && !empty($modx->documentObject['PDF-Resource-Url'][1]) ) {
echo '<li class="related-link slide expanded"><a href="' . $modx->documentObject['PDF-Resource-Url'][1] . '" target="_blank">Pdf</a></li>';
}
?>

但它returns 输出为空。我使用最新版本的 modx revolution。我想这也许就是我看到空输出的原因。

感谢您的帮助!

您似乎在使用 MODX Evolution 中的方法。 Revolution 是不同的,因此最好熟悉文档。我在下面提供了一些链接。

使用 API 获取模板变量值很简单:

$value = $modx->resource->getTVValue('tv-name');

$modx->resource 始终包含当前资源的对象。

您的示例将变为:

$output = '';

$url = $modx->resource->getTVValue('PDF-Resource-Url');
if (!empty($url)) {
    $output = '<li class="related-link slide expanded"><a href="' . $url . '" target="_blank">Pdf</a></li>';
}

// always return output rather than echoing to page
return $output;

如何获取当前资源对象: http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/structuring-your-site/resources

如何检索模板变量: http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/template-variables/accessing-template-variable-values-via-the-api

基本片段开发: http://rtfm.modx.com/revolution/2.x/developing-in-modx/basic-development/snippets