Как отключить кеширование для комментариев

Главные вкладки

Аватар пользователя kalugin kalugin 9 января 2009 в 18:13

Проблема: сайт на 5 друпале. Комментарии разрешены для анонимных юзеров. При отправке комментария автор не видит его опубликованным. Это связано с тем, что страница для анонимов кешируется и свой комментарий гость может увидеть только по истечении времени жизни кеша. Это приводит к тому, что пользователи постят один и тот же комментарий по нескольку раз.

Отключать кеширование полностью - не выход. Можно ли отключить кеширование комментариев?

Комментарии

Аватар пользователя kalugin kalugin 9 января 2009 в 20:46

UPD. Разобрался. огромное спасибо за ссылку. Если кому еще пригодится, то расскажу как это делается:

в файле comment.module ( /modules/comment/comment.module ) в самом конце вставляем следующий код:

//начало кода

function custom_comment ( $a1 , $op ) {
switch ( $op ) {
case 'insert' :
case 'update' :
$nid = $a1 [ 'nid' ];
break;
case 'unpublish' :
case 'delete' :
$nid = $a1 -> nid ;
break;
}
if ( $nid ) {
// retrieve the absolute url for the node
$url = url ( 'node/' . $nid , NULL , NULL , TRUE );
// delete cache entries for that url
cache_clear_all ( $url , 'cache_page' );
}
}

//конец кода

Сохраняем файл. Все работает.

Аватар пользователя kalugin kalugin 9 января 2009 в 21:36

Обнаружилась следующая проблема: если юзер использует любой из разрешенных тегов Filtered HTML - хук не работает. Кто может подсказать как решить прблему?

Аватар пользователя Mojo Mojo 9 января 2009 в 23:24

ТС, попробуйте в настройках отключить время жизни кеша (не ставить совсем), при этом кеш должен обнуляться при добавлении каждого комментария.

Аватар пользователя Nikit Nikit 10 января 2009 в 4:21

в общем вы неправильно сделали, это хук, и ядреный модуль лучше не трогать, к тому же, то что вы добавили не должно было сработать Smile
создайте простой модуль, впихните туда эти строчки.
например, назвали модуль mymod, тогда название функии будет иметь вид: mymod_comment.