/** * Adds this resource page to the DOMDocument/XMLElement specified. * See toXml() for details. * $domtree : DOM document root * $parentElement : DOM element where this row will be added */ function addSelfToDocument($domtree, $parentElement) { // create the root element for this class and append it to our parent $xmlRoot = $parentElement->appendChild($domtree->createElement('view')); $xmlRoot->appendChild($domtree->createElement('resources_url', home_url() . "/" . get_option('hbo_resources_url'))); if ($this->isSaved) { $xmlRoot->appendChild($domtree->createElement('saved', 'true')); } $resource = ResourceDBO::fetchResourceById($this->resourceId); $xmlRoot->appendChild($domtree->createElement('resourceId', $this->resourceId)); $xmlRoot->appendChild($domtree->createElement('resourceName', $resource->name)); $propertiesElem = $xmlRoot->appendChild($domtree->createElement('properties')); foreach (ResourceDBO::getPropertiesForResource($this->resourceId) as $prop) { $propRow = $domtree->createElement('property'); if ($prop->selected_yn == 'Y') { $attrSelected = $domtree->createAttribute('selected'); $attrSelected->value = 'true'; $propRow->appendChild($attrSelected); } $propRow->appendChild($domtree->createElement('id', $prop->property_id)); $propRow->appendChild($domtree->createElement('value', $prop->description)); $propertiesElem->appendChild($propRow); } }
/** Generates the following xml: <editbooking> <id>25</id> <firstname>Megan</firstname> <lastname>Fox</lastname> <referrer>telephone</referrer> <depositpaid>10.70</depositpaid> <amounttopay>91.35</amounttopay> <allocations> <bookingName>Megan-1</bookingName> ... </allocations> <comments> <comment>...<comment> ... </comments> <properties> <property>...</property> </properties> </editbooking> */ function toXml() { // create a dom document with encoding utf8 $domtree = new DOMDocument('1.0', 'UTF-8'); // create the root element of the xml tree $xmlRoot = $domtree->createElement('editbooking'); $xmlRoot = $domtree->appendChild($xmlRoot); $xmlRoot->appendChild($domtree->createElement('homeurl', home_url())); $xmlRoot->appendChild($domtree->createElement('id', $this->id)); $xmlRoot->appendChild($domtree->createElement('firstname', $this->firstname)); $xmlRoot->appendChild($domtree->createElement('lastname', $this->lastname)); $xmlRoot->appendChild($domtree->createElement('referrer', $this->referrer)); $xmlRoot->appendChild($domtree->createElement('depositpaid', number_format($this->depositPaid, 2, '.', ''))); $xmlRoot->appendChild($domtree->createElement('amounttopay', number_format($this->amountToPay, 2, '.', ''))); // add current allocations $this->allocationTable->addSelfToDocument($domtree, $xmlRoot); // add comments $this->commentLog->addSelfToDocument($domtree, $xmlRoot); $propRoot = $xmlRoot->appendChild($domtree->createElement('properties')); foreach (ResourceDBO::getPropertiesForResource() as $prop) { $propRow = $domtree->createElement('property'); $propRow->appendChild($domtree->createElement('id', $prop->property_id)); $propRow->appendChild($domtree->createElement('value', $prop->description)); $propRoot->appendChild($propRow); } error_log($domtree->saveXML()); return $domtree->saveXML(); }