Ejemplo n.º 1
0
 /**
  * Get available page types.
  *
  * @return Types
  */
 public static function getTypes()
 {
     if (!self::$types) {
         $grav = Grav::instance();
         $scanBlueprintsAndTemplates = function () use($grav) {
             // Scan blueprints
             $event = new Event();
             $event->types = self::$types;
             $grav->fireEvent('onGetPageBlueprints', $event);
             self::$types->scanBlueprints('theme://blueprints/');
             // Scan templates
             $event = new Event();
             $event->types = self::$types;
             $grav->fireEvent('onGetPageTemplates', $event);
             self::$types->scanTemplates('theme://templates/');
         };
         if ($grav['config']->get('system.cache.enabled')) {
             /** @var Cache $cache */
             $cache = $grav['cache'];
             // Use cached types if possible.
             $types_cache_id = md5('types');
             self::$types = $cache->fetch($types_cache_id);
             if (!self::$types) {
                 self::$types = new Types();
                 $scanBlueprintsAndTemplates();
                 $cache->save($types_cache_id, self::$types);
             }
         } else {
             self::$types = new Types();
             $scanBlueprintsAndTemplates();
         }
     }
     return self::$types;
 }
Ejemplo n.º 2
0
 /**
  * Get available page types.
  *
  * @return Types
  */
 public static function getTypes()
 {
     if (!self::$types) {
         self::$types = new Types();
         self::$types->scanBlueprints('theme://blueprints/');
         self::$types->scanTemplates('theme://templates/');
         $event = new Event();
         $event->types = self::$types;
         Grav::instance()->fireEvent('onGetPageTemplates', $event);
     }
     return self::$types;
 }
Ejemplo n.º 3
0
 /**
  * Get available page types.
  *
  * @return Types
  */
 public static function getTypes()
 {
     $locator = Grav::instance()['locator'];
     if (!self::$types) {
         self::$types = new Types();
         file_exists('theme://blueprints/') && self::$types->scanBlueprints($locator->findResources('theme://blueprints/'));
         file_exists('theme://templates/') && self::$types->scanTemplates($locator->findResources('theme://templates/'));
         $event = new Event();
         $event->types = self::$types;
         Grav::instance()->fireEvent('onGetPageTemplates', $event);
     }
     return self::$types;
 }