Index: fasttoggle.module =================================================================== RCS file: /cvs/drupal/contributions/modules/fasttoggle/Attic/fasttoggle.module,v retrieving revision 1.8.2.8 diff -u -r1.8.2.8 fasttoggle.module --- fasttoggle.module 8 Nov 2008 11:38:19 -0000 1.8.2.8 +++ fasttoggle.module 9 Dec 2008 04:47:20 -0000 @@ -402,3 +402,8 @@ return fasttoggle($options[$key][intval($data->$key)], 'node/'. $data->nid .'/toggle/'. $key, true, $key .'_'. $data->nid); } } + +function fasttoggle_views_api() { + return array('api' => 2, 'path' => drupal_get_path('module', 'fasttoggle') . '/views'); +} + Index: views/fasttoggle_handler_field_node_link_publish.inc =================================================================== RCS file: views/fasttoggle_handler_field_node_link_publish.inc diff -N views/fasttoggle_handler_field_node_link_publish.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/fasttoggle_handler_field_node_link_publish.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,31 @@ +additional_fields['uid'] = 'uid'; + $this->additional_fields['status'] = 'status'; + $this->additional_fields['type'] = 'type'; + $this->additional_fields['format'] = array('table' => 'node_revisions', 'field' => 'format'); + } + + function render($values) { + // ensure user has access to edit this node. + $node = new stdClass(); + $node->nid = $values->{$this->aliases['nid']}; + $node->uid = $values->{$this->aliases['uid']}; + $node->type = $values->{$this->aliases['type']}; + $node->format = $values->{$this->aliases['format']}; + $node->status = 1; // unpublished nodes ignore access control + if (!node_access('update', $node)) { + return; + } + + $realstatus = $values->{$this->aliases['status']}; + if ($realstatus == 1) { + return fasttoggle('unpublish it', 'node/'. $node->nid .'/toggle/status', true, 'status_'. $node->nid); + } + else { + return fasttoggle('publish it', 'node/'. $node->nid .'/toggle/status', true, 'status_'. $node->nid); + } + } +} Index: views/fasttoggle.views.inc =================================================================== RCS file: views/fasttoggle.views.inc diff -N views/fasttoggle.views.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views/fasttoggle.views.inc 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,35 @@ + array( + 'title' => t('Publish Node'), + 'help' => t('Provide a simple link to publish the node.'), + 'handler' => 'fasttoggle_handler_field_node_link_publish', + ), + ); + return $data; +} + +/** + * Field handler to present a link toggle status. + */ + +function fasttoggle_views_handlers() { + return array( + 'info' => array( + 'path' => drupal_get_path('module', 'fasttoggle') . '/views', + ), + 'handlers' => array( + // field handlers + 'fasttoggle_handler_field_node_link_publish' => array( + 'parent' => 'views_handler_field_node_link', + ), + ), + ); +}