123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- class Template{
- public static function all($template){
- $templates = array();
- foreach (glob(self::dir($template).'*') as $path) {
- $relativePath = str_replace(self::dir($template),'',$path);
- if(is_file($path)){
- $infos = self::getManifest($path);
- $templates[$infos['label']] = array('file'=>$path,'syntax'=>$infos['syntax'],'infos' => $infos);
- }else{
- $templates = array_merge($templates,self::all($template.SLASH.$relativePath));
- }
- }
- uasort($templates,function($a,$b){
- if(!isset($a['infos']['sort']) && !isset($b['infos']['sort'])) return $a['infos']['label'] > $b['infos']['label'] ? 1 : -1 ;
- if( !isset($a['infos']['sort']) && isset($b['infos']['sort']) ) return 1;
- if( isset($a['infos']['sort']) && !isset($b['infos']['sort']) ) return -1;
- return $a['infos']['sort'] > $b['infos']['sort'] ? 1 : -1 ;
- });
- return $templates;
- }
- public static function dir($tpl = null){
- return __DIR__.SLASH.'template'.SLASH.(isset($tpl)? $tpl.SLASH:'');
- }
- public static function getManifest($file){
- $f = fopen($file, 'r');
- $line = fgets($f);
- fclose($f);
- return json_decode($line,true);
- }
- public static function filters($templatePath){
- $filters = array();
- foreach (Template::all($templatePath) as $template) {
- if(empty($template['infos']['options'])) continue;
- foreach ($template['infos']['options'] as $key => $value){
- if(!is_array($value))$value = array('label'=>$value);
- $value['slug'] = $key;
- $filters[$key] = $value;
- }
- }
- ksort($filters);
- return $filters;
- }
- public static function types(){
- $types = FieldType::available();
- $oldTypes = array();
- $instance= new User();
- //old pure sql types
- global $databases_credentials;
- $sgbd = $databases_credentials[$instance->baseUid]['connector'];
- foreach(array('dropzone') as $forbidden)
- if(isset($types[$forbidden])) unset($types[$forbidden]);
- foreach ($sgbd::types() as $key => $value) {
- $oldType = new FieldType();
- $oldType->slug = $key;
- $oldType->label = $key;
- $oldType->sqlType = $key;
- $oldType->icon = 'fas fa-font';
- $oldType->description = 'Type sql '.$key;
- $oldType->default = '';
- $oldType->onInput = $types['text']->onInput;
- $oldType->default_attributes = array(
- 'class'=>'"form-control"',
- 'type'=>'"text"'
- );
- $oldTypes[$key] = $oldType;
- }
- $entityField = new FieldType();
- $entityField->label = 'Entité';
- $entityField->sqlType = 'entity-external-entity';
- $entityField->icon = 'fas fa-font';
- $entityField->description = 'Entité ';
- $entityField->default = '';
- $entityField->onInput = $types['text']->onInput;
- $entityField->default_attributes = array(
- 'class'=>'"form-control"',
- 'type'=>'"text"'
- );
- return array(
- 'Types programmes'=>$types,
- 'Entités'=>array('entity-external-entity'=>$entityField),
- 'Types sql (deprecated)'=>$oldTypes);
- }
- }
- ?>
|