simplenews_content_selection-8.x-1.x-dev/simplenews_content_selection_views/scs_views.module

simplenews_content_selection_views/scs_views.module
<?php

/**
 * @file
 * Integrate Simplenews Content Selection with views and views bulk operations
 */

/**
 * Implementation of hook_action_info().
 */
function scs_views_action_info() {
  return array(
    'scs_views_create_newsletter_action' => array(
      'type' => 'node',
      'label' => t('Create newsletter'),
      'configurable' => TRUE,
      'behavior' => array('scs_views_create_newsletter'),
    ),
  );
}

/**
 * Configuration form for tis action. Not used as form, but used as a step to go to the node sorter.
 */
function scs_views_create_newsletter_action_form($context, $form_state) {
  // Emulate the nodes submitted from admin/content/node
  $form_state['values']['nodes'] = $form_state['selection'];

  drupal_set_title(t('Sort nodes'));

  $form = array(
    '#submit' => array('scs_node_sort_submit'),
  );
  return scs_node_sort_form($form, $form_state);
}

/**
 * Get the selected nodes and create a newsletter from it
 */
function scs_views_create_newsletter_action_submit($form, $form_state) {
  scs_node_sort_submit($form, $form_state);
}

/**
 * Implements hook_form_alter().
 */
function scs_views_form_alter(&$form, &$form_state) {
  if (isset($form_state['step']) && $form_state['step'] == 'views_bulk_operations_config_form') {
    $operation = $form_state['operation'];
    if ($operation->id() == 'action::scs_views_create_newsletter_action') {
      // Hack into VBO process to redirect to the simplenews node form
      $form['#action'] = url('node/add/' . variable_get('scs_node_type', 'simplenews'));
    }
  }
}

/**
 * Implements hook_views_api().
 */
function scs_views_views_api() {
  return array(
    'api' => 3,
  );
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc