Здравствуйте! Подскажите,с помощью какой функции можно добавить новое действие к комментариям (помимо действий "удалить" и "изменить")? Например, в 6 версии друпала это можно сделать хуком hook_link. А как сделать в 7 версии?
комменты хранят данные в своей таблице. Имеют свои хуки можно посмотреть что там в самом модуле. + все хуки друпала..И своя логика на своих функциях..
Для утверждения комментариев идите на страницу управления комментариев смотрите адрес меню..Потом ищите callback функцию для этой страницы,потом пишите все что нужно..копируйте ее в свой модуль вызвайте и тд...Примерно так делается таблица редактирования нод что в модуле node
function comments_publish_ajax_callback($comment, $js){
switch($js){
// If no js support case'nojs': //code break;
// If js support default: //В зависимости от $comment->status реализуем публикацию/депубликацию //В li.comment-publish меняем ссылку на соответствующую //Вообщем то заново изобретаем flag и rules } }
function comments_publish_ajax_callback($comment, $js){
switch($js){
// If no js support case'nojs': //code break;
// If js support default: //В зависимости от $comment->status реализуем публикацию/депубликацию //В li.comment-publish меняем ссылку на соответствующую //Вообщем то заново изобретаем flag и rules } }
Поясните, пожалуйста, если не трудно последнюю функцию
Комментарии
Если вам нужно просто иметь свою ссылку в управляющих ссылках комментария, то можно в шаблоне comment.tpl.php, перед выводом ссылок:
$content['links']['#links']['custom_linc'] = array(
'title' =>'your event',
'href' =>'custom_url',
'html' =>'true',
);
Не знаю как это будет увязываться с правами пользователей, но если что-то простое, то можно и так
Это нужно сделать в отдельном модуле, своем собственном
Я хочу сделать подобие вот такого: http://xandeadx.ru/blog/drupal/25. Но нужна функция, с помощью которой это можно реализовать в 7 друпале
Обычно в таких ситуациях смотрите страницу документации старого хука:
https://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/...
Очень часто в комментариях кто-то обязательно пишет решение для новой версии Drupal. Вот и здесь так же:
https://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/...
комменты хранят данные в своей таблице. Имеют свои хуки можно посмотреть что там в самом модуле. + все хуки друпала..И своя логика на своих функциях..
Для утверждения комментариев идите на страницу управления комментариев смотрите адрес меню..Потом ищите callback функцию для этой страницы,потом пишите все что нужно..копируйте ее в свой модуль вызвайте и тд...Примерно так делается таблица редактирования нод что в модуле node
hook_comment_view + hook_menu
вот добавление ссылки
if (user_access('administer comments')) {
switch ($comment->status) {
case 0:
$comment->content['links']['comment']['#links']['comment-publish'] = array(
'title' => 'Опубликовать',
'href' => 'comment/publish/' . $comment->cid . '/nojs',
'html' => TRUE,
'attributes' => array(
'class' => array('use-ajax'),
),
);
break;
case 1:
$comment->content['links']['comment']['#links']['comment-publish'] = array(
'title' => 'Снять с публикации',
'href' => 'comment/publish/' . $comment->cid . '/nojs',
'html' => TRUE,
'attributes' => array(
'class' => array('use-ajax'),
),
);
break;
}
drupal_add_library('system', 'drupal.ajax');
}
}
ну и дальше
$items['comment/publish/%comment/%'] = array(
'page callback' => 'comments_publish_ajax_callback',
'page arguments' => array(2, 3),
'access callback' => TRUE,
'delivery callback' => 'ajax_deliver',
'theme callback' => 'ajax_base_page_theme',
'type' => MENU_CALLBACK,
);
return $items;
}
callback
switch($js) {
// If no js support
case 'nojs':
//code
break;
// If js support
default:
//В зависимости от $comment->status реализуем публикацию/депубликацию
//В li.comment-publish меняем ссылку на соответствующую
//Вообщем то заново изобретаем flag и rules
}
}
Спасибо большое, что откликнулись. Буду пытаться
Поясните, пожалуйста, если не трудно последнюю функцию