sms_blast.module in SMS Framework 7
Same filename and directory in other branches
Allows bulk text messages to be sent to registered users.
File
modules/sms_blast/sms_blast.moduleView source
<?php
/**
 * @file
 * Allows bulk text messages to be sent to registered users.
 */
/**
 * Implements hook_permission().
 */
function sms_blast_permission() {
  return array(
    'Send SMS Blast' => array(
      'title' => t('Send SMS Blast'),
      'description' => t('This allows the user to send an SMS blast.'),
    ),
  );
}
/**
 * Implements hook_menu().
 */
function sms_blast_menu() {
  $items['sms_blast'] = array(
    'title' => 'SMS Blast',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'sms_blast_form',
    ),
    'access arguments' => array(
      'Send SMS Blast',
    ),
    'type' => MENU_NORMAL_ITEM,
  );
  return $items;
}
/**
 * Displays the sms blast form.
 */
function sms_blast_form() {
  $form['message'] = array(
    '#type' => 'textarea',
    '#title' => t('Message'),
    '#cols' => 60,
    '#rows' => 5,
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Send'),
  );
  return $form;
}
/**
 * Submit handler for the sms blast form.
 */
function sms_blast_form_submit(&$form, $form_state) {
  $result = db_query("SELECT uid FROM {sms_user} WHERE status = :status", array(
    ':status' => SMS_USER_CONFIRMED,
  ));
  $num_passed = $num_failed = 0;
  if ($result
    ->rowCount() != 0) {
    $errors = array();
    foreach ($result as $row) {
      try {
        if (sms_user_send($row->uid, $form_state['values']['message'])) {
          $num_passed++;
        }
        else {
          $num_failed++;
        }
      } catch (Exception $e) {
        $errors[] = $e
          ->getMessage();
        $num_failed++;
      }
    }
    if ($num_passed) {
      drupal_set_message(t('The message was sent to %count users.', array(
        '%count' => $num_passed,
      )));
    }
    if ($num_failed) {
      drupal_set_message(t('The message could not be sent to %count users.', array(
        '%count' => $num_failed,
      )), 'warning');
    }
  }
  else {
    drupal_set_message(t('There are 0 users with confirmed phone numbers. The message was not sent.'));
  }
}Functions
| Name   | Description | 
|---|---|
| sms_blast_form | Displays the sms blast form. | 
| sms_blast_form_submit | Submit handler for the sms blast form. | 
| sms_blast_menu | Implements hook_menu(). | 
| sms_blast_permission | Implements hook_permission(). | 
