我正在为基于Drupal7基本安装中提供的article类型的自定义内容类型创建一个自定义布局(node--article.tpl.php)。我添加的只是一个PDF文件的文件附件字段。
我想在渲染页面中有一个链接,上面写着类似的内容("PDF版本")。我已经为该内容类型创建了一个模板文件,它运行良好。我使用了print render($content['field_pdf']);
代码片段来显示文件链接。它显示为文件名,作为文件的链接,旁边有一个PDF图标。几乎完美!
我只需要将文件名更改为静态字符串"PDF版本"。
提前感谢!
使用hook_node_view_alter()
function yourmodule_node_view_alter(&$build)
{
$node = $build['#node'];
if($node->type == "article" && isset($build['field_pdf']['#items']))
{
$build['field_pdf']['#items'][0]['#file']->filename = t('PDF Version');
}
}
或
function yourmodule_node_view_alter(&$build)
{
$node = $build['#node'];
if($node->type == "article" && isset($build['field_pdf']['#items']))
{
hide($build['field_pdf']);
$build['my_themed_link']['#markup'] = l(t('PDF Version'), file_build_uri($build['field_pdf']['#items'][0]['uri']));
$build['my_themed_link']['#weight'] = 10;
}
}
我还没有测试过,希望它对你有效。
Muhammad
如果您为PDF上传字段启用了描述字段,那么您应该能够使用print_r语句访问该变量。
你可以写这样的东西:
<a href="<?php print render($content['field_pdf']['path'])?>"><?php print render($content['field_pdf']['description']);?></a>
这段代码并不完全是drupal使用的,但您可以在node.tpl.php文件中使用下面的代码来获取正确的数组格式。
<pre><?php print_r($node); ?></pre>