/** * Build furl templates from FURL extensions * * @access public * @return array */ public static function buildFurlTemplates() { /* INIT */ $apps = array(); /* Done this already? */ if (self::$_furlTemplates) { return self::$_furlTemplates; } /* Because this is called before the cache is unpacked, we need to expensively grab all app dirs */ foreach (array('applications', 'applications_addon/ips', 'applications_addon/other') as $folder) { try { foreach (new DirectoryIterator(IPS_ROOT_PATH . $folder) as $file) { if (!$file->isDot() and $file->isDir()) { $_name = $file->getFileName(); if (substr($_name, 0, 1) != '.') { $apps[$folder . '/' . $_name] = $_name; } } } } catch (Exception $e) { } } /* First, add in core stuffs */ ipsRegistry::_loadCoreVariables(); $templates = ipsRegistry::_fetchCoreVariables('templates'); if (is_array($templates)) { foreach ($templates as $key => $data) { self::$_furlTemplates[$key] = $data; } } /* Loop over the applications and build */ foreach ($apps as $path => $app_dir) { $appSphinxTemplate = ''; if (file_exists(IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php')) { unset($_SEOTEMPLATES); require IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php'; if (is_array($_SEOTEMPLATES)) { foreach ($_SEOTEMPLATES as $key => $data) { self::$_furlTemplates[$key] = $data; } } } } /* Return for anyone else */ return self::$_furlTemplates; }
/** * Build furl templates from FURL extensions * * @return array */ public static function buildFurlTemplates() { /* INIT */ $apps = array(); $_SEOTEMPLATES = array(); static $_apps = array(); /* Done this already? */ if (self::$_furlTemplates) { return self::$_furlTemplates; } /** * Get app data and cache - 1 query is better than 1 per app */ ipsRegistry::DB()->build(array('select' => 'app_directory, app_public_title, app_enabled', 'from' => 'core_applications')); ipsRegistry::DB()->execute(); while ($_r = ipsRegistry::DB()->fetch()) { $_apps[$_r['app_directory']] = $_r; } /* Because this is called before the cache is unpacked, we need to expensively grab all app dirs */ foreach (array('applications', 'applications_addon/ips', 'applications_addon/other') as $folder) { try { foreach (new DirectoryIterator(IPS_ROOT_PATH . $folder) as $file) { if (!$file->isDot() and $file->isDir()) { $_name = $file->getFileName(); if (substr($_name, 0, 1) != '.') { /* Check if this app is enabled before including the templates.. */ $_check = isset($_apps[$_name]) ? $_apps[$_name] : array('app_public_title' => '', 'app_enabled' => 0); if ($_check['app_public_title'] && $_check['app_enabled']) { $apps[$folder . '/' . $_name] = $_name; } } } } } catch (Exception $e) { } } /* First, add in core stuffs */ ipsRegistry::_loadCoreVariables(); $templates = ipsRegistry::_fetchCoreVariables('templates'); if (is_array($templates)) { foreach ($templates as $key => $data) { self::$_furlTemplates[$key] = $data; } } /* Loop over the applications and build */ foreach ($apps as $path => $app_dir) { if (is_file(IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php')) { $_SEOTEMPLATES = array(); require IPS_ROOT_PATH . $path . '/extensions/furlTemplates.php'; /*noLibHook*/ if (is_array($_SEOTEMPLATES) && count($_SEOTEMPLATES)) { foreach ($_SEOTEMPLATES as $key => $data) { self::$_furlTemplates[$key] = $data; } } } } /* Return for anyone else */ return self::$_furlTemplates; }