You are here

function subscriptions_mail_mail_edit_list_form_submit in Subscriptions 6

1 string reference to 'subscriptions_mail_mail_edit_list_form_submit'
_subscriptions_mail_form_mail_edit_list_form_alter in ./subscriptions_mail.mail_edit_D5.inc
Implementation of hook_form_alter().

File

./subscriptions_mail.mail_edit_D5.inc, line 71
Subscriptions module mail gateway helper functions for upgrading mail_edit D5 to D6.

Code

function subscriptions_mail_mail_edit_list_form_submit($form, &$form_state) {
  $languages = isset($form_state['values']['language']) ? array(
    $form_state['values']['language'],
  ) : $form_state['values']['languages'];
  switch ($form_state['values']['op']) {
    case $form_state['values']['remove']:
      if (db_table_exists('subscriptions_mail_edit')) {
        db_query("DELETE FROM {subscriptions_mail_edit}");
      }
      if (db_table_exists('mail_edit_d5')) {
        db_query("DELETE FROM {mail_edit_d5} WHERE mailkey LIKE 'subscriptions-%'");
      }
      break;
    case $form_state['values']['import']:

      // Import digest records:
      $old_mailkey = 'subscriptions-digest';
      $new_mailkey = 'subscriptions_mail_digest';
      $result = db_query("SELECT * FROM {mail_edit_registry} WHERE id = '%s'", $new_mailkey);
      if ($registry = db_fetch_array($result)) {
        if (_subscriptions_mail_mail_edit_import($old_mailkey, $new_mailkey, $registry['description'], $languages)) {
          $digest_item = db_result(db_query("SELECT item_body FROM {subscriptions_mail_edit} WHERE mailkey = '%s'", $old_mailkey . '-item'));
          $digest_separator = db_result(db_query("SELECT item_body FROM {subscriptions_mail_edit} WHERE mailkey = '%s'", $old_mailkey . '-separator'));
          $digest_comment = db_result(db_query("SELECT item_body FROM {subscriptions_mail_edit} WHERE mailkey = '%s'", $old_mailkey . '-item-comment'));
          foreach ($languages as $language) {
            db_query("INSERT INTO {mail_edit} (description, subject, id, body, language) VALUES ('%s', '%s', '%s', '%s', '%s')", '', $digest_separator, $new_mailkey . '+item', $digest_item, $language);
            db_query("INSERT INTO {mail_edit} (description, subject, id, body, language) VALUES ('%s', '%s', '%s', '%s', '%s')", '', '', $new_mailkey . '+comment', $digest_comment, $language);
          }
          db_query("DELETE FROM {subscriptions_mail_edit} WHERE mailkey LIKE '%s'", $new_mailkey . '-%');
        }
      }

      // Import node/nid (+ comment) records:
      $result = db_query("SELECT * FROM {mail_edit_registry} WHERE id = '%s'", $new_mailkey);
      if ($registry = db_fetch_array($result)) {
        if (_subscriptions_mail_mail_edit_import('subscriptions-node-nid', 'subscriptions_content_node-nid', $registry['description'], $languages)) {
          $comment_item = db_result(db_query("SELECT item_body FROM {subscriptions_mail_edit} WHERE mailkey = 'subscriptions-comment-item'"));
          $comment_separator = db_result(db_query("SELECT item_body FROM {subscriptions_mail_edit} WHERE mailkey = 'subscriptions-comment-separator'"));
          foreach ($languages as $language) {
            db_query("INSERT INTO {mail_edit} (description, subject, id, body, language) VALUES ('%s', '%s', '%s', '%s', '%s')", '', $comment_separator, 'subscriptions_content_node-nid+comment', $comment_item, $language);
          }
          db_query("DELETE FROM {subscriptions_mail_edit} WHERE mailkey LIKE 'subscriptions-comment-%'");
        }
      }

      // Import node/tid records:
      $result = db_query("SELECT * FROM {mail_edit_registry} WHERE id = '%s'", $new_mailkey);
      if ($registry = db_fetch_array($result)) {
        _subscriptions_mail_mail_edit_import('subscriptions-node-tid', 'subscriptions_taxonomy_node-tid', $registry['description'], $languages);
      }

      // Import node-type-* records:
      $old_mailkey = 'subscriptions-node-type-';
      $new_mailkey = 'subscriptions_content_node-type-';
      $result = db_query("SELECT * FROM {mail_edit_registry} WHERE id LIKE '%s'", $new_mailkey . '%');
      while ($registry = db_fetch_array($result)) {
        $type = substr($registry['id'], strlen($new_mailkey));
        _subscriptions_mail_mail_edit_import($old_mailkey . $type, $new_mailkey . $type, $registry['description'], $languages);
      }
      break;
  }
  $dummy = array();
  if (db_table_exists('subscriptions_mail_edit') && db_result(db_query("SELECT COUNT(*) FROM {subscriptions_mail_edit}")) == 0) {
    db_drop_table($dummy, 'subscriptions_mail_edit');
  }
  if (db_table_exists('mail_edit_d5') && db_result(db_query("SELECT COUNT(*) FROM {mail_edit_d5}")) == 0) {
    db_drop_table($dummy, 'mail_edit_d5');
  }
}