Drupal 6从提交的表单中获取节点标题
我正在使用form_alter编辑内容时的提交功能。在我的自定义功能中,我希望用标题名称编辑屏幕上的自定义消息。我想我能做到这一点的方法如下Drupal 6从提交的表单中获取节点标题,drupal,drupal-6,drupal-modules,drupal-fapi,Drupal,Drupal 6,Drupal Modules,Drupal Fapi,我正在使用form_alter编辑内容时的提交功能。在我的自定义功能中,我希望用标题名称编辑屏幕上的自定义消息。我想我能做到这一点的方法如下 function mymodule_myfunction(&$form) { drupal_set_message(t('Some text ' . $form['#node']->title)); } 标题未连接到“某些文本” 我在表单中使用以下行调用我的函数: $form['#submit'][] = 'mymodule_myf
function mymodule_myfunction(&$form) {
drupal_set_message(t('Some text ' . $form['#node']->title));
}
标题未连接到“某些文本”
我在表单中使用以下行调用我的函数:
$form['#submit'][] = 'mymodule_myfunction';
尝试更改您的签名
function mymodule_myfunction(&$form) {
drupal_set_message(t('Some text ' . $form['#node']->title));
}
致:
还可以尝试安装devel模块,以便执行以下操作
dsm($form);
dsm($form_state);
看看你到底在处理什么
此外,如果您只想在创建“X”类型的新节点时给出一条消息,那么更好的方法是使用
它可能看起来像这样
function modulename_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'insert' && $node->type == 'my node type') {
drupal_set_message($node-title . ' is cool.');
}
}
尝试更改您的签名
function mymodule_myfunction(&$form) {
drupal_set_message(t('Some text ' . $form['#node']->title));
}
致:
还可以尝试安装devel模块,以便执行以下操作
dsm($form);
dsm($form_state);
看看你到底在处理什么
此外,如果您只想在创建“X”类型的新节点时给出一条消息,那么更好的方法是使用
它可能看起来像这样
function modulename_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'insert' && $node->type == 'my node type') {
drupal_set_message($node-title . ' is cool.');
}
}
建议使用dsm$FORM查看变量。未填充节点标题。可以在Post数组中找到它。下面这句话让我可以做我想做的事
drupal_set_message(t('Some Text '.$form['#post']['title']));
建议使用dsm$FORM查看变量。未填充节点标题。可以在Post数组中找到它。下面这句话让我可以做我想做的事
drupal_set_message(t('Some Text '.$form['#post']['title']));
所有提交函数都会获得两个传递给它们的参数:$form,这是对hook\u form\u alter等进行所有调整后的最终表单数组,以及$form\u state,其中包含提交的值,这些值已被清除并检查了范围。例如,如果选择框中有三项,则$form_state['values']中的数据已经确保该输入的值是三个合法值之一 一般来说,您不应该使用$form['post']——它不是获取值的公开方式的一部分,而对核心进行更新以处理FAPI的一些问题可能会破坏您的代码 试试这个:
function mymodule_myfunction($form, &$form_state) {
drupal_set_message(t('Some Message @title'),
array('@title' => $form_state['values']['title'])));
}
请注意该功能的正确使用-该功能的目的是允许其他用户翻译文本,因此通过使用“Some Message@title”,翻译人员可以更多地了解正在发生的事情。此外,通过t函数以这种方式输入的文本也会被输入,从而防止有人对输入进行恶意操作。所有提交函数都会向其传递两个参数:$form,这是对hook\u form\u alter等进行所有调整后的最终表单数组,和$form_状态,其中的其他值包含已提交的值,这些值已被清除并检查范围。例如,如果选择框中有三项,则$form_state['values']中的数据已经确保该输入的值是三个合法值之一 一般来说,您不应该使用$form['post']——它不是获取值的公开方式的一部分,而对核心进行更新以处理FAPI的一些问题可能会破坏您的代码 试试这个:
function mymodule_myfunction($form, &$form_state) {
drupal_set_message(t('Some Message @title'),
array('@title' => $form_state['values']['title'])));
}
请注意该功能的正确使用-该功能的目的是允许其他用户翻译文本,因此通过使用“Some Message@title”,翻译人员可以更多地了解正在发生的事情。此外,通过t函数以这种方式输入的文本也可以被输入,这样可以防止有人对输入进行恶意操作。drupal\u set\u messaget'PRISK Project'.$form->title;似乎不起作用。将更新我如何调用函数的问题。drupal_set_messaget'PRISK Project'.$form->title;似乎不起作用。将更新我如何调用函数的问题。请检查$form模块的实际外观。如果安装了devel模块,则可以执行类似于dsm$form的操作来查看该变量。请检查$form模块的实际外观。如果您安装了devel模块,您可以执行类似dsm$form的操作来查看该变量。这是对t函数的不当使用。有关使用@title占位符的详细信息,请参见上面John Fiala的回答。这是对t函数的不当使用。有关使用@title占位符的详细信息,请参见上面John Fiala的回答。使用@sign调用的是什么。我不是一个本地php开发人员,所以如果我知道正确的术语,我可以对这个主题做更多的阅读。好吧,检查一下我用上面的t函数制作的链接,它链接到t的api页面,它说我们称它们为占位符。使用@sign调用的是什么。我不是一个本地php开发人员,所以如果我知道正确的术语,我可以对这个主题做更多的阅读。好吧,检查一下我用上面的t函数制作的链接——链接到t的api页面,上面说我们称它们为占位符。