Воспользовался вот этим уроком чтобы реверснуть порядок вывода комментариев, и добавлять новый комментарий наверх:
http://drupalace.ru/lesson/kak-pomenyat-napravlenie-spiska-kommentariev-...
Однако, когда включил пагинатор - выяснилось, что при добавлении комментария пагинатор всеравно переключается на последнюю страницу, несмотря на то что коммент добавляется в начало первой.
Не могу понять - как это отключить или изменить переход на 1-ую страницу.
Комментарии
Случайным образом сам разобрался.
Посто добавить в mytheme_form_comment_form_alter строчку - $form['#submit'][] = 'mytheme_comment_form_submit';
и соответственно функцию:
function mytheme_comment_form_submit(&$form, &$form_state)
{
$form_state['redirect'] = 'comments';
}
Счастливый человек, одной страницы для комментариев не хватает
добавил эти функции в модуль и... ничего не получилось
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';
}
?>
ИМЯ_ВАШЕЙ_ТЕМЫ меняете на свое, сбрасываете кэш и проверяете работоспособность кода.
Собственно добавил все-таки, только не в 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'
инфа атуальная?
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';
}?>
а все потому что
тут явно не хватает списка параметров функции
нужно так
ТЕМА_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 переключению пейджера, либо подгрузке комментов