Php 在特定节点上添加打印友好链接
在我的Drupal7站点中,我使用打印机、电子邮件和PDF版本模块。我想在特定内容类型的某些特定页面上显示打印机链接。因此,我启用了该内容类型中的链接,其中包括一个布尔字段(field_printable),管理员可以选择是否包含该链接。 在我的template.php文件中,我试图找出如何解决这个问题。这是到目前为止我在template.php文件中得到的内容:Php 在特定节点上添加打印友好链接,php,printing,drupal-7,Php,Printing,Drupal 7,在我的Drupal7站点中,我使用打印机、电子邮件和PDF版本模块。我想在特定内容类型的某些特定页面上显示打印机链接。因此,我启用了该内容类型中的链接,其中包括一个布尔字段(field_printable),管理员可以选择是否包含该链接。 在我的template.php文件中,我试图找出如何解决这个问题。这是到目前为止我在template.php文件中得到的内容: function mytheme_preprocess_node(&$variables) { if($variab
function mytheme_preprocess_node(&$variables) {
if($variables['type'] == "mycontenttype"){
// boolean field that returns 1 if checked
if($node->field_printable['und'][0]['value'] == 1){
what to put here ...?
}
}
}
我可能应该使用print_insert_link();插入链接,但我不知道如何插入。谁能给我指出正确的方向吗?我花了几个小时在谷歌上搜索类似的问题,但我现在被卡住了
任何帮助都将不胜感激,提前谢谢
编辑:在我尝试此操作后,屏幕变为空白
function mytheme_preprocess_node(&$variables) {
if($node->nid == 408){
$variables['print_custom_link'] = print_insert_link();
}
}
我还在节点模板文件中添加了以下内容:
print render($content);
if(!empty($print_custom_link)){
print render($print_custom_link);
}
第一步应该是在“结构>内容类型>要打印的节点类型”中将节点类型配置为可打印。 默认情况下,渲染节点内容时将显示打印链接
如果您想在特定区域和/或特定节点(甚至是视图)中显示打印链接,那么您可以决定使用print_insert_link()来显示打印链接:好的,因此我认为最好发布我自己问题的答案,以防其他遇到同样问题的人正在查看此帖子。再次感谢劳伦特 原来我的布尔字段“field_printable”直接在$variables中可用,而$node根本不可用 因此,在我的template.php中,我得出以下结论:
function mytheme_preprocess_node(&$variables) {
if($variables['type'] == "mycontentpage"){
if($variables['field_printable']['und'][0]['value'] == 1){
$variables['print_custom_link'] = print_insert_link();
}
}
}
在我的节点模板中(就在“打印渲染($content);”行之后):
就是这样。现在它完全按照我想要的那样工作:-)谢谢你的回答。是的,我已经做了所有这些。问题是我只想在5个特定内容类型的特定节点中显示链接,总共大约有20个节点,我不知道如何使用print\u insert\u link()…我一直在努力:-)然后在您的Theme_preprocess_node函数测试中,如果$node->nid在nids目标列表中。如果是这样的话:将print_insert_link()的值保存在$variables['print_custom_link']如果不是空的,请在节点模板中打印$print\u custom\u链接。很抱歉这样打扰您,,,当我尝试以特定内容类型打开页面时,屏幕变为空白。您能看到我在上面的代码中做错了什么吗(我编辑了我的问题)嗯,我想你不需要渲染PrimtTuxCuffLink,因为它已经准备好了HTML。如果你想有错误信息,激活DBlog模块并检查报告>在拥有空白页面之后的最近日志消息。非常感谢。在数据库日志记录模块中有一个错误消息,说明$NUB是未定义的变量…所以我添加了一个检查以查看节点是否已设置,如下所示:if(isset($node)&&count($node->field_adds)!=0{…}我一直在调查…:-)非常感谢,不管怎样,您帮了我很大的忙。
if(!empty($print_custom_link)){
print $print_custom_link;
}