/** * EditSchedule * This prints out the "edit schedule" page * which in reality isn't much different to a normal edit schedule page except: * - list multiple campaigns (each name being clickable to show a preview of that campaign) * * The data passed in contains the "jobdetails" array from the job being edited. * That array contains the splitid - which can then be used to work out the campaigns etc being used. * * If it's not a 'splittest' job type, this function/method just returns and doesn't do anything. * * @param EventData_IEM_SCHEDULE_EDITJOB $data The array of jobdetails for the scheduled event being edited. * * @uses InterspireEventData::preventDefault * @uses User_API::GetLists * @uses User_API::GetSegmentList * @uses SendStudio_Functions::CreateDateTimeBox */ public static function EditSchedule(EventData_IEM_SCHEDULE_EDITJOB $data) { $jobinfo =& $data->jobrecord; if (empty($jobinfo) || !isset($jobinfo['jobtype'])) { FlashMessage(GetLang('Addon_splittest_Schedule_JobInvalid'), SS_FLASH_MSG_ERROR, self::application_url . 'index.php?Page=Schedule'); return; } if ($jobinfo['jobtype'] != 'splittest') { return; } $data->preventDefault(); $self = new self(); $user = GetUser(); $splitid = $jobinfo['jobdetails']['splitid']; /** * Check for messages. * If there are no flash messages, maybe it's being set in the "GLOBALS[Message]" string instead * by the admin/functions/schedule.php file. * Check that too :) */ $flash_messages = GetFlashMessages(); if (isset($GLOBALS['Message'])) { $flash_messages .= $GLOBALS['Message']; } $self->template_system->Assign('FlashMessages', $flash_messages, false); $self->template_system->Assign('Jobid', $jobinfo['jobid']); require_once SENDSTUDIO_API_DIRECTORY . '/newsletters.php'; require_once SENDSTUDIO_API_DIRECTORY . '/jobs.php'; require_once SENDSTUDIO_API_DIRECTORY . '/stats.php'; $job_api = new Jobs_API(); $stats_api = new Stats_API(); $news_api = new Newsletters_API(); $splitapi = $self->GetApi(); $splitdetails = $splitapi->Load($splitid); $sendtype = $jobinfo['jobdetails']['sendingto']['sendtype']; $sending_to = $jobinfo['jobdetails']['sendingto']['sendids']; $sendinglist = array(); if ($sendtype == 'list') { $user_lists = $user->GetLists(); foreach ($sending_to as $listid) { $sendinglist[$listid] = htmlspecialchars($user_lists[$listid]['name'], ENT_QUOTES, SENDSTUDIO_CHARSET); } } if ($sendtype == 'segment') { $user_segments = $user->GetSegmentList(); foreach ($sending_to as $segmentid) { $sendinglist[$segmentid] = htmlspecialchars($user_segments[$segmentid]['segmentname'], ENT_QUOTES, SENDSTUDIO_CHARSET); } } /** * Get the sendstudio functions file to create the date/time box. */ require_once SENDSTUDIO_FUNCTION_DIRECTORY . '/sendstudio_functions.php'; /** * also need to load the 'send' language file so it can put in the names/descriptions. */ require_once SENDSTUDIO_LANGUAGE_DIRECTORY . '/default/send.php'; $ssf = new SendStudio_Functions(); $timebox = $ssf->CreateDateTimeBox($jobinfo['jobtime'], false, 'datetime', true); $self->template_system->Assign('ApplicationUrl', $self->application_url, false); $self->template_system->Assign('ScheduleTimeBox', $timebox, false); $self->template_system->Assign('SendType', $sendtype); $self->template_system->Assign('campaigns', $splitdetails['splittest_campaigns']); $self->template_system->Assign('sendinglist', $sendinglist); $self->template_system->ParseTemplate('schedule_edit'); }