array( 'type' => 'system', 'description' => t('Execute arbitrary PHP script'), 'configurable' => TRUE, 'hooks' => array('any' => TRUE), )); } function views_bulk_operations_script_action(&$object, $context) { if (!module_exists('actions_permissions') && !user_access('administer site configuration')) { global $user; $msg = 'An attempt to execute arbitrary PHP script action by user %user was blocked because of lack of permission.'; $arg = array('%user' => $user->name, '!uid' => $user->uid); drupal_set_message(t($msg, $arg), 'error', FALSE); watchdog('actions', $msg, $arg, WATCHDOG_ERROR); return; } @eval($context['script']); } function views_bulk_operations_script_action_form($context) { $form['script'] = array( '#type' => 'textarea', '#title' => t('PHP script'), '#description' => t('Type the PHP snippet that will run upon execution of this action. You can use variables &$object and $context in your snippet. Note that it is up to the script to save the object once it\'s done modifying it. Do NOT enclose the script within a <?php> tag.'), '#default_value' => @$context['script'], ); return $form; } function views_bulk_operations_script_action_validate($form, $form_state) { } function views_bulk_operations_script_action_submit($form, $form_state) { return array( 'script' => $form_state['values']['script'], ); }