public function testGeneratesXml() { $package = Package::create(self::$name)->setAuthor('VikiJel')->addExtension('com_test', self::$archive_src)->addLanguage(self::$ini_src)->addUpdateServer('http://example.com', 'testserver')->setScriptfile(self::$php_src); $instance = Xml::create($package)->init(); $simple_xml = simplexml_load_string((string) $instance); self::assertEquals('extension', (string) $simple_xml->getName()); self::assertEquals('2.5', (string) $simple_xml->attributes()->version); self::assertEquals('upgrade', (string) $simple_xml->attributes()->method); self::assertEquals('package', (string) $simple_xml->attributes()->type); self::assertEquals('1.0.0', (string) $simple_xml->version); self::assertEquals(self::$name, (string) $simple_xml->name); self::assertEquals('package_test', (string) $simple_xml->packagename); self::assertEquals(date('Y-m-d'), (string) $simple_xml->creationDate); self::assertEquals('http://example.com', (string) $simple_xml->updateservers->server); self::assertEquals('testserver', (string) $simple_xml->updateservers->server->attributes()->name); self::assertEquals(1, (int) $simple_xml->updateservers->server->attributes()->priority); self::assertEquals('extension', (string) $simple_xml->updateservers->server->attributes()->type); self::assertEquals('com_test', (string) $simple_xml->files->file->attributes()->id); self::assertEquals('some_file.zip', (string) $simple_xml->files->file); self::assertEquals('en-GB.pkg_package_test.ini', (string) $simple_xml->languages->language); self::assertEquals('en-GB', (string) $simple_xml->languages->language->attributes()->tag); self::assertEquals('pkg_package_test.php', (string) $simple_xml->scriptfile); self::assertContains('VikiJel', (string) $simple_xml->copyright); self::assertContains(date('Y'), (string) $simple_xml->copyright); self::assertContains('VikiJel', (string) $simple_xml->packager); self::assertContains('vikijel', (string) $simple_xml->packagerurl); }
/** * Ajax输出 * * @param $data 数据 * @param string $type 数据类型 text html xml json */ public function ajax($data, $type = "JSON") { $type = strtoupper($type); switch ($type) { case "HTML": case "TEXT": $_data = $data; break; case "XML": //XML处理 header('Content-Type: application/xml'); $_data = Xml::create($data); break; default: //JSON处理 header('Content-Type: application/json'); $_data = json_encode($data); } echo $_data; exit; }
/** * Fetches an external dataset. * * @param string $strURL The URL or directory of the file * @param string $strType Declares the type of data (plain*, xml, bean, json) * @param string $strMethod Loading method for the external resource: open*, get, post * @return object|string */ private function xdrRetriveExternal($strURL, $strType = 'plain', $strMethod = 'open') { // TESTING: $this->probe('xdrRetriveExternal', 'Trying to load the external resource now: '.$strURL.'; Method: '.$strMethod.'; Type: '.$strType, 4); $strData = null; $strMethod = strtolower($strMethod); switch ($strMethod) { case 'get': if (class_exists('\\REST\\Client')) { $req = new \REST\Client($strURL); $strData = $req->post(); } else { // If the REST library is not present, simply use file_get_contents $strData = file_get_contents($strURL); } break; case 'post': if (!class_exists('\\REST\\Client')) { throw new Exception('Class REST\\Client not found. Please include the library from https://github.com/zeyon/rest'); } $req = new \REST\Client($strURL); $strData = $req->post(); break; default: $strData = is_readable(self::$basepath . $strURL) ? file_get_contents(self::$basepath . $strURL) : false; break; } if (!$strData) { return; } if ($strType == 'xml') { return Xml::create($strData); } elseif ($strType == 'bean') { return Bean::create($strData); } elseif ($strType == 'json') { return json_decode($strData, 1); } else { return $strData; } }
/** * Ajax输出 * @param $data 数据 * @param string $type 数据类型 text html xml json */ protected function ajax($data, $type = "JSON") { $type = strtoupper($type); switch ($type) { case "HTML": case "TEXT": $_data = $data; break; case "XML": //XML处理 $_data = Xml::create($data, "root", "UTF-8"); break; default: //JSON处理 $_data = json_encode($data); } echo $_data; exit; }
/** * Fetches an external dataset. * * @param string $strURL The URL or directory of the file * @param string strType Declares the type of data (plain*, xml, bean, json) * @param string $strMethod Loading method for the external resource: open*, get, post * @return object|string */ private function xdr_external($strURL, $strType = 'plain', $strMethod = 'open') { // TESTING: $this->probe('xdr_external', 'Trying to load the external resource now: '.$strURL.'; Method: '.$strMethod.'; Type: '.$strType, 4); $strData = null; $strMethod = strtolower($strMethod); switch ($strMethod) { case 'get': case 'post': if (class_exists('\\REST\\Client')) { $req = new \REST\Client($strURL); $strData = $strMethod == 'get' ? $req->get() : $req->post(); } break; default: $strData = is_readable(self::$basepath . $strURL) ? file_get_contents(self::$basepath . $strURL) : false; break; } if (!$strData) { return; } if ($strType == 'xml') { return Xml::create($strData); } elseif ($strType == 'bean') { return Bean::create($strData); } elseif ($strType == 'json') { return json_decode($strData, 1); } else { return $strData; } }
public function buildHeaderMenu() { global $locale; $html = ' <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container" style="width: auto;"> <a class="brand" href="' . buildLink('clockings') . '" id="loader"><img src="assets/img/logo.png" alt="tymio" /></a>'; // Workaround with catching the exception but // more pretty would be a function like API->isAuthenticated() // instead of call complete authentication again (done in index.php) try { $authenticator = \APIFactory::getAuthenticator(); $user = $authenticator->authUser(); if ($user !== null) { $email = strtolower($user->getEmail()); $html .= '<div class="nav-collapse">' . '<ul class="nav">' . $locale->replace($this->compileMenu(Xml::create(APP_DIR . ($user->isAdmin() ? 'menu-admin.xml' : 'menu.xml'), 1))) . '</ul>' . '</div>' . '<div id="login" style="background-image: url(\'https://secure.gravatar.com/avatar/' . md5($email) . '?s=28&d=mm\')">' . 'Logged in as ' . $user->getFQN() . '. <a class="btn btn-mini" href="' . buildLink('logout') . '"><i class="icon icon-off"></i> Logout</a>'; } else { throw new Exception(); } } catch (Exception $e) { $html .= '<div id="login" class="loggedout">Not logged in <a class="btn btn-success btn-mini" href="' . buildLink('login') . '"><i class="icon icon-white icon-lock"></i> Login</a>'; } $html .= ' </div> <ul class="nav pull-right"> <li class="divider-vertical"></li> </ul> </div> </div> </div>'; return $html; }