/** * Return an array of every author in this theme. */ public function getAuthors() { $ret = []; foreach ($this->_xmlloader->getElementsByTagName('author') as $el) { $ret[] = ['name' => $el->getAttribute('name'), 'email' => @$el->getAttribute('email')]; } return $ret; }
public function loadFiles() { // First of all, this cannot be called on disabled or uninstalled components. if(!$this->isInstalled()) return false; if(!$this->isEnabled()) return false; if($this->_filesloaded) return true; Core\Utilities\Logger\write_debug('Loading files for component [' . $this->getName() . ']'); $dir = $this->getBaseDir(); // Include any includes requested. // This adds support for namespaced functions. // <includes> // <include filename="core/functions/Core.functions.php"/> // </includes> foreach ($this->_xmlloader->getElements('/includes/include') as $f) { require_once($dir . $f->getAttribute('filename')); } // Register any hooks that may be present. foreach ($this->_xmlloader->getElementsByTagName('hookregister') as $h) { $hook = new Hook($h->getAttribute('name')); $hook->description = $h->getAttribute('description'); if($h->getAttribute('return')){ $hook->returnType = $h->getAttribute('return'); } } // Register any events that may be present. foreach ($this->_xmlloader->getElementsByTagName('hook') as $h) { $event = $h->getAttribute('name'); $call = $h->getAttribute('call'); $type = @$h->getAttribute('type'); HookHandler::AttachToHook($event, $call, $type); } // This component may have special form elements registered. Check! foreach ($this->_xmlloader->getElements('/forms/formelement') as $node) { Form::$Mappings[$node->getAttribute('name')] = $node->getAttribute('class'); } if(DEVELOPMENT_MODE && defined('AUTO_INSTALL_ASSETS') && AUTO_INSTALL_ASSETS && EXEC_MODE == 'WEB' && CDN_TYPE == 'local'){ Core\Utilities\Logger\write_debug('Auto-installing assets for component [' . $this->getName() . ']'); $this->_parseAssets(); } $this->_filesloaded = true; return true; }