function simplenews_admin_category_form in Simplenews 7
Menu callback: newsletter admin form for newsletter add/edit.
See also
simplenews_admin_category_form_validate()
simplenews_admin_category_form_submit()
1 string reference to 'simplenews_admin_category_form'
- simplenews_menu in ./
simplenews.module - Implements hook_menu().
File
- includes/
simplenews.admin.inc, line 398 - Newsletter admin, subscription admin, simplenews settings
Code
function simplenews_admin_category_form($form, &$form_state, $edit = array()) {
if (!is_array($edit)) {
$edit = (array) $edit;
}
$edit += array(
'tid' => 0,
'name' => '',
'description' => '',
'weight' => '0',
'new_account' => 'none',
'opt_inout' => 'double',
'block' => 1,
'format' => variable_get('simplenews_format', 'plain'),
'priority' => variable_get('simplenews_priority', SIMPLENEWS_PRIORITY_NONE),
'receipt' => variable_get('simplenews_receipt', 0),
'from_name' => variable_get('simplenews_from_name', variable_get('site_name', 'Drupal')),
'email_subject' => '[[simplenews-category:name]] [node:title]',
'from_address' => variable_get('simplenews_from_address', variable_get('site_mail', ini_get('sendmail_from'))),
'hyperlinks' => 1,
);
$form['#category'] = (object) $edit;
// Check whether we need a deletion confirmation form.
if (isset($form_state['confirm_delete']) && isset($form_state['values']['tid'])) {
$category = simplenews_category_load($form_state['values']['tid']);
return simplenews_admin_category_delete($form, $form_state, $category);
}
$form['tid'] = array(
'#type' => 'value',
'#value' => $edit['tid'],
);
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
'#default_value' => $edit['name'],
'#maxlength' => 255,
'#required' => TRUE,
);
$form['description'] = array(
'#type' => 'textfield',
'#title' => t('Description'),
'#default_value' => $edit['description'],
);
$form['weight'] = array(
'#type' => 'hidden',
'#value' => $edit['weight'],
);
$form['subscription'] = array(
'#type' => 'fieldset',
'#title' => t('Subscription settings'),
'#collapsible' => FALSE,
);
// Subscribe at account registration time.
$options = array(
'none' => t('None'),
'on' => t('Default on'),
'off' => t('Default off'),
'silent' => t('Silent'),
);
$form['subscription']['new_account'] = array(
'#type' => 'select',
'#title' => t('Subscribe new account'),
'#options' => $options,
'#default_value' => $edit['new_account'],
'#description' => t('None: This newsletter is not listed on the user registration page.<br />Default on: This newsletter is listed on the user registion page and is selected by default.<br />Default off: This newsletter is listed on the user registion page and is not selected by default.<br />Silent: A new user is automatically subscribed to this newsletter. The newsletter is not listed on the user registration page.'),
);
// Type of (un)subsribe confirmation
$options = array(
SIMPLENEWS_OPT_INOUT_HIDDEN => t('Hidden'),
SIMPLENEWS_OPT_INOUT_SINGLE => t('Single'),
SIMPLENEWS_OPT_INOUT_DOUBLE => t('Double'),
);
$form['subscription']['opt_inout'] = array(
'#type' => 'select',
'#title' => t('Opt-in/out method'),
'#options' => $options,
'#default_value' => $edit['opt_inout'],
'#description' => t('Hidden: This newsletter does not appear on subscription forms. No unsubscription footer in newsletter.<br /> Single: Users are (un)subscribed immediately, no confirmation email is sent.<br />Double: When (un)subscribing at a subscription form, anonymous users receive an (un)subscription confirmation email. Authenticated users are (un)subscribed immediately.'),
);
// Provide subscription block for this category.
$form['subscription']['block'] = array(
'#type' => 'checkbox',
'#title' => t('Subscription block'),
'#default_value' => $edit['block'],
'#description' => t('A subscription block will be provided for this newsletter category. Anonymous and authenticated users can subscribe and unsubscribe using this block.'),
);
$form['email'] = array(
'#type' => 'fieldset',
'#title' => t('Email settings'),
'#collapsible' => FALSE,
);
// Hide format selection if there is nothing to choose.
// The default format is plain text.
$format_options = simplenews_format_options();
if (count($format_options) > 1) {
$form['email']['format'] = array(
'#type' => 'radios',
'#title' => t('Email format'),
'#default_value' => $edit['format'],
'#options' => $format_options,
);
}
else {
$form['email']['format'] = array(
'#type' => 'hidden',
'#value' => key($format_options),
);
$form['email']['format_text'] = array(
'#markup' => t('Newsletter emails will be sent in %format format.', array(
'%format' => $edit['format'],
)),
);
}
$form['email']['priority'] = array(
'#type' => 'select',
'#title' => t('Email priority'),
'#default_value' => $edit['priority'],
'#options' => simplenews_get_priority(),
);
$form['email']['receipt'] = array(
'#type' => 'checkbox',
'#title' => t('Request receipt'),
'#return_value' => 1,
'#default_value' => $edit['receipt'],
);
// Email sender name
$form['simplenews_sender_information'] = array(
'#type' => 'fieldset',
'#title' => t('Sender information'),
'#collapsible' => FALSE,
);
$form['simplenews_sender_information']['from_name'] = array(
'#type' => 'textfield',
'#title' => t('From name'),
'#size' => 60,
'#maxlength' => 128,
'#default_value' => $edit['from_name'],
);
// Email subject
$form['simplenews_subject'] = array(
'#type' => 'fieldset',
'#title' => t('Newsletter subject'),
'#collapsible' => FALSE,
);
if (module_exists('token')) {
$form['simplenews_subject']['token_help'] = array(
'#title' => t('Replacement patterns'),
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['simplenews_subject']['token_help']['browser'] = array(
'#theme' => 'token_tree',
'#token_types' => array(
'simplenews-category',
'node',
'simplenews-subscriber',
),
);
}
$form['simplenews_subject']['email_subject'] = array(
'#type' => 'textfield',
'#title' => t('Email subject'),
'#size' => 60,
'#maxlength' => 128,
'#required' => TRUE,
'#default_value' => $edit['email_subject'],
);
// Email from address
$form['simplenews_sender_information']['from_address'] = array(
'#type' => 'textfield',
'#title' => t('From email address'),
'#size' => 60,
'#maxlength' => 128,
'#required' => TRUE,
'#default_value' => $edit['from_address'],
);
// Type of hyperlinks
$form['simplenews_hyperlinks'] = array(
'#type' => 'fieldset',
'#title' => t('HTML to text conversion'),
'#collapsible' => FALSE,
'#description' => t('When your newsletter is sent as plain text, these options will determine how the conversion to text is performed.'),
);
$form['simplenews_hyperlinks']['hyperlinks'] = array(
'#type' => 'radios',
'#title' => t('Hyperlink conversion'),
'#options' => array(
t('Append hyperlinks as a numbered reference list'),
t('Display hyperlinks inline with the text'),
),
'#default_value' => $edit['hyperlinks'],
);
$form['actions'] = array(
'#type' => 'actions',
);
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
'#weight' => 50,
);
if ($edit['tid']) {
$form['actions']['delete'] = array(
'#type' => 'submit',
'#value' => t('Delete'),
'#weight' => 55,
);
}
return $form;
}