Как отключить переход пагинатора комментариев на последнюю страницу?

Аватар пользователя Toshiro Toshiro 4 октября 2012 в 13:42

Воспользовался вот этим уроком чтобы реверснуть порядок вывода комментариев, и добавлять новый комментарий наверх:

http://drupalace.ru/lesson/kak-pomenyat-napravlenie-spiska-kommentariev-...

Однако, когда включил пагинатор - выяснилось, что при добавлении комментария пагинатор всеравно переключается на последнюю страницу, несмотря на то что коммент добавляется в начало первой.

Не могу понять - как это отключить или изменить переход на 1-ую страницу.

0 Thanks

Комментарии

Аватар пользователя Toshiro Toshiro 4 октября 2012 в 14:22

Случайным образом сам разобрался.

Посто добавить в mytheme_form_comment_form_alter строчку - $form['#submit'][] = 'mytheme_comment_form_submit';

и соответственно функцию:

function mytheme_comment_form_submit(&$form, &$form_state)
{
$form_state['redirect'] = 'comments';
}

Аватар пользователя Faceless Faceless 4 октября 2012 в 19:32
"Toshiro" wrote:

при добавлении комментария пагинатор всеравно переключается на последнюю страницу

Счастливый человек, одной страницы для комментариев не хватает :)

Аватар пользователя romsn123 romsn123 21 октября 2012 в 16:17

добавил эти функции в модуль и... ничего не получилось

2Toshiro можно подробнее??

Аватар пользователя Faceless Faceless 22 октября 2012 в 14:47
"romsn123" wrote:

добавил эти функции в модуль и... ничего не получилось

2Toshiro можно подробнее??

в template.php вашей темы прописываете функции, которые указал 2Toshiro и радуетесь, а именно следующий код

<?php
function ИМЯ_ВАШЕЙ_ТЕМЫ_form_comment_form_alter{
$form['#submit'][] = 'mytheme_comment_form_submit';
}

function 

ИМЯ_ВАШЕЙ_ТЕМЫ_comment_form_submit(&$form, &$form_state)
{
$form_state['redirect'] = 'comments';
}
?>

ИМЯ_ВАШЕЙ_ТЕМЫ меняете на свое, сбрасываете кэш и проверяете работоспособность кода.

Аватар пользователя romsn123 romsn123 27 октября 2012 в 11:20

Собственно добавил все-таки, только не в template, а в модуль. Но все равно спасибо.

<?php
function имя_темы_comment_form_submit(&$form, &$form_state) {
  unset (
$form_state['redirect'][1]['query']); 
}
?>

Так правильнее будет. При этом удалится только ссылка ?page= из строки URL и ссылка будет вести на первую страницу к новому комментарию

Кто может помочь теперь с отображением 'Has new content' во вьюзах Advanced_Forum. Интересует не подмена значений во вьюзе, а опять же решение с помощью модуля. Нашел в advanced_forum.module такую функцию function advanced_forum_first_new_post_link($node, $comment_count), но изменения в ней ни к чему не приводят. Что же отвечает за вывод ссылки 'Has new content'

Аватар пользователя mozh mozh 7 августа 2015 в 15:03

инфа атуальная?
ajax все равно добавляет в конец

<?phpfunction firji_ajax_render_alter(&$commands) {
  foreach (
$commands as $key => $command) {
    
$method = isset($command['method']) ? $command['method'] : FALSE;
    
$selector = isset($command['selector']) ? $command['selector'] : FALSE;
    if (
$method == 'append' && $selector == '#comment-wrapper') {
      
$commands[$key]['method'] = 'prepend';
    }
  }
}
?>

добавляю и вижу белый экран

<?php
function firji_form_comment_form_alter{
    
$form['#submit'][] = 'firji_comment_form_submit';
}

function 

firji_comment_form_submit(&$form, &$form_state){
    
$form_state['redirect'] = 'comments';
}
?>

а все потому что

"Faceless" wrote:

function ИМЯ_ВАШЕЙ_ТЕМЫ_form_comment_form_alter{

тут явно не хватает списка параметров функции
нужно так
ТЕМА_form_comment_form_alter(&$form, &$form_state) {
// Form alter here
};

Но как быть с аяксом

UPDATE!
В общем начал копаться в модуле Ajax comments и увидел там строку
// Check sort by comment_goodness.
там шла проверка переменной, но самой переменно установки не было, задав в гугл получил модуль https://www.drupal.org/project/comment_goodness
Этот модуль певернет комменты, выведет форму вверх и решит проблему с пейджером комментов. Настраивается в Типе материала.
остается вопрос по ajax переключению пейджера, либо подгрузке комментов