| 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;	}}
 |