Drupal 6 如何在Drupal中设置电子邮件字段的样式?

Drupal 6 如何在Drupal中设置电子邮件字段的样式?,drupal-6,cck,Drupal 6,Cck,我有一份Drupal6的员工名单 我需要设置一个节点的样式,使工作人员的电子邮件字段显示为“联系人[全名字段的第一个单词]”。单击它会打开mailto://链接。顺便说一句,我知道这不是一个推荐的程序,因为联系方式或验证码会更有效,但我的客户希望这样 是的,我正在使用CCK模块和CCK电子邮件模块 同样,我有一个使用自定义内容类型的工作人员列表。我有一个电子邮件字段在那里使用CCK电子邮件模块。当我显示职员的节点时,它只是显示电子邮件地址。我的客户希望,如果工作人员的名字是“Jonathan M

我有一份Drupal6的员工名单

我需要设置一个节点的样式,使工作人员的电子邮件字段显示为“联系人[全名字段的第一个单词]”。单击它会打开mailto://链接。顺便说一句,我知道这不是一个推荐的程序,因为联系方式或验证码会更有效,但我的客户希望这样

是的,我正在使用CCK模块和CCK电子邮件模块


同样,我有一个使用自定义内容类型的工作人员列表。我有一个电子邮件字段在那里使用CCK电子邮件模块。当我显示职员的节点时,它只是显示电子邮件地址。我的客户希望,如果工作人员的名字是“Jonathan McDaniels”,那么在每个工作人员的每个节点上都写上“联系Jonathan”,以此类推。单击“Contact Jonathan”或“Contact Sara”时,它应该执行普通的mailto://hyperlink操作。

要在Drupal内部解决此问题,而不需要自己的PHP代码,您需要在Drupal 6中使用以下模块:

  • CCK模块
  • CCK链路模块
  • CCK令牌模块
  • 不幸的是,CCK电子邮件模块无法解决此问题

    复制到sites/all/Module并激活后,您可以为员工选择自定义内容类型,并创建一封现场员工电子邮件作为“链接”类型。然后,将该链接的标题设置为静态标题,并将文本设置为:

    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
            ?>