Subversion Repositories vnag

Rev

Rev 76 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 76 Rev 77
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
w==
23
Q==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 * VNag - Nagios Framework for PHP
28
 * VNag - Nagios Framework for PHP
Line 61... Line 61...
61
                } else if (file_exists($file = "$path/libraries/classes/Config.php")) { // Variant 2 (5.0.x)
61
                } else if (file_exists($file = "$path/libraries/classes/Config.php")) { // Variant 2 (5.0.x)
62
                        $regex = '@\$this->set\(\'PMA_VERSION\', \'(.*)\'\);@ismU';
62
                        $regex = '@\$this->set\(\'PMA_VERSION\', \'(.*)\'\);@ismU';
63
                } else if (file_exists($file = "$path/libraries/Config.class.php")) { // Variant 1 (very old)
63
                } else if (file_exists($file = "$path/libraries/Config.class.php")) { // Variant 1 (very old)
64
                        $regex = '@\$this->set\(\'PMA_VERSION\', \'(.*)\'\);@ismU';
64
                        $regex = '@\$this->set\(\'PMA_VERSION\', \'(.*)\'\);@ismU';
65
                } else {
65
                } else {
66
                        throw new Exception("Cannot find the phpMyAdmin version information at $path");
66
                        throw new VNagException("Cannot find the phpMyAdmin version information at $path");
67
                }
67
                }
68
 
68
 
69
                $cont = file_get_contents($file);
69
                $cont = @file_get_contents($file);
-
 
70
                if ($cont === false) {
-
 
71
                        throw new VNagException("Cannot parse the phpMyAdmin version information at $path (cannot open file $file)");
-
 
72
                }
70
                if (!preg_match($regex, $cont, $m)) {
73
                if (!preg_match($regex, $cont, $m)) {
71
                        throw new Exception("Cannot parse the phpMyAdmin version information at $path");
74
                        throw new VNagException("Cannot parse the phpMyAdmin version information at $path (cannot find version using regex)");
72
                }
75
                }
73
 
76
 
74
                return $m[1];
77
                return $m[1];
75
        }
78
        }
76
 
79
 
77
        protected function get_latest_version() {
80
        protected function get_latest_version() {
78
                $cont = $this->url_get_contents('https://www.phpmyadmin.net/home_page/version.json'); // alternatively version.php
81
                $cont = $this->url_get_contents('https://www.phpmyadmin.net/home_page/version.json'); // alternatively version.php
79
                if ($cont === false) {
82
                if ($cont === false) {
80
                        throw new Exception('Cannot parse version from phpMyAdmin website. The plugin probably needs to be updated. A');
83
                        throw new VNagException('Cannot parse version from phpMyAdmin website. The plugin probably needs to be updated. (Cannot access phpmyadmin.net)');
81
                }
84
                }
82
 
85
 
83
                $json = @json_decode($cont, true);
86
                $json = @json_decode($cont, true);
84
                if ($json === false) {
87
                if ($json === false) {
85
                        throw new Exception('Cannot parse version from phpMyAdmin website. The plugin probably needs to be updated. B');
88
                        throw new VNagException('Cannot parse version from phpMyAdmin website. The plugin probably needs to be updated. (Invalid JSON data downloaded from phpmyadmin.net)');
86
                }
89
                }
87
                return $json['version'];
90
                return $json['version'];
88
        }
91
        }
89
 
92
 
90
        protected function cbRun($optional_args=array()) {
93
        protected function cbRun($optional_args=array()) {
91
                $system_dir = $this->argSystemDir->getValue();
94
                $system_dir = $this->argSystemDir->getValue();
92
                if (empty($system_dir)) {
95
                if (empty($system_dir)) {
93
                        throw new Exception("Please specify the directory of the phpMyAdmin installation.");
96
                        throw new VNagException("Please specify the directory of the phpMyAdmin installation.");
94
                }
97
                }
95
                $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir);
98
                $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir);
96
 
99
 
97
                if (!is_dir($system_dir)) {
100
                if (!is_dir($system_dir)) {
98
                        throw new Exception('Directory "'.$system_dir.'" not found.');
101
                        throw new VNagException('Directory "'.$system_dir.'" not found.');
99
                }
102
                }
100
 
103
 
101
                $version = $this->get_local_version($system_dir);
104
                $version = $this->get_local_version($system_dir);
102
 
105
 
103
                $latest_version = $this->get_latest_version();
106
                $latest_version = $this->get_latest_version();