| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | 
							- <?php
 
- /**
 
-  * Plugin manifest.xml parser for Elgg 1.7 and lower.
 
-  *
 
-  * @package    Elgg.Core
 
-  * @subpackage Plugins
 
-  * @since      1.8
 
-  */
 
- class ElggPluginManifestParser17 extends \ElggPluginManifestParser {
 
- 	/**
 
- 	 * The valid top level attributes and defaults for a 1.7 manifest
 
- 	 */
 
- 	protected $validAttributes = array(
 
- 		'author', 'version', 'description', 'website',
 
- 		'copyright', 'license', 'licence', 'elgg_version',
 
- 		// were never really used and not enforced in code.
 
- 		'requires', 'recommends', 'conflicts',
 
- 		// not a 1.7 field, but we need it
 
- 		'name',
 
- 	);
 
- 	/**
 
- 	 * Parse a manifest object from 1.7 or earlier.
 
- 	 *
 
- 	 * @return void
 
- 	 */
 
- 	public function parse() {
 
- 		if (!isset($this->manifestObject->children)) {
 
- 			return false;
 
- 		}
 
- 		$elements = array();
 
- 		foreach ($this->manifestObject->children as $element) {
 
- 			$key = $element->attributes['key'];
 
- 			$value = $element->attributes['value'];
 
- 			// create arrays if multiple fields are set
 
- 			if (array_key_exists($key, $elements)) {
 
- 				if (!is_array($elements[$key])) {
 
- 					$orig = $elements[$key];
 
- 					$elements[$key] = array($orig);
 
- 				}
 
- 				$elements[$key][] = $value;
 
- 			} else {
 
- 				$elements[$key] = $value;
 
- 			}
 
- 		}
 
- 		if ($elements && !array_key_exists('name', $elements)) {
 
- 			$elements['name'] = $this->caller->getName();
 
- 		}
 
- 		$this->manifest = $elements;
 
- 		if (!$this->manifest) {
 
- 			return false;
 
- 		}
 
- 		return true;
 
- 	}
 
- 	/**
 
- 	 * Return an attribute in the manifest.
 
- 	 *
 
- 	 * Overrides \ElggPluginManifestParser::getAttribute() because before 1.8
 
- 	 * there were no rules...weeeeeeeee!
 
- 	 *
 
- 	 * @param string $name Attribute name
 
- 	 * @return mixed
 
- 	 */
 
- 	public function getAttribute($name) {
 
- 		if (isset($this->manifest[$name])) {
 
- 			return $this->manifest[$name];
 
- 		}
 
- 		return false;
 
- 	}
 
- }
 
 
  |