芝麻web文件管理V1.00
编辑当前文件:/home4/randall/public_html/sl/wp-content/plugins/mailchimp-for-wp/includes/class-queue.php
option_name = $option_name; register_shutdown_function(array( $this, 'save' )); } /** * Load jobs from option */ protected function load() { if (! is_null($this->jobs)) { return; } $jobs = get_option($this->option_name, array()); if (! is_array($jobs)) { $jobs = array(); } else { $valid_jobs = array(); foreach ($jobs as $i => $obj) { // filter invalid data from array if (! is_object($obj) || empty($obj->data)) { continue; } // make sure each job is instance of MC4WP_Queue_Job if ($obj instanceof MC4WP_Queue_Job) { $job = $obj; } else { $job = new MC4WP_Queue_Job($obj->data); $job->id = $obj->id; } $valid_jobs[] = $job; } $jobs = $valid_jobs; } $this->jobs = $jobs; } /** * Get all jobs in the queue * * @return MC4WP_Queue_Job[] Array of jobs */ public function all() { $this->load(); return $this->jobs; } /** * Add job to queue * * @param mixed $data * @return boolean */ public function put($data) { $this->load(); // check if we already have a job with same data foreach ($this->jobs as $job) { if ($job->data === $data) { return false; } } // if we have more than MAX_JOB_COUNT jobs, remove first job item. // this protects against an ever-growing job list, but also potentially loses jobs if the queue is not processed soon enough. if (count($this->jobs) > self::MAX_JOB_COUNT) { array_shift($this->jobs); } // add job to end of jobs array $job = new MC4WP_Queue_Job($data); $this->jobs[] = $job; $this->dirty = true; return true; } /** * Get all jobs in the queue * * @return MC4WP_Queue_Job|false */ public function get() { $this->load(); // do we have jobs? if (count($this->jobs) === 0) { return false; } // return first element return reset($this->jobs); } /** * @param MC4WP_Queue_Job $job */ public function delete(MC4WP_Queue_Job $job) { $this->load(); $index = array_search($job, $this->jobs, true); // check for "false" here, as 0 is a valid index. if ($index !== false) { unset($this->jobs[ $index ]); $this->jobs = array_values($this->jobs); $this->dirty = true; } } /** * @param MC4WP_Queue_Job $job */ public function reschedule(MC4WP_Queue_Job $job) { $this->load(); // delete job from start of queue $this->delete($job); // add job to end of queue $this->jobs[] = $job; $this->dirty = true; } /** * Reset queue */ public function reset() { $this->jobs = array(); $this->dirty = true; } /** * Save the queue */ public function save() { if (! $this->dirty || is_null($this->jobs)) { return false; } $success = update_option($this->option_name, $this->jobs, false); if ($success) { $this->dirty = false; } return $success; } }