目标:
我有一个视图,在全视图中显示多个节点,包括注释。我想将使用我的视图发表评论的用户重定向回视图而不是文章。
同时,如果用户在节点上发表评论并且不使用“我的视图”,则不应重定向。换句话说,重定向仅在我的视图中使用。
我的下面的代码效果很好但不幸的是所有网站的评论表单都开始重定向。我只想重定向在路径/ newvc上使用我的面板视图的用户进行重定向。
我的代码:
function customchatter_form_comment_form_alter(&$form, &$form_state, $form_id){
$form['#submit'][] = 'submitForm';
}
function submitForm($form, &$form_state) {
$form_state['redirect'] = 'newvc'; // need to redirect
}
我的逻辑问题:
我似乎无法获得允许我隔离来自我观点的评论的逻辑。
我尝试使用下面的代码,但它不能用作所有注释,即使我视图中的注释遵循相同的路径逻辑。
$url_components = explode('/', request_uri());
if ($url_components[1]=='comment' && $url_components[2]=='reply') {
// no use as this still targets all the comments.
}
答案 0 :(得分:0)
request_uri()在这里肯定没有任何意义,因为它返回了为了访问这个页面而给出的URI,无论你从哪个页面来看它都是一样的。
您需要分析HTTP_REFERER或从视图添加?destination = path_to_the_view到您的链接 - 提交表单后,它将被重定向到给定路径。
答案 1 :(得分:0)
我使用下面的代码解决了它。 $ _POST ['submissionpath']保存原始页面的路径。
function submitForm($form, &$form_state) {
print $form;
$form_state['redirect'] =$_POST['submissionpath'];
}