/** * @return current server time */ public function getServerTime() { $query = new Elios_Service_Thetvdb_QueryBuilder(); $query->select("Time"); $query->from("/api/Updates.php?type=none"); $query->getQueryAsString(); foreach ($query->execute() as $t) { return $t->nodeValue; } }
/** * * Returns Mixed: xml document with loaded elements/ZIP file * @param Elios_Service_Thetvdb_QueryBuilder $query */ public function executeQuery($query) { //@todo check user rights if (strpos($query->getQueryAsString(), '.zip')) { //put zip file in cache folder $dirname = md5(rand(1, time())); mkdir(dirname(__FILE__) . '/cache/' . $dirname, 0770); $file = fopen(dirname(__FILE__) . '/cache/' . $dirname . '/file.zip', 'a+'); fwrite($file, file_get_contents($query->getQueryAsString())); fclose($file); $zip = new ZipArchive(); if ($zip->open(dirname(__FILE__) . '/cache/' . $dirname . '/file.zip')) { $zip->extractTo(dirname(__FILE__) . '/cache/' . $dirname); $files = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $c = $zip->statIndex($i); $files[] = basename($c['name']); } $zip->close(); $XmlReader = new Elios_Xml_Reader(); $xmlFiles = array(); $xmlFiles['dir'] = dirname(__FILE__) . '/cache/' . $dirname; foreach ($files as $f) { if ($query->select == '*') { $xmlFiles[$f] = dirname(__FILE__) . '/cache/' . $dirname . '/' . $f; } else { //@todo } } unlink(dirname(__FILE__) . '/cache/' . $dirname . '/file.zip'); return $xmlFiles; } else { //@todo throw exeception return false; } } else { $XmlReader = new Elios_Xml_Reader(); $XmlReader->loadXml($query->getQueryAsString()); //print_r($XmlReader->getXml()); if ($query->select == '*') { return $XmlReader; } else { return $XmlReader->getElements($query->select); } } }