本文整理汇总了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();
}
示例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;
}
}
示例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));
}
示例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;
}
}
示例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"> </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">
//.........这里部分代码省略.........
示例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')) {
//.........这里部分代码省略.........
示例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');
//.........这里部分代码省略.........
示例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
//.........这里部分代码省略.........
示例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)) {
//.........这里部分代码省略.........
示例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)) {
//.........这里部分代码省略.........