// // Alternatively, the contents of this file may be used under the terms of // either the GNU General Public License Version 2 or later (the "GPL"), or // the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), // in which case the provisions of the GPL or the LGPL are applicable instead // of those above. If you wish to allow use of your version of this file only // under the terms of either the GPL or the LGPL, and not to allow others to // use your version of this file under the terms of the MPL, indicate your // decision by deleting the provisions above and replace them with the notice // and other provisions required by the GPL or the LGPL. If you do not delete // the provisions above, a recipient may use your version of this file under // the terms of any one of the MPL, the GPL or the LGPL. // // ***** END LICENSE BLOCK ***** /** * @package aus * @subpackage inc * @author Mike Morgan */ class Xml extends AUS_Object { var $xmlOutput; var $xmlHeader; var $xmlFooter; var $xmlPatchLines; /** * Constructor, sets overall header and footer. */ function Xml() { $this->xmlHeader = ''."\n".''; $this->xmlFooter = "\n".''; $this->xmlOutput = $this->xmlHeader; $this->xmlPatchLines = ''; } /** * Start an update block. * @param object $update */ function startUpdate($update) { $type = htmlentities($update->type); $version = htmlentities($update->version); $extensionVersion = htmlentities($update->extensionVersion); $build = htmlentities($update->build); $details = htmlentities($update->details); $license = htmlentities($update->license); $details_xml = ''; if (!empty($details)) { $details_xml = " detailsURL=\"{$details}\""; } $license_xml = ''; if (!empty($license)) { $license_xml = " licenseURL=\"{$license}\""; } $this->xmlOutput .= << startUpdate; /** * @TODO Add buildID attribute to element. * * Right now it is pending QA on the client side, so we will leave it * out for now. * * buildID="{$build}" */ } /** * Set a patch line. This pulls info from a patch object. * @param object $patch */ function setPatchLine($patch) { $type = htmlentities($patch->type); $url = htmlentities($patch->url); $hashFunction = htmlentities($patch->hashFunction); $hashValue = htmlentities($patch->hashValue); $size = htmlentities($patch->size); $this->xmlPatchLines .= << patchLine; } /** * Determines whether or not patchLines have been set. * @return bool */ function hasPatchLine() { return (empty($this->xmlPatchLines)) ? false : true; } /** * End an update block. */ function endUpdate() { $this->xmlOutput .= << endUpdate; } /** * Add patchLines to output. */ function drawPatchLines() { $this->xmlOutput .= $this->xmlPatchLines; } /** * Get XML output. * @return $string $this->xmlOutput */ function getOutput() { $this->xmlOutput .= $this->xmlFooter; return $this->xmlOutput; } /** * Print XML output with header. */ function printXml() { header('Content-type: text/xml;'); echo $this->getOutput(); } } ?>