当前位置: 首页>>代码示例>>PHP>>正文


PHP BackWPup::get_job_types方法代码示例

本文整理汇总了PHP中BackWPup::get_job_types方法的典型用法代码示例。如果您正苦于以下问题:PHP BackWPup::get_job_types方法的具体用法?PHP BackWPup::get_job_types怎么用?PHP BackWPup::get_job_types使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BackWPup的用法示例。


在下文中一共展示了BackWPup::get_job_types方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: prepare_items

 /**
  *
  */
 function prepare_items()
 {
     $this->items = BackWPup_Option::get_job_ids();
     $this->job_object = BackWPup_Job::get_working_data();
     $this->job_types = BackWPup::get_job_types();
     $this->destinations = BackWPup::get_registered_destinations();
 }
开发者ID:kirkov,项目名称:backwpup,代码行数:10,代码来源:class-page-jobs.php

示例2: admin_init

 /**
  * Admin init function
  */
 public function admin_init()
 {
     //only add action if ajax call
     if (defined('DOING_AJAX') && DOING_AJAX && defined('WP_ADMIN') && WP_ADMIN) {
         //ajax calls
         add_action('wp_ajax_backwpup_working', array('BackWPup_Page_Jobs', 'ajax_working'));
         add_action('wp_ajax_backwpup_cron_text', array('BackWPup_Page_Editjob', 'ajax_cron_text'));
         //ajax or view logs
         add_action('wp_ajax_backwpup_view_log', array('BackWPup_Page_Logs', 'ajax_view_log'));
         //ajax calls for job types
         if ($jobtypes = BackWPup::get_job_types()) {
             foreach ($jobtypes as $id => $jobtypeclass) {
                 add_action('wp_ajax_backwpup_jobtype_' . strtolower($id), array($jobtypeclass, 'edit_ajax'));
             }
         }
         //ajax calls for destinations
         if ($dests = BackWPup::get_registered_destinations()) {
             foreach ($dests as $id => $dest) {
                 if (!empty($dest['class'])) {
                     add_action('wp_ajax_backwpup_dest_' . strtolower($id), array(BackWPup::get_destination($id), 'edit_ajax'));
                 }
             }
         }
     }
     //display about page after Update
     if (!defined('DOING_AJAX') && !get_site_option('backwpup_about_page', FALSE) && !isset($_GET['activate-multi'])) {
         update_site_option('backwpup_about_page', TRUE);
         wp_redirect(network_admin_url('admin.php') . '?page=backwpupabout');
         exit;
     }
 }
开发者ID:demochko-ol,项目名称:hezy,代码行数:34,代码来源:class-admin.php

示例3: prepare_items

 /**
  *
  */
 function prepare_items()
 {
     $this->job_types = BackWPup::get_job_types();
     $per_page = $this->get_items_per_page('backwpuplogs_per_page');
     if (empty($per_page) || $per_page < 1) {
         $per_page = 20;
     }
     //load logs
     $logfiles = array();
     if (is_readable($this->log_folder) && ($dir = opendir($this->log_folder))) {
         while (($file = readdir($dir)) !== FALSE) {
             $log_file = $this->log_folder . '/' . $file;
             if (is_file($log_file) && is_readable($log_file) && FALSE !== strpos($file, 'backwpup_log_') && FALSE !== strpos($file, '.html')) {
                 $logfiles[] = $file;
             }
         }
         closedir($dir);
     }
     //ordering
     $order = isset($_GET['order']) ? $_GET['order'] : 'desc';
     $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'time';
     if ($orderby == 'time') {
         if ($order == 'asc') {
             sort($logfiles);
         } else {
             rsort($logfiles);
         }
     }
     //by page
     $start = intval(($this->get_pagenum() - 1) * $per_page);
     $end = $start + $per_page;
     if ($end > count($logfiles)) {
         $end = count($logfiles);
     }
     $this->items = array();
     $i = -1;
     foreach ($logfiles as $mtime => $logfile) {
         $i++;
         if ($i < $start) {
             continue;
         }
         if ($i >= $end) {
             break;
         }
         $this->items[$mtime] = BackWPup_Job::read_logheader($this->log_folder . '/' . $logfile);
         $this->items[$mtime]['file'] = $logfile;
     }
     $this->set_pagination_args(array('total_items' => count($logfiles), 'per_page' => $per_page, 'orderby' => $orderby, 'order' => $order));
 }
