Drupal → Добавляем контекстные ссылки для комментариев
В семёрке контекстные ссылки (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']); }
Не забываем сбросить кэш.
Комментарии
скрытие ссылок через template.php не работает в bartik.
А вообще можно спрятать и через comment.tpl.php строчкой hide($content['links']); и смотреть что бы не было строчки print render($content['links']);
Заметил что они работают только для админа. Хотя Contextual links и редактирование комментариев для пользователей включено. Какие ещё разрешения влияют на контекстные ссылки?
admin/people/permissions/list#module-contextual
Если бы было всё так просто, я бы не спрашивал ))
Дело в том, что работать будет это только для тех групп, которым разрешено полное управление всеми комментариями. Если же пользователю разрешено только редактирование своего комментария, то контекстные ссылки не появятся.
Оставить комментарий