2010-08-20 57 views
0

我有一些问题,设置一个标记化的电子邮件来使用我在模块中创建的标记。我在标记化的电子邮件中使用这个[example-contact]。我在模块中实现了example_token_values()example_token_list(),并且我在模块中也创建了一个触发器。我的模块有一个窗体,用表单API创建,存储在一个自定义表中。当我查看所有可用的令牌时,我的令牌被列出,所以我知道example_token_list()正在工作,但当调用example_token_values()时,$ type不等于'example'。“Tokenized电子邮件行动”没有拿起我的标记

我需要从提交的表单中提取信息,并将它们显示在发出的标记化电子邮件中。我是否缺少功能?我创建的触发器正在工作并在表单提交时触发,并且Action发出电子邮件,问题在于令牌没有被表单的值取代。

是否有我需要实现的功能,将调用example_token_values("example",$form)

回答

1

hook_token_values()的实现可以使用任何值为$object;如果模块需要使用传递给它的一个函数的值$form,它可以使用它。

+0

如何在hook_token_values()中检索表单中的值?另外根据文档,我应该只在$ type =='example'时创建令牌。 $ type永远不会等于我的模块名称。 我想大问题是,Drupal如何知道为我的模块调用token_value? – 2010-08-22 20:29:19

+0

我在哪个函数中调用token_replace()或token_replace_multiple()?我需要表单的值才能进入发送Tokenized电子邮件操作。另外,我正在运行Token v。6.x-1.14 – 2010-08-24 14:11:16

+0

@MisterBigs:您可以在需要替换令牌时调用这些函数;问题是调用'token_replace()'的函数也应该可以访问表单值。如果函数是你需要替换的标记不是访问变量'$ form'的函数,那么你需要找到一种方法将'$ form'的值传递给调用'token_replace() '(或'token_replace_multiple()')。 – kiamlaluno 2010-08-24 15:15:14

相关问题