You are here

function _scs_create_newsletter in Simplenews Content Selection 6.2

Same name and namespace in other branches
  1. 6 scs.module \_scs_create_newsletter()
  2. 7 scs.module \_scs_create_newsletter()

Newsletter creator function

2 calls to _scs_create_newsletter()
scs_node_selection_submit in ./scs.pages.inc
scs_sort_nodes_submit in ./scs.pages.inc
Submit function of the node sorter page

File

./scs.module, line 228
Select Drupal content to create a newsletter

Code

function _scs_create_newsletter($options) {
  global $user, $custom_theme;
  if ($theme = variable_get('theme_default', FALSE)) {
    $custom_theme = $theme;
    init_theme();
  }

  //Title
  if ($options['title'] == '') {
    $title = variable_get('scs_default_title', t('Please edit the title of this newsletter'));
  }

  // Load node information
  foreach ($options['nodes'] as $region => $nodes) {
    foreach ($nodes as $node) {
      $complete_nodes[$region][] = node_load(array(
        'nid' => $node,
      ));
    }
  }
  ksort($complete_nodes);

  // Create the body of the newsletter
  $themeoptions = array(
    'nodes' => $complete_nodes,
    'toc' => $options['toc'],
    'type' => $options['newsletter_type'],
  );
  $body = theme('scs_newsletter_output', $themeoptions);
  $newsletter = new StdClass();
  $newsletter->type = $options['content_type'];
  $newsletter->uid = $user->uid;
  $newsletter->title = $options['title'];
  $newsletter->body = $body;
  $newsletter->teaser = node_teaser($body);
  $newsletter->filter = variable_get('filter_default_format', 1);
  $newsletter->status = variable_get('scs_publish_default', 1);
  $newsletter->revision = 1;
  $newsletter->promote = 0;
  $newsletter->comment = 0;
  $newsletter->created = time();
  $newsletter->changed = time();
  $newsletter->simplenews['s_format'] = strtolower(variable_get('scs_format', 'plain'));
  $newsletter->priority = 0;
  $newsletter->receipt = 0;

  //Add a hook to make it possible to add default settings to the created newsletter, all selected options during the process are available
  foreach (module_implements('scs_create_newsletter') as $name) {
    $function = $name . '_scs_create_newsletter';
    $function($newsletter, $options);
  }
  node_save($newsletter);
  drupal_goto('node/' . $newsletter->nid . '/edit');
}