%PDF- %PDF-
Direktori : /var/www/pn/beta/64801_wp-content/plugins/mailpoet/lib/Util/ |
Current File : /var/www/pn/beta/64801_wp-content/plugins/mailpoet/lib/Util/ProgressBar.php |
<?php namespace MailPoet\Util; use MailPoet\Config\Env; if(!defined('ABSPATH')) exit; if(!class_exists('ProgressBar', false)) { /** * The Progress Bar class * */ class ProgressBar { private $total_count = 0; private $current_count = 0; private $filename; public $url; /** * Initialize the class and set its properties. * */ public function __construct($progress_bar_id) { $filename = $progress_bar_id . '-progress.json'; $this->filename = Env::$temp_path . '/' . $filename; $this->url = Env::$temp_url . '/' . $filename; $counters = $this->readProgress(); if(isset($counters->total)) { $this->total_count = $counters->total; } if(isset($counters->current)) { $this->current_count = $counters->current; } } /** * Get the progress file URL * * @return string Progress file URL */ public function getUrl() { return $this->url; } /** * Read the progress counters * * @return array|false Array of counters */ private function readProgress() { if(file_exists($this->filename)) { $json_content = file_get_contents($this->filename); return json_decode($json_content); } else { return false; } } /** * Set the total count * * @param int $count Count */ public function setTotalCount($count) { if(($count != $this->total_count) || ($count == 0)) { $this->total_count = $count; $this->current_count = 0; $this->saveProgress(); } } /** * Increment the current count * * @param int $count Count */ public function incrementCurrentCount($count) { $this->current_count += $count; $this->saveProgress(); } /** * Save the progress counters * */ private function saveProgress() { file_put_contents($this->filename, json_encode(array( 'total' => $this->total_count, 'current' => $this->current_count, ))); } /** * Delete the progress file * */ public function deleteProgressFile() { unlink($this->filename); } } }