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

在我的Drupal7站点中,我使用打印机、电子邮件和PDF版本模块。我想在特定内容类型的某些特定页面上显示打印机链接。因此,我启用了该内容类型中的链接,其中包括一个布尔字段(field_printable),管理员可以选择是否包含该链接。 在我的template.php文件中,我试图找出如何解决这个问题。这是到目前为止我在template.php文件中得到的内容:

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;
}