Marius Burkard
2016-04-20 4569cae57f127afd093794310ccd290d2d9fdf36
commit | author | age
bbc657 1 <?php
MC 2 /*
3 Copyright (c) 2012, ISPConfig UG
4 Contributors: web wack creations,  http://www.web-wack.at
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without modification,
8 are permitted provided that the following conditions are met:
9
10     * Redistributions of source code must retain the above copyright notice,
11       this list of conditions and the following disclaimer.
12     * Redistributions in binary form must reproduce the above copyright notice,
13       this list of conditions and the following disclaimer in the documentation
14       and/or other materials provided with the distribution.
15     * Neither the name of ISPConfig nor the names of its contributors
16       may be used to endorse or promote products derived from this software without
17       specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31 // Constants describing instances
32 define('INSTANCE_PENDING', 0);
33 define('INSTANCE_INSTALL', 1);
34 define('INSTANCE_ERROR', 2);
35 define('INSTANCE_SUCCESS', 3);
36 define('INSTANCE_REMOVE', 4);
37
38 // Constants describing packages
39 define('PACKAGE_LOCKED', 1);
40 define('PACKAGE_ENABLED', 2);
41 define('PACKAGE_OUTDATED', 3);
42 define('PACKAGE_ERROR_NOMETA', 4);
43
44 class ApsBase
45 {
b1a6a5 46     protected $log_prefix = '';
MC 47     protected $fetch_url = '';
48     protected $aps_version = '';
49     protected $packages_dir = '';
50     protected $temp_pkg_dir = '';
51     protected $interface_pkg_dir = '';
52     protected $interface_mode = false; // server mode by default
bbc657 53
b1a6a5 54     /**
MC 55      * Constructor
56      *
57      * @param $app the application instance (db handle + log method)
58      * @param $interface_mode act in interface (true) or server mode (false)
59      * @param $log_prefix a prefix to set before all log entries
60      */
61
62
63     public function __construct($app, $log_prefix = 'APS: ', $interface_mode = false)
64     {
65         $this->log_prefix = $log_prefix;
66         $this->interface_mode = $interface_mode;
67         $this->fetch_url = 'apscatalog.com';
26e265 68         $this->aps_version = '1.2';
b1a6a5 69         $this->packages_dir = ISPC_ROOT_PATH.'/aps_packages';
MC 70         $this->interface_pkg_dir = ISPC_ROOT_PATH.'/web/sites/aps_meta_packages';
71     }
72
73
74
75     /**
76      * Converts a given value to it's native representation in 1024 units
77      *
78      * @param $value the size to convert
79      * @return integer and string
80      */
81     public function convertSize($value)
82     {
83         $unit = array('Bytes', 'KB', 'MB', 'GB', 'TB');
84         return @round($value/pow(1024, ($i = floor(log($value, 1024)))), 2).' '.$unit[$i];
85     }
86
87
88
89     /**
90      * Determine a specific xpath from a given SimpleXMLElement handle. If the
91      * element is found, it's string representation is returned. If not,
92      * the return value will stay empty
93      *
94      * @param $xml_handle the SimpleXMLElement handle
95      * @param $query the XPath query
96      * @param $array define whether to return an array or a string
97      * @return $ret the return string
98      */
99     protected function getXPathValue($xml_handle, $query, $array = false)
100     {
101         $ret = '';
102
103         $xp_result = @($xml_handle->xpath($query)) ? $xml_handle->xpath($query) : false;
104         if($xp_result !== false) $ret = (($array === false) ? (string)$xp_result[0] : $xp_result);
105
106         return $ret;
107     }
108
bbc657 109 }
b1a6a5 110
MC 111 ?>