Drupal 6 如何在Drupal中设置电子邮件字段的样式?
我有一份Drupal6的员工名单 我需要设置一个节点的样式,使工作人员的电子邮件字段显示为“联系人[全名字段的第一个单词]”。单击它会打开mailto://链接。顺便说一句,我知道这不是一个推荐的程序,因为联系方式或验证码会更有效,但我的客户希望这样 是的,我正在使用CCK模块和CCK电子邮件模块Drupal 6 如何在Drupal中设置电子邮件字段的样式?,drupal-6,cck,Drupal 6,Cck,我有一份Drupal6的员工名单 我需要设置一个节点的样式,使工作人员的电子邮件字段显示为“联系人[全名字段的第一个单词]”。单击它会打开mailto://链接。顺便说一句,我知道这不是一个推荐的程序,因为联系方式或验证码会更有效,但我的客户希望这样 是的,我正在使用CCK模块和CCK电子邮件模块 同样,我有一个使用自定义内容类型的工作人员列表。我有一个电子邮件字段在那里使用CCK电子邮件模块。当我显示职员的节点时,它只是显示电子邮件地址。我的客户希望,如果工作人员的名字是“Jonathan M
同样,我有一个使用自定义内容类型的工作人员列表。我有一个电子邮件字段在那里使用CCK电子邮件模块。当我显示职员的节点时,它只是显示电子邮件地址。我的客户希望,如果工作人员的名字是“Jonathan McDaniels”,那么在每个工作人员的每个节点上都写上“联系Jonathan”,以此类推。单击“Contact Jonathan”或“Contact Sara”时,它应该执行普通的mailto://hyperlink操作。要在Drupal内部解决此问题,而不需要自己的PHP代码,您需要在Drupal 6中使用以下模块:
Contact [title]
在默认值中,将员工电子邮件URL设置为:
mailto:test@test.com
并设置帮助文本以解释默认格式要求。注意,如果他们在没有mailto:的情况下输入错误,那么链接最终将作为节点传递,这是不正确的。也许有人可以想出一个钩子,在PHP(或表单加载上的Javascript)中的这个字段上测试它,如果忘记了,可以动态地交换它
现在,只使用名字而不是全名,你有两个选择。您可以使用field_staff_firstname和field_staff_lastname(您创建的自定义文本字段),而不使用节点的标题(也称为[title]标记)。另一种方法是使用PHP或表单加载上的Javascript钩住页面,查找此节点元素,截取它,并仅显示联系人+名字。另一种方法是使用PHP。您可以在主题文件夹中创建一个文件node.tpl.php,从garland主题复制这个文件。但是,在其顶部添加以下调用:
require_once('node_hooks.php');
现在在themes文件夹中创建一个文件node_hooks.php。这将为您在给定节点上提供巨大的能力。您应该在node_hooks.php文件中学习$node变量:
<?php
print_r($node);
我在尝试将cck字段转换为mailto链接时遇到了相同的问题。我找到了这个帖子,但找到了另一个,相当简单的方法。这是通过覆盖cck主题模板来完成的:content-field.tpl.php。这是输出字段值的模板,因此您可以对其进行编辑以更新所需的值。将模板复制到您自己的主题文件夹中(不要覆盖原始内容),然后我替换了该行:
<?php print $item['view'] ?>
(这是我的模板中的第42行),带有:
在本例中,我的字段称为“field_email”
希望这有帮助
本
<?php print $item['view'] ?>
<?php
// new lines for email field to turn it into a mailto link
?>
<?php if ($field_name=='field_email') : ?>
<?php // print_r($item);?>
<?php print "<a href='mailto:" . $item['value'] . "'>". $item['value'] ."</a>"; ?>
<?php else : ?>
<?php
// original line
?>
<?php print $item['view'] ?>
<?php endif; ?>
<?php
// end edit
?>