【发布时间】:2012-10-10 11:08:36
【问题描述】:
在我的自定义模块中,我想添加 cmets 功能。我已经尝试了几件事,但到目前为止还没有锻炼。
// render comments form
$output .= theme('my_module_front_page');
$comment = new stdClass;
$comment->nid = $node_good_practice->nid;
$output .= render(drupal_get_form('comment_form', $comment));
return $output;
上面的代码将 cmets 表单放到我的节点页面中。
但是当我填写评论表单并提交时,它会将我重定向到这个页面:comment/reply/node id,然后我必须重新填写我的评论并且评论没有保存。
我想提交并留在同一页面而不是重定向。并且评论提交后必须保存。
现在,评论表单出现在我的节点页面(自定义模块模板)上。我输入评论并单击“保存”。
我被发送到/comment/reply/<node_id>,但所有评论字段都是空的。评论也没有保存。
我希望发生的是:
- 在节点页面上有评论表单
- 输入评论
- 点击“保存”
- Drupal 保存评论,并将我重定向回我正在查看的节点/页面。
我尝试过的事情
-
添加重定向
$form['#redirect'] = "/success-stories/".$node_good_practice->good_practice_name."/".$node_good_practice->nid;它没有改变任何东西。
-
改变动作
$form['#action'] = "/success-stories/".$node_good_practice->good_practice_name."/".$node_good_practice->nid;它将我重定向到
node/node_id/#comment-17 -
使用
drupal_build_form()$info->nid = $node_good_practice->nid; $comment['build_info']['args'][0] = $info; $comment['redirect'] = "http://www.google.nl"; $output .= render(drupal_build_form('comment_form', $comment));表单正在显示,但没有重定向;它被发送到
comment/reply/node_id。
【问题讨论】:
-
您说代码有效,然后描述它无法保存您的评论。您能否更清楚地说明哪些有效,哪些无效?
-
我编辑了问题,这更清楚了吗?
-
除非您不引用特定的 PHP 版本,例如 PHP-5.3(我认为这里不是这种情况),否则只需标记为 PHP,而不是 PHP5。谢谢!
-
可能与this有关
-
@Clive - 感谢链接。我尝试了链接,但没有帮助。可能是因为该链接描述了模块中自行创建的表单,而这不适用于我正在使用的核心 cmets 表单。