rendered paste bodyfunction views_scheduler_schedule_form() {
// Description section
$form['details'] = array(
'#type' => 'fieldset',
'#title' => t('Schedule Description'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE,
);
$form['details']['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
'#size' => 30,
'#maxlength' => 64,
'#required' => TRUE,
'#description' => t('Name of the schedule'),
);
$view_name=db_fetch_array(db_query('SELECT name FROM view_view'));
$form['details']['view'] = array(
'#type' => 'select',
'#title' => t('Existing views'),
'#default_value' => NULL,
'#options' => array(
'NULL' => 'Select a View',
$view_name['name'] =>$view_name['name'],
),
'#description' => t('Select a view to link this schedule to.'),
);
$form['details']['node'] = array(
'#type' => 'textfield',
'#title' => t('No. of node'),
'#default_value' => '0',
'#size' => 2,
'#maxlength' => 3,
'#required' => TRUE,
'#description' => t('Number of nodes to published each time (0 means all)'),
);
//END
// Schedule Timing Details
$form['schedule'] = array(
'#type' => 'fieldset',
'#title' => t('Frequency'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE,
'#description' => t('Schedule Frequency'),
);
$form['schedule']['every'] = array(
'#type' => 'textfield',
'#title' => t('Every'),
'#size' => 5,
'#maxlength' => 3,
//'#required' => TRUE,
'#description' => t('Every'),
);
$form['schedule']['frequency'] = array(
'#type' => 'radios',
'#title' => t('Frequency'),
'#default_value' => 'manual',
'#options' => array(
'hour' => t('Hour(s)'),
'day' => t('Day(s)'),
'month' => t('Month(s)'),
'manual' => t('Manual Publication')),
);
// END
// First Sending Takes Place.
$form['next'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE,
'#title' => t('Next Send'),
'#description' => t('DateTime to send next publication.'),
);
$form['next']['date'] = array(
'#type' => 'textfield',
'#title' => t('Date'),
'#default_value' => $start_day=date("m/d/y"),
'#size' => 10,
'#maxlength' => 10,
'#required' => TRUE,
'#description' => t('%start_day (mm/dd/yy)', array('%start_day' => $start_day)),
);
$form['next']['hour'] = array(
'#type' => 'select',
'#title' => t('Time'),
'#default_value' => $hour=date("G"),
'#options' => array(
'1' => '1 a.m.',
'2' => '2 a.m.',
'3' => '3 a.m.',
'4' => '4 a.m.',
'5' => '5 a.m.',
'6' => '6 a.m.',
'7' => '7 a.m.',
'8' => '8 a.m.',
'9' => '9 a.m.',
'10' => '10 a.m.',
'11' => '11 a.m.',
'12' => '12 a.m.',
'13' => '1 p.m.',
'14' => '2 p.m.',
'15' => '3 p.m.',
'16' => '4 p.m.',
'17' => '5 p.m.',
'18' => '6 p.m.',
'19' => '7 p.m.',
'20' => '8 p.m.',
'21' => '9 p.m.',
'22' => '10 p.m.',
'23' => '11 p.m.',
'0' => '12 p.m.'),
);
// END
$form['sendtime'] = array('#type' => 'value', '#value' => array());
//Finish off the form
$form['submit'] = array('#type' => 'submit', '#value' => t('Save Schedule'));
$output = drupal_get_form('view_schedule_form', $form);
// END
return $output;
}
function view_schedule_form_validate($form_id, $form_values) {
if ($form_values['details']['view'] ==NULL || $form_values['details']['view'] =='NULL') {
form_set_error('view', t('Please select a view.'));
}
if (!is_numeric($form_values['details']['node'])) {
form_set_error('node', t('Please enter a number of you nodes you would like to be published..'));
}
if (!is_numeric($form_values['schedule']['every'])) {
form_set_error('every', t('Please enter a number for every.'));
}
if ($form_values['schedule']['frequency'] == 'manual') {
$form_values['schedule']['every']= 0;
}
// check whether date/time is valid or has already passed
$date_array=getdate(strtotime($form_valuess['next']['date']));
if (checkdate( $date_array['mon'], $date_array['mday'], $date_array['year'] == TRUE )) {
$next_send=mktime($form_values['next']['hour'],0,0,$date_array['mon'], $date_array['mday'], $date_array['year']);
if ($next_send<= time()) {
form_set_error('next', t('The date/time has already passed '));
}
}
else {
form_set_error('next', t('The date entered is wrong, Please make sure to enter the date in following format: mm/dd/yy.'));
}
form_set_value($form['sendtime'], $next_send);
//print_r ($form_values);
}
function view_schedule_form_submit($form_id, $form_values) {
$sendtime = $form_values['sendtime'];
db_query("INSERT INTO {view_schedules} (vschedule_id , view , node , actions_id)
VALUES (NULL, '%s', '%s', '%d' )", $form_values['details']['view'], $form_values['details']['node'], 4);
$view_schedule_id=db_result(db_query("SELECT LAST_INSERT_ID()"));
db_query("INSERT INTO {schedules} (schedule_id, schedule_title, type, publication_id, start, first, next, last, every, frequency)
VALUES (NULL, '%s','%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s')", $form_values['details']['name'], 0,$view_schedule_id, 0, 0, $sendtime, $form_values['schedule']['every'], $form_values['schedule']['frequency']);
drupal_set_message(t('Your form has been saved.'));
}