1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- /**
- * Define a resource Type.
- * @author Idleman
- * @category Plugin
- * @license copyright
- */
- class ResourceType{
- public static function types($slug=null,$onlyActive = false){
- global $conf;
- $typefiles = array();
- Plugin::callHook('hackpoint_resource_type',array(&$typefiles));
-
- $types = array();
- foreach($typefiles as $uid=>$file){
-
- $class = str_replace('.class.php','',basename($file));
- require_once($file);
-
- if(!method_exists ( $class , 'toHtml' )) continue;
- if(!method_exists ( $class , 'toJson' )) continue;
- if(!method_exists ( $class , 'toFile' )) continue;
- if(!method_exists ( $class , 'fromJson' )) continue;
- if(!method_exists ( $class , 'fromFile' )) continue;
-
-
- $infos = $class::manifest();
- if($onlyActive && empty($conf->get('hackpoint_resource_'.$infos['uid'])) ) continue;
- $infos['class'] = $class;
- $infos['path'] = $file;
- $types[$infos['uid']] = $infos;
- }
- uasort($types,function($a,$b){
- if ($a['label'] > $b['label']) return 1;
- if ($a['label'] < $b['label']) return -1;
- if ($a['label'] == $b['label']) return 0;
- });
- // $type = new ResourceType();
- // $type->color = '#20c997';
- // $type->icon = 'fas fa-code';
- if(!isset($slug)) return $types;
- return isset($types[$slug]) ? $types[$slug] : false;
- }
- }
- ?>
|