在自定义内容类型中创建链接字段

时间:2011-11-09 17:45:29

标签: drupal hyperlink contenttypes drupal-fields

我有几种自定义内容类型,在一个特定的内容中,我需要提供两个字段,一个用于链接的href,另一个用于链接文本,这样我可以构建和设置它,用户参与最少HTML / CSS。我还有一个针对此内容类型的自定义node.tpl。我的问题是drupal会在我创建的每个字段周围抛出div,这些字段不在我的模板文件中用于此内容类型(node-custom.tpl),并且我无法将href用于其中包含div的链接{{1看到我的问题。也许我这样做是错的,所以欢迎任何其他想法。

请注意我正在尝试创建此网站,而用户最少参与HTML / CSS访问。我知道我可以手工编写该领域的链接。

1 个答案:

答案 0 :(得分:1)

最简单的方法是在template.php文件中使用预处理函数并手动构建链接:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type = 'my_type') {
    $uri = $node->field_name_of_link_field[LANGUAGE_NONE][0]['value'];
    $text = $node->field_name_of_display_text_field[LANGUAGE_NONE][0]['value']; 
    $vars['my_link'] = l($text, $uri); // Using Drupal's l() function to render a link
  }   
}

然后在您的节点模板文件中,您可以访问可以在任何地方输出的变量$my_link,并且将包含链接的正确HTML。最后,转到内容类型的“管理显示”页面,并设置不再需要输出到“隐藏”的两个字段的显示。

还有其他方法,如果那不好让我知道

修改

添加,我认为最简单的方法是安装Link module并使用提供的字段类型而不是您当前使用的其他两个字段。