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

Drupal 在自定义内容类型中创建链接字段,drupal,hyperlink,contenttypes,drupal-fields,Drupal,Hyperlink,Contenttypes,Drupal Fields,我有几个自定义内容类型,在一个特定的类型中,我需要提供两个字段,一个用于链接的href,另一个用于链接的文本。这样,我可以在用户最少参与HTML/CSS的情况下构建和设置链接的样式。我还有一个用于此内容类型的自定义node.tpl。我的问题是,drupal在我创建的每个字段周围都会抛出div,而这些字段不在我的模板文件中用于此内容类型(node custom.tpl),并且我无法将带有div的链接的href放入查看我的问题。也许我做错了,所以欢迎有其他想法 请注意,我正在尝试创建这个网站,尽量减

我有几个自定义内容类型,在一个特定的类型中,我需要提供两个字段,一个用于链接的href,另一个用于链接的文本。这样,我可以在用户最少参与HTML/CSS的情况下构建和设置链接的样式。我还有一个用于此内容类型的自定义node.tpl。我的问题是,drupal在我创建的每个字段周围都会抛出div,而这些字段不在我的模板文件中用于此内容类型(node custom.tpl),并且我无法将带有div的链接的href放入
查看我的问题。也许我做错了,所以欢迎有其他想法


请注意,我正在尝试创建这个网站,尽量减少用户对HTML/CSS访问的参与。我知道我可以在字段中手动编写链接代码。

最简单的方法是在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。最后,转到内容类型的“管理显示”页面,并将不再需要输出的两个字段的显示设置为“隐藏”

还有其他的方法,所以如果这样不行,请告诉我

编辑


补充一点,我认为最简单的方法实际上是安装并使用提供的字段类型,而不是您当前使用的其他两个字段。

太好了,谢谢您的回复。这一切似乎都很直截了当,所以我明天就给你。只是澄清一下,这是一个图形按钮,显示在网站中几个网页的右下角。链接中的内容也会更改。我认为这样做会让“内容编辑器”更容易维护,这是个好主意还是你会建议走另一条路?非常感谢。实际上,经过仔细考虑,您可以安装,它提供了一个字段类型,您可以附加到节点,该节点只接受链接。这将解决您遇到的问题,并为您提供验证链接的附加好处:)真棒,干杯。我可能会尝试你的第一个建议,只是为了学习,因为我没有太多地使用任何drupal函数。不过,我很可能最终会使用link模块。谢谢你@用户823903:没问题!不要忘记接受答案如果这有帮助,它会让其他有同样问题的人知道他们找到了正确的答案:)