示例#1
0
 /**
  * Finds a suitable renderer
  *
  * @return  FOFRenderAbstract
  */
 protected function findRenderer()
 {
     $filesystem = FOFPlatform::getInstance()->getIntegrationObject('filesystem');
     // Try loading the stock renderers shipped with FOF
     if (empty(self::$renderers) || !class_exists('FOFRenderJoomla', false)) {
         $path = dirname(__FILE__) . '/../render/';
         $renderFiles = $filesystem->folderFiles($path, '.php');
         if (!empty($renderFiles)) {
             foreach ($renderFiles as $filename) {
                 if ($filename == 'abstract.php') {
                     continue;
                 }
                 @(include_once $path . '/' . $filename);
                 $camel = FOFInflector::camelize($filename);
                 $className = 'FOFRender' . ucfirst(FOFInflector::getPart($camel, 0));
                 $o = new $className();
                 self::registerRenderer($o);
             }
         }
     }
     // Try to detect the most suitable renderer
     $o = null;
     $priority = 0;
     if (!empty(self::$renderers)) {
         foreach (self::$renderers as $r) {
             $info = $r->getInformation();
             if (!$info->enabled) {
                 continue;
             }
             if ($info->priority > $priority) {
                 $priority = $info->priority;
                 $o = $r;
             }
         }
     }
     // Return the current renderer
     return $o;
 }