开发者ID:leotaillard,项目名称:btws2016,代码行数:52,代码来源:class-page-logs.php

示例4: defaults_job

 /**
  *
  * Get default option for BackWPup option
  *
  * @param string $key Option key
  *
  * @internal param int $id The job id
  *
  * @return bool|mixed
  */
 public static function defaults_job($key = '')
 {
     $key = sanitize_key(trim($key));
     //set defaults
     $default['type'] = array('DBDUMP', 'FILE', 'WPPLUGIN');
     $default['destinations'] = array();
     $default['name'] = __('New Job', 'backwpup');
     $default['activetype'] = '';
     $default['logfile'] = '';
     $default['lastbackupdownloadurl'] = '';
     $default['cronselect'] = 'basic';
     $default['cron'] = '0 3 * * *';
     $default['mailaddresslog'] = sanitize_email(get_bloginfo('admin_email'));
     $default['mailaddresssenderlog'] = 'BackWPup ' . get_bloginfo('name') . ' <' . sanitize_email(get_bloginfo('admin_email')) . '>';
     $default['mailerroronly'] = true;
     $default['backuptype'] = 'archive';
     $default['archiveformat'] = '.tar.gz';
     $default['archivename'] = 'backwpup_' . BackWPup::get_plugin_data('hash') . '_%Y-%m-%d_%H-%i-%s';
     //defaults vor destinations
     foreach (BackWPup::get_registered_destinations() as $dest_key => $dest) {
         if (!empty($dest['class'])) {
             $dest_object = BackWPup::get_destination($dest_key);
             $default = array_merge($default, $dest_object->option_defaults());
         }
     }
     //defaults vor job types
     foreach (BackWPup::get_job_types() as $job_type) {
         $default = array_merge($default, $job_type->option_defaults());
     }
     //return all
     if (empty($key)) {
         return $default;
     }
     //return one default setting
     if (isset($default[$key])) {
         return $default[$key];
     } else {
         return false;
     }
 }
开发者ID:demochko-ol,项目名称:hezy,代码行数:50,代码来源:class-option.php

