public final function __construct($data) { if (!self::$access_key) { self::$access_key = new FW_Access_Key('extension'); } $this->rel_path = $data['rel_path']; $this->path = $data['path']; $this->uri = $data['uri']; $this->parent = $data['parent']; $this->depth = $data['depth']; $this->customizations_locations = $data['customizations_locations']; $variables = fw_get_variables_from_file($this->path . '/manifest.php', array('manifest' => array())); $manifest = $variables['manifest']; unset($variables); if (empty($manifest['name'])) { $manifest['name'] = fw_id_to_title($this->get_name()); } $this->manifest = new FW_Extension_Manifest($manifest); }
public final function __construct(&$parent, $declared_dir, $declared_source, $URI, $depth) { if (!self::$access_key) { self::$access_key = new FW_Access_Key('extension'); } $this->parent =& $parent; $this->declared_source = $declared_source; $this->declared_dir = $declared_dir; $this->declared_URI = $URI . $this->get_rel_path(); // ! set $this->parent before calling get_rel_path() $this->depth = $depth; $manifest = array(); if (file_exists($this->declared_dir . '/manifest.php')) { $variables = fw_get_variables_from_file($this->declared_dir . '/manifest.php', array('manifest' => array())); $manifest = $variables['manifest']; unset($variables); } if (empty($manifest['name'])) { $manifest['name'] = fw_id_to_title($this->get_name()); } $this->manifest = new FW_Extension_Manifest($manifest); }
/** * @param FW_Extension $extension */ private static function load_extension_shortcodes($extension) { $ext_name = $extension->get_name(); if (version_compare(fw()->manifest->get_version(), '2.2', '<')) { $ext_rel_path = $extension->get_rel_path(); if ($extension->get_declared_source() === 'framework') { self::load_folder_shortcodes($ext_name, array('path' => $extension->get_declared_path('/shortcodes'), 'uri' => $extension->get_declared_URI('/shortcodes')), array('paths' => array(fw_get_stylesheet_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes'), fw_get_template_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes')), 'uris' => array(fw_get_stylesheet_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes'), fw_get_template_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes')))); self::load_folder_shortcodes($ext_name, array('path' => fw_get_template_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes'), 'uri' => fw_get_template_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes')), array('paths' => array(fw_get_stylesheet_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes')), 'uris' => array(fw_get_stylesheet_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes')))); self::load_folder_shortcodes($ext_name, array('path' => fw_get_stylesheet_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes'), 'uri' => fw_get_stylesheet_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes'))); } elseif ($extension->get_declared_source() === 'parent') { self::load_folder_shortcodes($ext_name, array('path' => $extension->get_declared_path('/shortcodes'), 'uri' => $extension->get_declared_URI('/shortcodes')), array('paths' => array(fw_get_stylesheet_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes')), 'uris' => array(fw_get_stylesheet_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes')))); self::load_folder_shortcodes($ext_name, array('path' => fw_get_stylesheet_customizations_directory('/extensions' . $ext_rel_path . '/shortcodes'), 'uri' => fw_get_stylesheet_customizations_directory_uri('/extensions' . $ext_rel_path . '/shortcodes'))); } else { self::load_folder_shortcodes($ext_name, array('path' => $extension->get_declared_path('/shortcodes'), 'uri' => $extension->get_declared_URI('/shortcodes'))); } } else { $customizations_locations = array('paths' => array(), 'uris' => array()); foreach ($extension->get_customizations_locations() as $path => $uri) { $customizations_locations['paths'][] = $path . '/shortcodes'; $customizations_locations['uris'][] = $uri . '/shortcodes'; } $path = $extension->get_path('/shortcodes'); $uri = $extension->get_uri('/shortcodes'); do { if (empty($customizations_locations['paths'])) { $customizations_locations = array(); } self::load_folder_shortcodes($ext_name, array('path' => $path, 'uri' => $uri), $customizations_locations); if ($customizations_locations) { $path = array_pop($customizations_locations['paths']); $uri = array_pop($customizations_locations['uris']); } } while ($customizations_locations); } }