workbench_moderation_test.module in Workbench Moderation 7
Test module for Workbench Moderation.
File
tests/workbench_moderation_test.moduleView source
<?php
/**
* @file
* Test module for Workbench Moderation.
*/
/**
* Implements hook_menu().
*/
function workbench_moderation_test_menu() {
return array(
'workbench_moderation_test/%node' => array(
'title' => 'Publish a node',
'page callback' => 'workbench_moderation_test_update_node',
'page arguments' => array(
1,
),
'access arguments' => array(
'bypass workbench moderation',
),
),
);
}
/**
* Implements hook_menu_alter().
*/
function workbench_moderation_test_menu_alter(&$items) {
// This menu altering replicates what restws_menu_alter() does.
// @see https://www.drupal.org/node/1838640
array_unshift($items['node/%node']['page arguments'], 'additional parameter', $items['node/%node']['page callback']);
$items['node/%node']['page callback'] = 'workbench_moderation_test_menu_node_callback';
}
function workbench_moderation_test_menu_node_callback($ignored_parameter, $page_callback) {
$args = func_get_args();
return call_user_func_array($page_callback, array_slice($args, 2));
}
/**
* Page callback. Publishes, unpublishes or resaves the given node.
*
* @param object $node
* The node to publish, unpublish or resave.
* @param string $action
* Optionally the action to take, either 'publish' or 'unpublish'. If omitted
* the node will be resaved.
*/
function workbench_moderation_test_update_node($node, $action = NULL) {
if (!empty($action)) {
$node->status = $action == 'publish' ? NODE_PUBLISHED : NODE_NOT_PUBLISHED;
}
node_save($node);
return array(
'#markup' => t('Node status: @status', array(
'@status' => $node->status ? t('published') : t('unpublished'),
)),
);
}
Functions
Name | Description |
---|---|
workbench_moderation_test_menu | Implements hook_menu(). |
workbench_moderation_test_menu_alter | Implements hook_menu_alter(). |
workbench_moderation_test_menu_node_callback | |
workbench_moderation_test_update_node | Page callback. Publishes, unpublishes or resaves the given node. |