function flag_clear_handler_field_unflag::render in Flag clear 7
Render the field.
Parameters
array $values: The values retrieved from the database.
Overrides views_handler_field::render
File
- includes/
views/ flag_clear_handler_field_unflag.inc, line 144 - Contains the flag clearing field handler.
Class
- flag_clear_handler_field_unflag
- Views field handler for the Flag clearing links.
Code
function render($values) {
if (!($flag = $this
->get_flag())) {
return t('Missing flag');
// get_flag() itself will print a more detailed message.
}
$types = array(
'cid' => 'comment',
'nid' => 'node',
'uid' => 'user',
);
$entity_id = $values->{$this->aliases['entity_id']};
$is_flagged = $values->{$this->aliases['is_flagged']};
if (empty($this->flag_applies[$entity_id])) {
// Flag does not apply to this content.
return;
}
if (isset($values->users_flagging_uid)) {
$unflag_user = $values->users_flagging_uid;
}
elseif (isset($values->flagging_node_uid)) {
$unflag_user = $values->flagging_node_uid;
}
elseif (isset($values->flagging_comment_uid)) {
$unflag_user = $values->flagging_comment_uid;
}
elseif (isset($values->flagging_user_uid)) {
$unflag_user = $values->flagging_user_uid;
}
else {
return t('Unflag link requires username or uid field in view output.');
}
$token_key = 'flag_clear:' . $entity_id;
$token = drupal_get_token($token_key);
$current_path = current_path();
$unflag_text = $this->options['link_text'];
$unflag_query = array(
'destination' => $current_path,
);
$unflag_link = l($unflag_text, 'unflag/user/' . $flag->name . '/' . $entity_id . '/' . $unflag_user . '/' . $token, array(
'query' => $unflag_query,
));
return $unflag_link;
}