You are here

function publish_button_views_handler_node_link::render_link in Publish button 7

Overrides views_handler_field_node_link::render_link

1 call to publish_button_views_handler_node_link::render_link()
publish_button_views_handler_node_link::render in ./publish_button_views_handler_node_link.inc
Render the field.

File

./publish_button_views_handler_node_link.inc, line 49
View handler for the module.

Class

publish_button_views_handler_node_link
Extends the node link handler.

Code

function render_link($data, $values) {

  // Load the node to get the type, better programming needed...
  $node = node_load($data);
  if (_publish_button_publish_permissions($node->type) == TRUE && _publish_button_unpublish_permissions($node->type) == TRUE) {
    if ($values->node_status) {
      $status = 'unpublish';
    }
    if (!$values->node_status) {
      $status = 'publish';
    }
    if (isset($this->options['alter'])) {
      $csrf_token = drupal_get_token('publish_button_' . $data);
      $this->options['alter']['make_link'] = TRUE;
      $this->options['alter']['path'] = 'publish_button/' . $data . '/' . $status;
      $this->options['alter']['query'] = drupal_get_destination();
      $this->options['alter']['query']['csrf_token'] = $csrf_token;
      $text = empty($this->options[$status]) ? t($status) : t($this->options[$status]);
      $publish_button = array(
        '#type' => 'button',
        '#access' => TRUE,
        '#value' => $text,
        '#weight' => '30',
      );
      return $publish_button;
    }
  }
}