В семёрке контекстные ссылки (contextual links) есть у материалов и блоков, но отчего-то их нет у комментариев.
Код ниже добавляет к каждому комментарию ссылку на редактирование и удаление:
/**
* Implements hook_menu_alter().
*/
function mymodule_menu_alter(&$items) {
$items['comment/%comment/edit']['context'] = MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE;
$items['comment/%/approve']['context'] = MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE;
$items['comment/%/delete']['context'] = MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE;
}
/**
* Implements hook_comment_view().
*/
function mymodule_comment_view($comment, $view_mode, $langcode) {
if ($view_mode == 'full') {
$comment->content['#contextual_links']['comment'] = array('comment', array($comment->cid));
}
}
Обычные ссылки за ненадобностью можно скрыть — в template.php
добавить:
function THEMENAME_preprocess_comment(&$vars) {
hide($vars['content']['links']);
}
Не забываем сбросить кэш.
Написанное актуально для
Drupal 7
Похожие записи
- Как добавить базовое поле сущности (сохраняем User Agent комментатора)
- Уведомление администратора о новых комментариях
- Добавляем заголовок "Комментарии" к блоку с комментариями
- Уведомление администратора о новых комментариях (6)
- Прячем форму комментирования и показываем её только по клику на ссылке "Отправить комментарий"
Комментарии
скрытие ссылок через template.php не работает в bartik.
А вообще можно спрятать и через comment.tpl.php строчкой hide($content['links']); и смотреть что бы не было строчки print render($content['links']);
Заметил что они работают только для админа. Хотя Contextual links и редактирование комментариев для пользователей включено. Какие ещё разрешения влияют на контекстные ссылки?
admin/people/permissions/list#module-contextual
Если бы было всё так просто, я бы не спрашивал ))
Дело в том, что работать будет это только для тех групп, которым разрешено полное управление всеми комментариями. Если же пользователю разрешено только редактирование своего комментария, то контекстные ссылки не появятся.
Добавить комментарий