示例5: page

    /**
     *
     */
    public static function page()
    {
        if (!empty($_GET['jobid'])) {
            $jobid = (int) $_GET['jobid'];
        } else {
            //generate jobid if not exists
            $newjobid = BackWPup_Option::get_job_ids();
            sort($newjobid);
            $jobid = end($newjobid) + 1;
        }
        $destinations = BackWPup::get_registered_destinations();
        $job_types = BackWPup::get_job_types();
        ?>
    <div class="wrap" id="backwpup-page">
		<?php 
        echo '<h2><span id="backwpup-page-icon">&nbsp;</span>' . sprintf(__('%1$s Job: %2$s', 'backwpup'), BackWPup::get_plugin_data('name'), '<span id="h2jobtitle">' . esc_html(BackWPup_Option::get($jobid, 'name')) . '</span>') . '</h2>';
        //default tabs
        $tabs = array('job' => array('name' => __('General', 'backwpup'), 'display' => TRUE), 'cron' => array('name' => __('Schedule', 'backwpup'), 'display' => TRUE));
        //add jobtypes to tabs
        $job_job_types = BackWPup_Option::get($jobid, 'type');
        foreach ($job_types as $typeid => $typeclass) {
            $tabid = 'jobtype-' . strtolower($typeid);
            $tabs[$tabid]['name'] = $typeclass->info['name'];
            $tabs[$tabid]['display'] = TRUE;
            if (!in_array($typeid, $job_job_types)) {
                $tabs[$tabid]['display'] = FALSE;
            }
        }
        //add destinations to tabs
        $jobdests = BackWPup_Option::get($jobid, 'destinations');
        foreach ($destinations as $destid => $dest) {
            $tabid = 'dest-' . strtolower($destid);
            $tabs[$tabid]['name'] = sprintf(__('To: %s', 'backwpup'), $dest['info']['name']);
            $tabs[$tabid]['display'] = TRUE;
            if (!in_array($destid, $jobdests)) {
                $tabs[$tabid]['display'] = FALSE;
            }
        }
        //display tabs
        echo '<h2 class="nav-tab-wrapper">';
        foreach ($tabs as $id => $tab) {
            $addclass = '';
            if ($id == $_GET['tab']) {
                $addclass = ' nav-tab-active';
            }
            $display = '';
            if (!$tab['display']) {
                $display = ' style="display:none;"';
            }
            echo '<a href="' . wp_nonce_url(network_admin_url('admin.php') . '?page=backwpupeditjob&tab=' . $id . '&jobid=' . $jobid, 'edit-job') . '" class="nav-tab' . $addclass . '" id="tab-' . $id . '" data-nexttab="' . $id . '" ' . $display . '>' . $tab['name'] . '</a>';
        }
        echo '</h2>';
        //display messages
        BackWPup_Admin::display_messages();
        echo '<form name="editjob" id="editjob" method="post" action="' . admin_url('admin-post.php') . '">';
        echo '<input type="hidden" id="jobid" name="jobid" value="' . $jobid . '" />';
        echo '<input type="hidden" name="tab" value="' . $_GET['tab'] . '" />';
        echo '<input type="hidden" name="nexttab" value="' . $_GET['tab'] . '" />';
        echo '<input type="hidden" name="page" value="backwpupeditjob" />';
        echo '<input type="hidden" name="action" value="backwpup" />';
        echo '<input type="hidden" name="anchor" value="" />';
        wp_nonce_field('backwpupeditjob_page');
        wp_nonce_field('backwpup_ajax_nonce', 'backwpupajaxnonce', FALSE);
        switch ($_GET['tab']) {
            case 'job':
                echo '<div class="table" id="info-tab-job">';
                ?>
				<h3 class="title"><?php 
                _e('Job Name', 'backwpup');
                ?>
</h3>
				<p></p>
				<table class="form-table">
					<tr>
						<th scope="row"><label for="name"><?php 
                _e('Please name this job.', 'backwpup');
                ?>
</label></th>
						<td>
							<input name="name" type="text" id="name" data-empty="<?php 
                _e('New Job', 'backwpup');
                ?>
"
								   value="<?php 
                echo BackWPup_Option::get($jobid, 'name');
                ?>
" class="regular-text" />
						</td>
					</tr>
				</table>

				<h3 class="title"><?php 
                _e('Job Tasks', 'backwpup');
                ?>
</h3>
				<p></p>
				<table class="form-table">
//.........这里部分代码省略.........
开发者ID:byadrenaline,项目名称:laseravalon_wp,代码行数:101,代码来源:class-page-editjob.php

示例6: run

 /**
  * Run baby run
  */
 public function run()
 {
     global $wpdb;
     /* @var wpdb $wpdb */
     //disable output buffering
     if ($level = ob_get_level()) {
         for ($i = 0; $i < $level; $i++) {
             ob_end_clean();
         }
     }
     // Job can't run it is not created
     if (empty($this->steps_todo) || empty($this->logfile)) {
         $running_file = BackWPup::get_plugin_data('running_file');
         if (file_exists($running_file)) {
             unlink($running_file);
         }
         return;
     }
     //Check double running and inactivity
     $last_update = microtime(true) - $this->timestamp_last_update;
     if (!empty($this->pid) && $last_update > 300) {
         $this->log(__('Job restarts due to inactivity for more than 5 minutes.', 'backwpup'), E_USER_WARNING);
     } elseif (!empty($this->pid)) {
         return;
     }
     // set timestamp of script start
     $this->timestamp_script_start = microtime(true);
     //set Pid
     $this->pid = self::get_pid();
     $this->uniqid = uniqid('', true);
     //Early write new working file
     $this->write_running_file();
     if ($this->is_debug()) {
         @ini_set('error_log', $this->logfile);
         error_reporting(-1);
     }
     @ini_set('display_errors', '0');
     @ini_set('log_errors', '1');
     @ini_set('html_errors', '0');
     @ini_set('report_memleaks', '1');
     @ini_set('zlib.output_compression', '0');
     @ini_set('implicit_flush', '0');
     //set temp folder
     $can_set_temp_env = true;
     $protected_env_vars = explode(',', ini_get('safe_mode_protected_env_vars'));
     //removed in php 5.4.0
     foreach ($protected_env_vars as $protected_env) {
         if (strtoupper(trim($protected_env)) == 'TMPDIR') {
             $can_set_temp_env = false;
         }
     }
     if ($can_set_temp_env) {
         @putenv('TMPDIR=' . BackWPup::get_plugin_data('TEMP'));
     }
     //Write Wordpress DB errors to log
     $wpdb->suppress_errors(false);
     $wpdb->hide_errors();
     //set wp max memory limit
     @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
     //set error handler
     if (!empty($this->logfile)) {
         if ($this->is_debug()) {
             set_error_handler(array($this, 'log'));
         } else {
             set_error_handler(array($this, 'log'), E_ALL ^ E_NOTICE);
         }
     }
     set_exception_handler(array($this, 'exception_handler'));
     // execute function on job shutdown  register_shutdown_function( array( $this, 'shutdown' ) );
     add_action('shutdown', array($this, 'shutdown'));
     if (function_exists('pcntl_signal')) {
         $signals = array('SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGABRT', 'SIGBUS', 'SIGFPE', 'SIGSEGV', 'SIGTERM', 'SIGSTKFLT', 'SIGUSR1', 'SIGUSR2', 'SIGXCPU', 'SIGXFSZ', 'SIGPWR', 'SIGSYS');
         $signals = apply_filters('backwpup_job_signals_to_handel', $signals);
         declare (ticks=1);
         $this->signal = 0;
         foreach ($signals as $signal) {
             if (defined($signal)) {
                 pcntl_signal(constant($signal), array($this, 'signal_handler'), false);
             }
         }
     }
     $job_types = BackWPup::get_job_types();
     //go step by step
     foreach ($this->steps_todo as $this->step_working) {
         //Check if step already done
         if (in_array($this->step_working, $this->steps_done, true)) {
             continue;
         }
         //calc step percent
         if (count($this->steps_done) > 0) {
             $this->step_percent = round(count($this->steps_done) / count($this->steps_todo) * 100);
         } else {
             $this->step_percent = 1;
         }
         // do step tries
         while (true) {
             if ($this->steps_data[$this->step_working]['STEP_TRY'] >= get_site_option('backwpup_cfg_jobstepretry')) {
//.........这里部分代码省略.........
开发者ID:skinnard,项目名称:FTL-2,代码行数:101,代码来源:class-job.php

示例7: load

 /**
  *
  */
 public static function load()
 {
     //Create Table
     self::$listtable = new self();
     switch (self::$listtable->current_action()) {
         case 'delete':
             //Delete Job
             if (!current_user_can('backwpup_jobs_edit')) {
                 break;
             }
             if (is_array($_GET['jobs'])) {
                 check_admin_referer('bulk-jobs');
                 foreach ($_GET['jobs'] as $jobid) {
                     wp_clear_scheduled_hook('backwpup_cron', array('id' => absint($jobid)));
                     BackWPup_Option::delete_job(absint($jobid));
                 }
             }
             break;
         case 'copy':
             //Copy Job
             if (!current_user_can('backwpup_jobs_edit')) {
                 break;
             }
             $old_job_id = absint($_GET['jobid']);
             check_admin_referer('copy-job_' . $old_job_id);
             //create new
             $newjobid = BackWPup_Option::get_job_ids();
             sort($newjobid);
             $newjobid = end($newjobid) + 1;
             $old_options = BackWPup_Option::get_job($old_job_id);
             foreach ($old_options as $key => $option) {
                 if ($key === "jobid") {
                     $option = $newjobid;
                 }
                 if ($key === "name") {
                     $option = __('Copy of', 'backwpup') . ' ' . $option;
                 }
                 if ($key === "activetype") {
                     $option = '';
                 }
                 if ($key === "archivename") {
                     $option = str_replace($old_job_id, $newjobid, $option);
                 }
                 if ($key === "logfile" || $key === "lastbackupdownloadurl" || $key === "lastruntime" || $key === "lastrun") {
                     continue;
                 }
                 BackWPup_Option::update($newjobid, $key, $option);
             }
             break;
         case 'runnow':
             $jobid = absint($_GET['jobid']);
             if ($jobid) {
                 if (!current_user_can('backwpup_jobs_start')) {
                     wp_die(__('Sorry, you don\'t have permissions to do that.', 'backwpup'));
                 }
                 check_admin_referer('backwpup_job_run-runnowlink');
                 //check temp folder
                 $temp_folder_message = BackWPup_File::check_folder(BackWPup::get_plugin_data('TEMP'), TRUE);
                 BackWPup_Admin::message($temp_folder_message, TRUE);
                 //check log folder
                 $log_folder = get_site_option('backwpup_cfg_logfolder');
                 $log_folder = BackWPup_File::get_absolute_path($log_folder);
                 $log_folder_message = BackWPup_File::check_folder($log_folder);
                 BackWPup_Admin::message($log_folder_message, TRUE);
                 //check backup destinations
                 $job_types = BackWPup::get_job_types();
                 $job_conf_types = BackWPup_Option::get($jobid, 'type');
                 $creates_file = FALSE;
                 foreach ($job_types as $id => $job_type_class) {
                     if (in_array($id, $job_conf_types, true) && $job_type_class->creates_file()) {
                         $creates_file = TRUE;
                         break;
                     }
                 }
                 if ($creates_file) {
                     $job_conf_dests = BackWPup_Option::get($jobid, 'destinations');
                     $destinations = 0;
                     /* @var BackWPup_Destinations $dest_class */
                     foreach (BackWPup::get_registered_destinations() as $id => $dest) {
                         if (!in_array($id, $job_conf_dests, true) || empty($dest['class'])) {
                             continue;
                         }
                         $dest_class = BackWPup::get_destination($id);
                         $job_settings = BackWPup_Option::get_job($jobid);
                         if (!$dest_class->can_run($job_settings)) {
                             BackWPup_Admin::message(sprintf(__('The job "%s" destination "%s" is not configured properly', 'backwpup'), esc_attr(BackWPup_Option::get($jobid, 'name')), $id), TRUE);
                         }
                         $destinations++;
                     }
                     if ($destinations < 1) {
                         BackWPup_Admin::message(sprintf(__('The job "%s" needs properly configured destinations to run!', 'backwpup'), esc_attr(BackWPup_Option::get($jobid, 'name'))), TRUE);
                     }
                 }
                 //only start job if messages empty
                 $log_messages = BackWPup_Admin::get_messages();
                 if (empty($log_messages)) {
                     $old_log_file = BackWPup_Option::get($jobid, 'logfile');
//.........这里部分代码省略.........
开发者ID:skinnard,项目名称:FTL-2,代码行数:101,代码来源:class-page-jobs.php

示例8: run

 /**
  * Run baby run
  */
 public function run()
 {
     global $wpdb;
     /* @var wpdb $wpdb */
     // Job can't run it is not created
     if (empty($this->steps_todo) || empty($this->logfile)) {
         $running_file = BackWPup::get_plugin_data('running_file');
         if (file_exists($running_file)) {
             unlink($running_file);
         }
         return;
     }
     //Check double running and inactivity
     $last_update = microtime(TRUE) - $this->timestamp_last_update;
     if (!empty($this->pid) && $last_update > 300) {
         $this->log(__('Job restarts due to inactivity for more than 5 minutes.', 'backwpup'), E_USER_WARNING);
     } elseif (!empty($this->pid)) {
         return;
     }
     // set timestamp of script start
     $this->timestamp_script_start = microtime(TRUE);
     //set Pid
     $this->pid = self::get_pid();
     $this->uniqid = uniqid('', TRUE);
     //Early write new working file
     $this->write_running_file();
     //set function for PHP user defined error handling
     $this->run['PHP']['INI']['ERROR_LOG'] = ini_get('error_log');
     $this->run['PHP']['INI']['ERROR_REPORTING'] = ini_get('error_reporting');
     $this->run['PHP']['INI']['LOG_ERRORS'] = ini_get('log_errors');
     $this->run['PHP']['INI']['DISPLAY_ERRORS'] = ini_get('display_errors');
     $this->run['PHP']['INI']['HTML_ERRORS'] = ini_get('html_errors');
     $this->run['PHP']['INI']['REPORT_MEMLEAKS'] = ini_get('report_memleaks');
     $this->run['PHP']['INI']['ZLIB_OUTPUT_COMPRESSION'] = ini_get('zlib.output_compression');
     $this->run['PHP']['INI']['IMPLICIT_FLUSH'] = ini_get('implicit_flush');
     if ($this->is_debug()) {
         @ini_set('error_log', $this->logfile);
         error_reporting(-1);
     }
     @ini_set('display_errors', '0');
     @ini_set('log_errors', '1');
     @ini_set('html_errors', '0');
     @ini_set('report_memleaks', '1');
     @ini_set('zlib.output_compression', '0');
     @ini_set('implicit_flush', '0');
     //increase MySQL timeout
     @ini_set('mysql.connect_timeout', '360');
     //set temp folder
     $can_set_temp_env = TRUE;
     $protected_env_vars = explode(',', ini_get('safe_mode_protected_env_vars'));
     //removed in php 5.4.0
     foreach ($protected_env_vars as $protected_env) {
         if (strtoupper(trim($protected_env)) == 'TMPDIR') {
             $can_set_temp_env = FALSE;
         }
     }
     if ($can_set_temp_env) {
         $this->run['PHP']['ENV']['TEMPDIR'] = getenv('TMPDIR');
         @putenv('TMPDIR=' . BackWPup::get_plugin_data('TEMP'));
     }
     //Write Wordpress DB errors to log
     $wpdb->suppress_errors(FALSE);
     $wpdb->hide_errors();
     //set wp max memory limit
     @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
     //set error handler
     if (!empty($this->logfile)) {
         if ($this->is_debug()) {
             set_error_handler(array($this, 'log'));
         } else {
             set_error_handler(array($this, 'log'), E_ALL ^ E_NOTICE);
         }
     }
     set_exception_handler(array($this, 'exception_handler'));
     //not loading Textdomains and unload loaded
     if (!strstr($this->log_level, 'translated')) {
         add_filter('override_load_textdomain', create_function('', 'return TRUE;'));
         $GLOBALS['l10n'] = array();
     }
     // execute function on job shutdown  register_shutdown_function( array( $this, 'shutdown' ) );
     add_action('shutdown', array($this, 'shutdown'));
     //remove_action('shutdown', array( $this, 'shutdown' ));
     if (function_exists('pcntl_signal')) {
         $signals = array('SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT', 'SIGBUS', 'SIGFPE', 'SIGSEGV', 'SIGALRM', 'SIGTERM', 'SIGSTKFLT', 'SIGUSR1', 'SIGUSR2', 'SIGCHLD', 'SIGCONT', 'SIGTSTP', 'SIGTTIN', 'SIGTTOU', 'SIGURG', 'SIGXCPU', 'SIGXFSZ', 'SIGVTALRM', 'SIGPROF', 'SIGWINCH', 'SIGIO', 'SIGPWR', 'SIGSYS');
         declare (ticks=1);
         foreach ($signals as $signal) {
             if (defined($signal)) {
                 pcntl_signal(constant($signal), array($this, 'shutdown'), FALSE);
             }
         }
     }
     //clear output buffer
     while (@ob_end_clean()) {
     }
     @flush();
     $job_types = BackWPup::get_job_types();
     //go step by step
//.........这里部分代码省略.........
开发者ID:Giede,项目名称:backwpup,代码行数:101,代码来源:class-job.php

示例9: load

 /**
  *
  */
 public static function load()
 {
     //Create Table
     self::$listtable = new self();
     switch (self::$listtable->current_action()) {
         case 'delete':
             //Delete Job
             if (!current_user_can('backwpup_jobs_edit')) {
                 break;
             }
             if (is_array($_GET['jobs'])) {
                 check_admin_referer('bulk-jobs');
                 foreach ($_GET['jobs'] as $jobid) {
                     wp_clear_scheduled_hook('backwpup_cron', array('id' => $jobid));
                     BackWPup_Option::delete_job($jobid);
                 }
             }
             break;
         case 'copy':
             //Copy Job
             if (!current_user_can('backwpup_jobs_edit')) {
                 break;
             }
             $old_job_id = (int) $_GET['jobid'];
             check_admin_referer('copy-job_' . $_GET['jobid']);
             //create new
             $newjobid = BackWPup_Option::get_job_ids();
             sort($newjobid);
             $newjobid = end($newjobid) + 1;
             $old_options = BackWPup_Option::get_job($old_job_id);
             foreach ($old_options as $key => $option) {
                 if ($key == "jobid") {
                     $option = $newjobid;
                 }
                 if ($key == "name") {
                     $option = __('Copy of', 'backwpup') . ' ' . $option;
                 }
                 if ($key == "activetype") {
                     $option = '';
                 }
                 if ($key == "archivename") {
                     $option = str_replace($_GET['jobid'], $newjobid, $option);
                 }
                 if ($key == "logfile" || $key == "lastbackupdownloadurl" || $key == "lastruntime" || $key == "lastrun") {
                     continue;
                 }
                 BackWPup_Option::update($newjobid, $key, $option);
             }
             break;
         case 'runnow':
             $_GET['jobid'] = (int) $_GET['jobid'];
             if (!empty($_GET['jobid'])) {
                 if (!current_user_can('backwpup_jobs_start')) {
                     wp_die(__('Sorry, you don\'t have permissions to do that.', 'backwpup'));
                 }
                 check_admin_referer('backwpup_job_run-runnowlink');
                 //check temp folder
                 $temp_folder_message = BackWPup_File::check_folder(BackWPup::get_plugin_data('TEMP'), TRUE);
                 BackWPup_Admin::message($temp_folder_message, TRUE);
                 //check log folder
                 $log_folder = get_site_option('backwpup_cfg_logfolder');
                 $log_folder = BackWPup_File::get_absolute_path($log_folder);
                 $log_folder_message = BackWPup_File::check_folder($log_folder);
                 BackWPup_Admin::message($log_folder_message, TRUE);
                 //check backup destinations
                 $job_types = BackWPup::get_job_types();
                 $job_conf_types = BackWPup_Option::get($_GET['jobid'], 'type');
                 $creates_file = FALSE;
                 foreach ($job_types as $id => $job_type_class) {
                     if (in_array($id, $job_conf_types) && $job_type_class->creates_file()) {
                         $creates_file = TRUE;
                         break;
                     }
                 }
                 if ($creates_file) {
                     $job_conf_dests = BackWPup_Option::get($_GET['jobid'], 'destinations');
                     $destinations = 0;
                     /* @var BackWPup_Destinations $dest_class */
                     foreach (BackWPup::get_registered_destinations() as $id => $dest) {
                         if (!in_array($id, $job_conf_dests) || empty($dest['class'])) {
                             continue;
                         }
                         $dest_class = BackWPup::get_destination($id);
                         $job_settings = BackWPup_Option::get_job($_GET['jobid']);
                         if (!$dest_class->can_run($job_settings)) {
                             BackWPup_Admin::message(sprintf(__('The job "%s" destination "%s" is not configured properly', 'backwpup'), esc_attr(BackWPup_Option::get($_GET['jobid'], 'name')), $id), TRUE);
                         }
                         $destinations++;
                     }
                     if ($destinations < 1) {
                         BackWPup_Admin::message(sprintf(__('The job "%s" needs properly configured destinations to run!', 'backwpup'), esc_attr(BackWPup_Option::get($_GET['jobid'], 'name'))), TRUE);
                     }
                 }
                 //check server callback
                 $raw_response = BackWPup_Job::get_jobrun_url('test');
                 $test_result = '';
                 if (is_wp_error($raw_response)) {
//.........这里部分代码省略.........
开发者ID:NgocNH-NTQ,项目名称:wordpress-training,代码行数:101,代码来源:class-page-jobs.php

示例10: run

 /**
  * Run baby run
  */
 public function run()
 {
     global $wpdb;
     /* @var wpdb $wpdb */
     // Job can't run it is not created
     if (empty($this->steps_todo)) {
         return;
     }
     //Check double running and inactivity
     $last_update = microtime(TRUE) - $this->timestamp_last_update;
     if (!empty($this->pid) && $last_update > 300) {
         $this->log(__('Job restarts due to inactivity for more than 5 minutes.', 'backwpup'), E_USER_WARNING);
     } elseif (!empty($this->pid)) {
         return;
     }
     // set timestamp of script start
     $this->timestamp_script_start = microtime(TRUE);
     //set Pid
     $this->pid = self::get_pid();
     //set function for PHP user defined error handling
     $this->temp['PHP']['INI']['ERROR_LOG'] = ini_get('error_log');
     $this->temp['PHP']['INI']['ERROR_REPORTING'] = ini_get('error_reporting');
     $this->temp['PHP']['INI']['LOG_ERRORS'] = ini_get('log_errors');
     $this->temp['PHP']['INI']['DISPLAY_ERRORS'] = ini_get('display_errors');
     $this->temp['PHP']['INI']['HTML_ERRORS'] = ini_get('html_errors');
     $this->temp['PHP']['INI']['REPORT_MEMLEAKS'] = ini_get('report_memleaks');
     $this->temp['PHP']['INI']['ZLIB_OUTPUT_COMPRESSION'] = ini_get('zlib.output_compression');
     $this->temp['PHP']['INI']['IMPLICIT_FLUSH'] = ini_get('implicit_flush');
     @ini_set('error_log', $this->logfile);
     error_reporting(E_ALL ^ E_STRICT);
     @ini_set('display_errors', 'Off');
     @ini_set('log_errors', 'On');
     @ini_set('html_errors', 'Off');
     @ini_set('report_memleaks', 'On');
     @ini_set('zlib.output_compression', 'Off');
     @ini_set('implicit_flush', 'Off');
     //increase MySQL timeout
     @ini_set('mysql.connect_timeout', '300');
     $wpdb->query("SET session wait_timeout = 300");
     //set temp folder
     $can_set_temp_env = TRUE;
     $protected_env_vars = explode(',', ini_get('safe_mode_protected_env_vars'));
     foreach ($protected_env_vars as $protected_env) {
         if (strtoupper(trim($protected_env)) == 'TMPDIR') {
             $can_set_temp_env = FALSE;
         }
     }
     if ($can_set_temp_env) {
         $this->temp['PHP']['ENV']['TEMPDIR'] = getenv('TMPDIR');
         @putenv('TMPDIR=' . BackWPup::get_plugin_data('TEMP'));
     }
     //Write Wordpress DB errors to log
     $wpdb->suppress_errors(FALSE);
     $wpdb->hide_errors();
     //set wp max memory limit
     @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
     //set error handler
     set_error_handler(array($this, 'log'), E_ALL ^ E_STRICT);
     set_exception_handler(array($this, 'exception_handler'));
     //not loading Textdomains and unload loaded
     if (get_site_option('backwpup_cfg_jobnotranslate')) {
         add_filter('override_load_textdomain', create_function('', 'return TRUE;'));
         $GLOBALS['l10n'] = array();
     }
     // execute function on job shutdown  register_shutdown_function( array( $this, 'shutdown' ) );
     add_action('shutdown', array($this, 'shutdown'));
     //remove_action('shutdown', array( $this, 'shutdown' ));
     if (function_exists('pcntl_signal')) {
         declare (ticks=1);
         //set ticks
         pcntl_signal(15, array($this, 'shutdown'));
         //SIGTERM
         //pcntl_signal(9, array($this,'shutdown')); //SIGKILL
         pcntl_signal(2, array($this, 'shutdown'));
         //SIGINT
     }
     //clear output buffer
     while (@ob_end_clean()) {
     }
     @flush();
     $job_types = BackWPup::get_job_types();
     //go step by step
     foreach ($this->steps_todo as $this->step_working) {
         //Check if step already done
         if (in_array($this->step_working, $this->steps_done)) {
             continue;
         }
         //calc step percent
         if (count($this->steps_done) > 0) {
             $this->step_percent = round(count($this->steps_done) / count($this->steps_todo) * 100);
         } else {
             $this->step_percent = 1;
         }
         // do step tries
         while ($this->steps_data[$this->step_working]['STEP_TRY'] < get_site_option('backwpup_cfg_jobstepretry')) {
             // break if try has marked as done for no more tries
             if (in_array($this->step_working, $this->steps_done)) {
//.........这里部分代码省略.........
开发者ID:isrealconsulting,项目名称:site,代码行数:101,代码来源:class-job.php


注:本文中的BackWPup::get_job_types方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。