/**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }