*/ class CpanelApiComponent extends Object { var $disableStartup = true; /** * WHM domain name * * @var string * @access private */ var $__domain = ''; /** * WHM port * default http port 2086 * default https port 2087 * * @var integer * @access private */ var $__port = 2086; /** * WHM username * * @var string * @access private */ var $__user = ''; /** * WHM password * * @var string * @access private */ var $__pass = ''; /** * WHM accessKey * * @var string * @access private */ var $__accessKey = ''; /** * Connect via https * * @var boolean * @access private */ var $__ssl = false; /** * cPanel URL string * * @var string * @access private */ var $__url = ''; /** * Generate the cPanel URL, returns true on success. * * @param array $params Must include domain, user and pass. Port and SSL optional. * @return boolean */ function init($params = array()) { if (isset($params['domain']) && $params['domain'] != '') $this->__domain = $params['domain']; else return false; if (isset($params['user']) && $params['user'] != '') $this->__user = $params['user']; else return false; if (isset($params['pass']) && $params['pass'] != '') { $this->__pass = $params['pass']; } else if (isset($params['accessKey']) && $params['accessKey'] != '') { $this->__accessKey = $params['accessKey']; } else { return false; } if (isset($params['port']) && $params['port'] != '') $this->__port = $params['port']; if (isset($params['ssl']) && $params['ssl'] != '') $this->__ssl = $params['ssl']; if ($this->__ssl) { $this->__url = 'https'; } else { $this->__url = 'http'; } $this->__url .= '://'.$this->__domain.':'.$this->__port; return true; } /** * Sends a cPanel API query and returns the result * * @param string $query cPanel API query to send, e.g.: '/xml-api/applist' * @return string */ function query($query = null) { if ($query) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->__url.$query); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if (isset($this->__accessKey) && $this->__accessKey != '') { curl_setopt($ch, CURLOPT_HEADER, 0); $customHeader[0] = "Authorization: WHM ".$this->__user.':'.$this->__accessKey; curl_setopt($ch,CURLOPT_HTTPHEADER, $customHeader); } else { curl_setopt($ch, CURLOPT_USERPWD, $this->__user.':'.$this->__pass); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); } $result = curl_exec($ch); curl_close($ch); return $result; } return false; } } ?>