Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
eaf21849
Commit
eaf21849
authored
Aug 02, 2009
by
Dries Buytaert
Browse files
- Accidentically committed two patches at once. Rolled back one of them. Sorry.
parent
065346b3
Changes
2
Hide whitespace changes
Inline
Side-by-side
modules/comment/comment.module
View file @
eaf21849
...
...
@@ -822,56 +822,9 @@ function comment_build_content($comment, $build_mode = 'full') {
$comment->content += field_attach_view('comment', $comment, $build_mode);
if (empty($comment->in_preview)) {
$links
=
array
();
$node
=
node_load
(
$comment
->
nid
);
if
(
$node
->
comment
==
COMMENT_NODE_OPEN
)
{
if
(
user_access
(
'administer comments'
)
&&
user_access
(
'post comments'
))
{
$links
[
'comment_delete'
]
=
array
(
'title'
=>
t
(
'delete'
),
'href'
=>
"comment/delete/
$comment->cid
"
,
'html'
=>
TRUE
,
);
$links
[
'comment_edit'
]
=
array
(
'title'
=>
t
(
'edit'
),
'href'
=>
"comment/edit/
$comment->cid
"
,
'html'
=>
TRUE
,
);
$links
[
'comment_reply'
]
=
array
(
'title'
=>
t
(
'reply'
),
'href'
=>
"comment/reply/
$comment->nid
/
$comment->cid
"
,
'html'
=>
TRUE
,
);
if
(
$comment
->
status
==
COMMENT_NOT_PUBLISHED
)
{
$links
[
'comment_approve'
]
=
array
(
'title'
=>
t
(
'approve'
),
'href'
=>
"comment/approve/
$comment->cid
"
,
'html'
=>
TRUE
,
);
}
}
elseif
(
user_access
(
'post comments'
))
{
if
(
comment_access
(
'edit'
,
$comment
))
{
$links
[
'comment_edit'
]
=
array
(
'title'
=>
t
(
'edit'
),
'href'
=>
"comment/edit/
$comment->cid
"
,
'html'
=>
TRUE
,
);
}
$links
[
'comment_reply'
]
=
array
(
'title'
=>
t
(
'reply'
),
'href'
=>
"comment/reply/
$comment->nid
/
$comment->cid
"
,
'html'
=>
TRUE
,
);
}
else
{
$links
[
'comment_forbidden'
][
'title'
]
=
theme
(
'comment_post_forbidden'
,
$node
);
$links
[
'comment_forbidden'
][
'html'
]
=
TRUE
;
}
}
$comment->content['links']['comment'] = array(
'#theme' => 'links',
'#links'
=>
$links
,
'#links' =>
comment_links($comment)
,
'#attributes' => array('class' => 'links inline'),
);
}
...
...
@@ -1370,6 +1323,80 @@ function comment_delete_multiple($cids) {
}
}
/**
* Implement hook_link().
*/
function comment_link($type, $object, $build_mode) {
if ($type == 'comment') {
$links = comment_links($object, FALSE);
return $links;
}
}
/**
* Build command links for a comment (e.g.\ edit, reply, delete) with respect to the current user's access permissions.
*
* @param $comment
* The comment to which the links will be related.
* @return
* An associative array containing the links.
*/
function comment_links(&$comment) {
global $user;
$links = array();
$node = node_load($comment->nid);
if ($node->comment == COMMENT_NODE_OPEN) {
if (user_access('administer comments') && user_access('post comments')) {
$links['comment_delete'] = array(
'title' => t('delete'),
'href' => "comment/delete/$comment->cid",
'html' => TRUE,
);
$links['comment_edit'] = array(
'title' => t('edit'),
'href' => "comment/edit/$comment->cid",
'html' => TRUE,
);
$links['comment_reply'] = array(
'title' => t('reply'),
'href' => "comment/reply/$comment->nid/$comment->cid",
'html' => TRUE,
);
if ($comment->status == COMMENT_NOT_PUBLISHED) {
$links['comment_approve'] = array(
'title' => t('approve'),
'href' => "comment/approve/$comment->cid",
'html' => TRUE,
);
}
}
elseif (user_access('post comments')) {
if (comment_access('edit', $comment)) {
$links['comment_edit'] = array(
'title' => t('edit'),
'href' => "comment/edit/$comment->cid",
'html' => TRUE,
);
}
$links['comment_reply'] = array(
'title' => t('reply'),
'href' => "comment/reply/$comment->nid/$comment->cid",
'html' => TRUE,
);
}
else {
$node = node_load($comment->nid);
$links['comment_forbidden']['title'] = theme('comment_post_forbidden', $node);
$links['comment_forbidden']['html'] = TRUE;
}
}
return $links;
}
/**
* Comment operations. Offer different update operations depending on
* which comment administration page is being viewed.
...
...
modules/system/system.api.php
View file @
eaf21849
...
...
@@ -557,6 +557,25 @@ function hook_link($type, $object, $build_mode) {
return
$links
;
}
/**
* Perform alterations before links on a comment are rendered. One popular use of
* this hook is to modify/remove links from other modules. If you want to add a link
* to the links section of a node, use hook_link instead.
*
* @param $links
* Nested array of links for the node keyed by providing module.
* @param $node
* A node object that contains the links.
*/
function
hook_link_alter
(
array
&
$links
,
$node
)
{
foreach
(
$links
as
$module
=>
$link
)
{
if
(
strpos
(
$module
,
'taxonomy_term'
)
!==
FALSE
)
{
// Link back to the forum and not the taxonomy term page
$links
[
$module
][
'href'
]
=
str_replace
(
'taxonomy/term'
,
'forum'
,
$link
[
'href'
]);
}
}
}
/**
* Perform alterations profile items before they are rendered. You may omit/add/re-sort/re-categorize, etc.
*
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment