Index: branches/5.2.x/core/kernel/managers/request_manager.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/core/kernel/managers/request_manager.php (.../request_manager.php) (revision 14879) +++ branches/5.2.x/core/kernel/managers/request_manager.php (.../request_manager.php) (revision 15033) @@ -1,6 +1,6 @@ Application->SetVar('events', $events); $this->Application->SetVar('passed', implode(',', $all_passed)); - $this->Application->EventManager->runScheduledTasks(reBEFORE); - $this->processed = true; } Index: branches/5.2.x/admin/system_presets/simple/scheduled_tasks_scheduled-task.php =================================================================== diff -u -N -r15024 -r15033 --- branches/5.2.x/admin/system_presets/simple/scheduled_tasks_scheduled-task.php (.../scheduled_tasks_scheduled-task.php) (revision 15024) +++ branches/5.2.x/admin/system_presets/simple/scheduled_tasks_scheduled-task.php (.../scheduled_tasks_scheduled-task.php) (revision 15033) @@ -23,7 +23,7 @@ // fields to hide $hidden_fields = Array ( - /* 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'RunMode', 'LastRunOn', + /* 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'LastRunOn', 'LastRunStatus', 'NextRunOn', 'RunTime', */ ); @@ -33,7 +33,7 @@ // fields to make required $required_fields = Array ( - /* 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'RunMode', 'LastRunOn', + /* 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'LastRunOn', 'LastRunStatus', 'NextRunOn', 'RunTime', */ ); @@ -47,5 +47,5 @@ // hide columns in grids $hide_columns = Array ( // currently not in user -// 'Default' => Array ( 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'RunMode', 'LastRunOn', 'LastRunStatus', 'NextRunOn', ), +// 'Default' => Array ( 'ScheduledTaskId', 'Name', 'Type', 'Status', 'Event', 'RunInterval', 'LastRunOn', 'LastRunStatus', 'NextRunOn', ), ); \ No newline at end of file Index: branches/5.2.x/core/units/mailing_lists/mailing_lists_config.php =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/units/mailing_lists/mailing_lists_config.php (.../mailing_lists_config.php) (revision 15012) +++ branches/5.2.x/core/units/mailing_lists/mailing_lists_config.php (.../mailing_lists_config.php) (revision 15033) @@ -1,6 +1,6 @@ Array ( - 'generate_mailing_queue' => Array ('EventName' => 'OnGenerateEmailQueue', 'RunInterval' => 1800, 'Type' => reAFTER), - 'process_mailing_queue' => Array ('EventName' => 'OnProcessEmailQueue', 'RunInterval' => 1800, 'Type' => reAFTER), + 'generate_mailing_queue' => Array ('EventName' => 'OnGenerateEmailQueue', 'RunInterval' => 1800), + 'process_mailing_queue' => Array ('EventName' => 'OnProcessEmailQueue', 'RunInterval' => 1800), ), 'IDField' => 'MailingId', Index: branches/5.2.x/core/install/install_schema.sql =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/install/install_schema.sql (.../install_schema.sql) (revision 15012) +++ branches/5.2.x/core/install/install_schema.sql (.../install_schema.sql) (revision 15033) @@ -677,7 +677,6 @@ `Status` tinyint(3) unsigned NOT NULL DEFAULT '1', `Event` varchar(255) NOT NULL DEFAULT '', RunInterval int(10) unsigned NOT NULL DEFAULT '0', - RunMode tinyint(3) unsigned NOT NULL DEFAULT '2', LastRunOn int(10) unsigned DEFAULT NULL, LastRunStatus tinyint(3) unsigned NOT NULL DEFAULT '1', NextRunOn int(11) DEFAULT NULL, @@ -688,7 +687,6 @@ PRIMARY KEY (ScheduledTaskId), KEY `Status` (`Status`), KEY RunInterval (RunInterval), - KEY RunMode (RunMode), KEY LastRunOn (LastRunOn), KEY LastRunStatus (LastRunStatus), KEY RunTime (RunTime), Index: branches/5.2.x/core/units/forms/forms/forms_config.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/core/units/forms/forms/forms_config.php (.../forms_config.php) (revision 14879) +++ branches/5.2.x/core/units/forms/forms/forms_config.php (.../forms_config.php) (revision 15033) @@ -1,6 +1,6 @@ Array ( - 'check_submission_repies' => Array('EventName' => 'OnProcessReplies', 'RunInterval' => 3600, 'Type' => reAFTER), - 'check_bounced_submission_repies' => Array('EventName' => 'OnProcessBouncedReplies', 'RunInterval' => 18000, 'Type' => reAFTER), + 'check_submission_repies' => Array('EventName' => 'OnProcessReplies', 'RunInterval' => 3600), + 'check_bounced_submission_repies' => Array('EventName' => 'OnProcessBouncedReplies', 'RunInterval' => 18000), ), 'Hooks' => Array( Index: branches/5.2.x/core/units/images/images_config.php =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/units/images/images_config.php (.../images_config.php) (revision 15012) +++ branches/5.2.x/core/units/images/images_config.php (.../images_config.php) (revision 15033) @@ -1,6 +1,6 @@ Array ( - 'clean_catalog_images' => Array ('EventName' => 'OnCleanImages', 'RunInterval' => 604800, 'Type' => reAFTER, 'Status' => STATUS_DISABLED), - 'clean_resized_catalog_images' => Array ('EventName' => 'OnCleanResizedImages', 'RunInterval' => 2592000, 'Type' => reAFTER, 'Status' => STATUS_DISABLED), + 'clean_catalog_images' => Array ('EventName' => 'OnCleanImages', 'RunInterval' => 604800, 'Status' => STATUS_DISABLED), + 'clean_resized_catalog_images' => Array ('EventName' => 'OnCleanResizedImages', 'RunInterval' => 2592000, 'Status' => STATUS_DISABLED), ), 'IDField' => 'ImageId', Index: branches/5.2.x/core/units/admin/admin_config.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/core/units/admin/admin_config.php (.../admin_config.php) (revision 14879) +++ branches/5.2.x/core/units/admin/admin_config.php (.../admin_config.php) (revision 15033) @@ -1,6 +1,6 @@ Array( - 'optimize_performance' => Array('EventName' => 'OnOptimizePerformance', 'RunInterval' => 86400, 'Type' => reAFTER), + 'optimize_performance' => Array('EventName' => 'OnOptimizePerformance', 'RunInterval' => 86400), ), 'TitlePresets' => Array ( Index: branches/5.2.x/core/admin_templates/scheduled_tasks/scheduled_task_edit.tpl =================================================================== diff -u -N -r14880 -r15033 --- branches/5.2.x/core/admin_templates/scheduled_tasks/scheduled_task_edit.tpl (.../scheduled_task_edit.tpl) (revision 14880) +++ branches/5.2.x/core/admin_templates/scheduled_tasks/scheduled_task_edit.tpl (.../scheduled_task_edit.tpl) (revision 15033) @@ -77,7 +77,6 @@ - Index: branches/5.2.x/tools/cron.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/tools/cron.php (.../cron.php) (revision 14879) +++ branches/5.2.x/tools/cron.php (.../cron.php) (revision 15033) @@ -1,6 +1,6 @@ /tools/cron.php -O /dev/null > /dev/null 2>&1 - // */10 * * * * /usr/bin/php /path/to/site/tools/cron.php +// Use either of lines above to invoke from cron: +// */10 * * * * wget http:///tools/cron.php -O /dev/null > /dev/null 2>&1 +// */10 * * * * /usr/bin/php /path/to/site/tools/cron.php - $start = microtime(true); +$start = microtime(true); - define('CRON', 1); - define('ADMIN', 1); - define('FULL_PATH', realpath(dirname(__FILE__) . '/..')); - define('CMD_MODE', isset($argv) && count($argv) ? 1 : 0); +define('CRON', 1); +define('ADMIN', 1); +define('FULL_PATH', realpath(dirname(__FILE__) . '/..')); +define('CMD_MODE', isset($argv) && count($argv) ? 1 : 0); - if (CMD_MODE) { - define('DBG_SKIP_REPORTING', 1); - $_SERVER['REQUEST_URI'] = 'CRON'; - $_SERVER['HTTP_USER_AGENT'] = 'gecko'; - } +if ( CMD_MODE ) { + define('DBG_SKIP_REPORTING', 1); + $_SERVER['REQUEST_URI'] = 'CRON'; + $_SERVER['HTTP_USER_AGENT'] = 'gecko'; +} - include_once(FULL_PATH . '/core/kernel/startup.php'); +include_once(FULL_PATH . '/core/kernel/startup.php'); - $application =& kApplication::Instance(); - $application->Init(); +$application =& kApplication::Instance(); +$application->Init(); - // events from request are not processed, only predefined regular events - $application->EventManager->runScheduledTasks(reBEFORE, true); - $application->EventManager->runScheduledTasks(reAFTER, true); +// events from request are not processed, only predefined scheduled tasks +$application->EventManager->runScheduledTasks(true); - $application->Done(); +$application->Done(); - $end = microtime(true); \ No newline at end of file +$end = microtime(true); \ No newline at end of file Index: branches/5.2.x/core/install/english.lang =================================================================== diff -u -N -r14994 -r15033 --- branches/5.2.x/core/install/english.lang (.../english.lang) (revision 14994) +++ branches/5.2.x/core/install/english.lang (.../english.lang) (revision 15033) @@ -587,7 +587,6 @@ UHJvbW8gUm90YXRpb24gRGVsYXkgKHNlY29uZHMp UnVsZSBUeXBl UnVuIEludGVydmFs - UnVuIE1vZGU= UnVuIFRpbWU= U2FtZSBBcyBUaHVtYg== U2NoZWR1bGUgRGF0ZQ== Index: branches/5.2.x/core/kernel/event_manager.php =================================================================== diff -u -N -r14989 -r15033 --- branches/5.2.x/core/kernel/event_manager.php (.../event_manager.php) (revision 14989) +++ branches/5.2.x/core/kernel/event_manager.php (.../event_manager.php) (revision 15033) @@ -1,6 +1,6 @@ ScheduledTasks->add($short_name, $event_name, $run_interval, $type, $status); + $this->ScheduledTasks->add($short_name, $event_string, $run_interval, $status); } /** * Run registered scheduled tasks with specified event type * - * @param int $event_type * @param bool $from_cron * @access public */ - public function runScheduledTasks($event_type = reBEFORE, $from_cron = false) + public function runScheduledTasks($from_cron = false) { - $this->ScheduledTasks->runAll($event_type, $from_cron); + $this->ScheduledTasks->runAll($from_cron); } /** Index: branches/5.2.x/core/units/scheduled_tasks/scheduled_tasks_config.php =================================================================== diff -u -N -r14880 -r15033 --- branches/5.2.x/core/units/scheduled_tasks/scheduled_tasks_config.php (.../scheduled_tasks_config.php) (revision 14880) +++ branches/5.2.x/core/units/scheduled_tasks/scheduled_tasks_config.php (.../scheduled_tasks_config.php) (revision 15033) @@ -1,6 +1,6 @@ 1, 'not_null' => 1, 'default' => '' ), 'RunInterval' => Array ('type' => 'int', 'required' => 1, 'not_null' => 1, 'default' => 0), - 'RunMode' => Array ( - 'type' => 'int', - 'formatter' => 'kOptionsFormatter', 'options' => Array (reBEFORE => 'la_opt_Before', reAFTER => 'la_opt_After'), 'use_phrases' => 1, - 'required' => 1, 'not_null' => 1, 'default' => 2 - ), 'LastRunOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL), 'LastRunStatus' => Array ( @@ -159,7 +154,6 @@ 'Type' => Array ('filter_block' => 'grid_options_filter', 'width' => 60, ), 'Event' => Array ('filter_block' => 'grid_like_filter', 'width' => 280, ), 'RunInterval' => Array ('filter_block' => 'grid_range_filter', 'width' => 100, ), - 'RunMode' => Array ('filter_block' => 'grid_options_filter', 'width' => 85, ), 'LastRunOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ), 'RunTime' => Array ('filter_block' => 'grid_range_filter', 'width' => 145, ), 'LastRunStatus' => Array ('filter_block' => 'grid_options_filter', 'width' => 120, ), Index: branches/5.2.x/core/units/scheduled_tasks/scheduled_task_eh.php =================================================================== diff -u -N -r14989 -r15033 --- branches/5.2.x/core/units/scheduled_tasks/scheduled_task_eh.php (.../scheduled_task_eh.php) (revision 14989) +++ branches/5.2.x/core/units/scheduled_tasks/scheduled_task_eh.php (.../scheduled_task_eh.php) (revision 15033) @@ -1,6 +1,6 @@ Conn->Query($object->GetSelectSQL(), 'Name'); - foreach ($scheduled_tasks_from_cache as $run_mode => $events) { + foreach ($scheduled_tasks_from_cache as $scheduled_task_name => $scheduled_task_params) { + if ( !isset($scheduled_tasks_from_db[$scheduled_task_name]) ) { + $fields_hash = Array ( + 'Event' => $scheduled_task_params['Event'], + 'Name' => $scheduled_task_name, + 'Type' => ScheduledTask::TYPE_SYSTEM, + 'Status' => isset($scheduled_task_params['Status']) ? $scheduled_task_params['Status'] : STATUS_ACTIVE, + 'RunInterval' => $scheduled_task_params['RunInterval'], + ); - foreach ($events as $scheduled_task_name => $scheduled_task_params) { - if ( !isset($scheduled_tasks_from_db[$scheduled_task_name]) ) { - $fields_hash = Array ( - 'Event' => $scheduled_task_params['EventName'], - 'Name' => $scheduled_task_name, - 'Type' => ScheduledTask::TYPE_SYSTEM, - 'Status' => array_key_exists('Status', $scheduled_task_params) ? $scheduled_task_params['Status'] : STATUS_ACTIVE, - 'RunInterval' => $scheduled_task_params['RunInterval'], - 'RunMode' => $run_mode, - ); - - $object->Clear(); - $object->SetDBFieldsFromHash($fields_hash); - $object->Create(); - } - else { - $object->LoadFromHash( $scheduled_tasks_from_db[$scheduled_task_name] ); - } - - $processed_ids[] = $object->GetID(); + $object->Clear(); + $object->SetDBFieldsFromHash($fields_hash); + $object->Create(); } + else { + $object->LoadFromHash( $scheduled_tasks_from_db[$scheduled_task_name] ); + } + $processed_ids[] = $object->GetID(); } // delete all non-processed scheduled tasks (ones, that were deleted from unit configs) Index: branches/5.2.x/core/kernel/managers/cache_manager.php =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/kernel/managers/cache_manager.php (.../cache_manager.php) (revision 15012) +++ branches/5.2.x/core/kernel/managers/cache_manager.php (.../cache_manager.php) (revision 15033) @@ -1,6 +1,6 @@ before = $data['EventManager.beforeRegularEvents']; - $this->after = $data['EventManager.afterRegularEvents']; + $this->tasks = $data['EventManager.scheduledTasks']; } /** @@ -53,8 +44,7 @@ public function getToCache() { return Array ( - 'EventManager.beforeRegularEvents' => $this->before, - 'EventManager.afterRegularEvents' => $this->after, + 'EventManager.scheduledTasks' => $this->tasks, ); } @@ -69,11 +59,8 @@ { static $scheduled_tasks = null; - if ($from_cache) { - return Array ( - reBEFORE => $this->before, - reAFTER => $this->after, - ); + if ( $from_cache ) { + return $this->tasks; } if ( !isset($scheduled_tasks) ) { @@ -82,72 +69,35 @@ $sql = 'SELECT * FROM ' . $this->Application->getUnitOption('scheduled-task', 'TableName') . ' WHERE (Status = ' . STATUS_ACTIVE . ') AND ((LastRunStatus != ' . ScheduledTask::LAST_RUN_RUNNING . ') OR (' . $timeout_clause . '))'; - $all_scheduled_tasks = $this->Conn->Query($sql); - - $scheduled_tasks = Array ( - reBEFORE => Array (), - reAFTER => Array (), - ); - - foreach ($all_scheduled_tasks as $scheduled_task_data) { - $scheduled_tasks[ $scheduled_task_data['RunMode'] ][ $scheduled_task_data['Name'] ] = Array ( - 'EventName' => $scheduled_task_data['Event'], - 'RunInterval' => (int)$scheduled_task_data['RunInterval'], - 'LastRunOn' => (int)$scheduled_task_data['LastRunOn'], - 'NextRunOn' => (int)$scheduled_task_data['NextRunOn'], - 'Status' => $scheduled_task_data['Status'], - 'LastRunStatus' => $scheduled_task_data['LastRunStatus'], - 'SiteDomainLimitation' => $scheduled_task_data['SiteDomainLimitation'], - ); - } + $scheduled_tasks = $this->Conn->Query($sql, 'Name'); } return $scheduled_tasks; } /** - * Returns scheduled tasks by type - * - * @param int $type - * @return Array - * @access protected - */ - protected function &getByType($type) - { - if ($type == reBEFORE) { - return $this->before; - } - - return $this->after; - } - - /** * Add new scheduled task * * @param string $short_name name to be used to store last maintenance run info - * @param string $event_name + * @param string $event_string * @param int $run_interval run interval in seconds - * @param int $type before or after scheduled task * @param int $status * @access public */ - public function add($short_name, $event_name, $run_interval, $type = reBEFORE, $status = STATUS_ACTIVE) + public function add($short_name, $event_string, $run_interval, $status = STATUS_ACTIVE) { - $scheduled_tasks =& $this->getByType($type); - - $scheduled_tasks[$short_name] = Array ( - 'EventName' => $event_name, 'RunInterval' => $run_interval, 'Status' => $status + $this->tasks[$short_name] = Array ( + 'Event' => $event_string, 'RunInterval' => $run_interval, 'Status' => $status ); } /** * Run registered scheduled tasks with specified event type * - * @param int $event_type * @param bool $from_cron * @access public */ - public function runAll($event_type = reBEFORE, $from_cron = false) + public function runAll($from_cron = false) { if ( defined('IS_INSTALL') ) { return ; @@ -158,8 +108,7 @@ return ; } - $scheduled_tasks = $this->getAll(); - $events_source = $scheduled_tasks[$event_type]; + $events_source = $this->getAll(); $user_id = $this->Application->RecallVar('user_id'); $this->Application->StoreVar('user_id', USER_ROOT, true); // to prevent permission checking inside events, true for optional storage @@ -184,7 +133,7 @@ $this->update($short_name, Array ('LastTimeoutOn' => adodb_mktime())); } - $next_run = $event_data['NextRunOn']; + $next_run = (int)$event_data['NextRunOn']; if ($next_run && ($next_run > adodb_mktime())) { continue; @@ -206,7 +155,7 @@ */ public function run($scheduled_task_data) { - $event = new kEvent($scheduled_task_data['EventName']); + $event = new kEvent($scheduled_task_data['Event']); if ( !$this->Application->prefixRegistred($event->Prefix) ) { // don't process scheduled tasks, left from disabled modules Index: branches/5.2.x/core/kernel/utility/unit_config_reader.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 14879) +++ branches/5.2.x/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 15033) @@ -1,6 +1,6 @@ $scheduled_task_info) { $event_status = array_key_exists('Status', $scheduled_task_info) ? $scheduled_task_info['Status'] : STATUS_ACTIVE; - $this->Application->delayUnitProcessing('registerScheduledTask', Array ( $short_name, $config['Prefix'] . ':' . $scheduled_task_info['EventName'], $scheduled_task_info['RunInterval'], $scheduled_task_info['Type'], $event_status )); + $this->Application->delayUnitProcessing('registerScheduledTask', Array ( $short_name, $config['Prefix'] . ':' . $scheduled_task_info['EventName'], $scheduled_task_info['RunInterval'], $event_status )); } } Index: branches/5.2.x/core/kernel/constants.php =================================================================== diff -u -N -r14879 -r15033 --- branches/5.2.x/core/kernel/constants.php (.../constants.php) (revision 14879) +++ branches/5.2.x/core/kernel/constants.php (.../constants.php) (revision 15033) @@ -1,6 +1,6 @@ EventManager->runScheduledTasks(reAFTER); + $this->EventManager->runScheduledTasks(); $this->Session->SaveData(); if ( kUtil::constOn('DBG_CACHE') ) { @@ -1150,7 +1150,7 @@ flush(); if ( !$debug_mode ) { - $this->EventManager->runScheduledTasks(reAFTER); + $this->EventManager->runScheduledTasks(); $this->Session->SaveData(); } @@ -1973,15 +1973,14 @@ * Add new scheduled task * * @param string $short_name name to be used to store last maintenance run info - * @param string $event_name + * @param string $event_string * @param int $run_interval run interval in seconds - * @param int $type before or after scheduled task * @param int $status * @access public */ - public function registerScheduledTask($short_name, $event_name, $run_interval, $type = reBEFORE, $status = STATUS_ACTIVE) + public function registerScheduledTask($short_name, $event_string, $run_interval, $status = STATUS_ACTIVE) { - $this->EventManager->registerScheduledTask($short_name, $event_name, $run_interval, $type, $status); + $this->EventManager->registerScheduledTask($short_name, $event_string, $run_interval, $status); } /** Index: branches/5.2.x/core/units/users/users_config.php =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/units/users/users_config.php (.../users_config.php) (revision 15012) +++ branches/5.2.x/core/units/users/users_config.php (.../users_config.php) (revision 15033) @@ -1,6 +1,6 @@ Array( - 'membership_expiration' => Array('EventName' => 'OnCheckExpiredMembership', 'RunInterval' => 1800, 'Type' => reAFTER), - 'delete_expired_sessions' => Array('EventName' => 'OnDeleteExpiredSessions', 'RunInterval' => 43200, 'Type' => reAFTER), + 'membership_expiration' => Array('EventName' => 'OnCheckExpiredMembership', 'RunInterval' => 1800), + 'delete_expired_sessions' => Array('EventName' => 'OnDeleteExpiredSessions', 'RunInterval' => 43200), ), 'IDField' => 'PortalUserId', Index: branches/5.2.x/core/install/upgrades.sql =================================================================== diff -u -N -r15012 -r15033 --- branches/5.2.x/core/install/upgrades.sql (.../upgrades.sql) (revision 15012) +++ branches/5.2.x/core/install/upgrades.sql (.../upgrades.sql) (revision 15033) @@ -2594,3 +2594,5 @@ RENAME TABLE <%TABLE_PREFIX%>UserGroup TO <%TABLE_PREFIX%>UserGroupRelations; RENAME TABLE <%TABLE_PREFIX%>Visits TO <%TABLE_PREFIX%>UserVisits; RENAME TABLE <%TABLE_PREFIX%>SessionLogs TO <%TABLE_PREFIX%>UserSessionLogs; + +DELETE FROM LanguageLabels WHERE PhraseKey = 'LA_FLD_RUNMODE';