You are here

function vud_node_handler_field_widget::render in Vote Up/Down 7

Same name and namespace in other branches
  1. 6.3 vud_node/views/vud_node_handler_field_widget.inc \vud_node_handler_field_widget::render()
  2. 6.2 vud_node/views/vud_node_handler_field_widget.inc \vud_node_handler_field_widget::render()

Render the field.

Parameters

array $values: The values retrieved from the database.

Overrides views_handler_field::render

File

vud_node/views/vud_node_handler_field_widget.inc, line 27
Provide a handler for Vote Up/down widget field for nodes.

Class

vud_node_handler_field_widget
A handler that provides a Vote Up/Down widget field for nodes.

Code

function render($values) {
  $widget = '';
  if (($can_edit = user_access('use vote up/down on nodes')) || user_access('view vote up/down count on nodes')) {
    $nid = $values->nid;
    $type = db_query("SELECT type FROM {node} WHERE nid = :nid", array(
      ':nid' => $nid,
    ))
      ->fetchField();
    $valid_type = in_array($type, variable_get('vud_node_types', array()), TRUE);
    if ($valid_type) {
      $tag = variable_get('vud_tag', 'vote');
      $widget_type = variable_get('vud_node_widget', 'plain');
      $widget_message_code = !$can_edit ? VUD_WIDGET_MESSAGE_DENIED : VUD_WIDGET_MESSAGE_ERROR;
      $variables = array(
        'entity_id' => $nid,
        'type' => 'node',
        'tag' => $tag,
        'widget_theme' => $widget_type,
        'readonly' => !$can_edit,
        'widget_message_code' => $widget_message_code,
      );
      $widget = theme('vud_widget', $variables);
    }
  }
  return $widget;
}