Beispiel #1
0
 /**
  * Save or get the package XML for this theme.  This is useful for the
  * packager
  *
  * @param boolean $minified
  * @param string  $filename
  */
 public function savePackageXML($minified = true, $filename = false)
 {
     // Instantiate a new XML Loader object and get it ready to use.
     $dom = new \XMLLoader();
     $dom->setRootName('package');
     $dom->load();
     // Populate the root attributes for this theme package.
     $dom->getRootDOM()->setAttribute('type', 'theme');
     $dom->getRootDOM()->setAttribute('name', $this->getName());
     $dom->getRootDOM()->setAttribute('version', $this->getVersion());
     // Declare the packager
     $dom->createElement('packager[version="' . \Core::GetComponent()->getVersion() . '"]');
     /* // Themes don't have any provide directives.
     		// Copy over any provide directives.
     		foreach ($this->_xmlloader->getRootDOM()->getElementsByTagName('provides') as $u) {
     			$newu = $dom->getDOM()->importNode($u);
     			$dom->getRootDOM()->appendChild($newu);
     		}
     		$dom->getElement('/provides[type="component"][name="' . strtolower($this->getName()) . '"][version="' . $this->getVersion() . '"]');
     		*/
     /* // Themes don't have any requrie directives.
     		// Copy over any requires directives.
     		foreach ($this->_xmlloader->getRootDOM()->getElementsByTagName('requires') as $u) {
     			$newu = $dom->getDOM()->importNode($u);
     			$dom->getRootDOM()->appendChild($newu);
     		}
     		*/
     // Copy over any upgrade directives.
     // This one can be useful for an existing installation to see if this
     // package can provide a valid upgrade path.
     foreach ($this->_xmlloader->getRootDOM()->getElementsByTagName('upgrade') as $u) {
         $newu = $dom->getDOM()->importNode($u);
         $dom->getRootDOM()->appendChild($newu);
     }
     // Tack on description
     $desc = $this->_xmlloader->getElement('/description', false);
     if ($desc) {
         $newd = $dom->getDOM()->importNode($desc);
         $newd->nodeValue = $desc->nodeValue;
         $dom->getRootDOM()->appendChild($newd);
     }
     $out = $minified ? $dom->asMinifiedXML() : $dom->asPrettyXML();
     if ($filename) {
         file_put_contents($filename, $out);
     } else {
         return $out;
     }
 }