| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- <?php
 
- /**
 
-  * Define a Bloc de tableau de bord
 
-  * @author Jean CARRUESCO
 
-  * @category Plugin
 
-  * @license copyright
 
-  */
 
- class DashboardWidget extends Entity{
 
- 	public $id;
 
- 	public $model; //Modèle (Texte)
 
- 	public $type; //Type (Liste classique)
 
- 	public $meta; //Meta (Texte Long)
 
- 	public $column = 0 ; //Colonne (Nombre Entier)
 
- 	public $row = 0 ; //Ligne (Nombre Entier)
 
- 	public $width = 1; //Largeur (Nombre Entier)
 
- 	public $height = 1; //Hauteur (Nombre Entier)
 
- 	public $dashboard; //Tableau de bord (Nombre Entier)
 
- 	public $icon;
 
- 	public $headerBackground;
 
- 	public $description;
 
- 	public $label;
 
- 	public $content;
 
- 	public const MODEL_NEW = 'new';
 
- 	protected $TABLE_NAME = 'dashboard_widget';
 
- 	public $entityLabel = 'Bloc de tableau de bord';
 
- 	public $fields = array(
 
- 		'id' => array('type'=>'key', 'label' => 'Identifiant'),
 
- 		'model' => array('type'=>'text','label' => 'Modèle'),
 
- 		'type' => array('type'=>'list','label' => 'Type'),
 
- 		'meta' => array('type'=>'textarea','label' => 'Meta'),
 
- 		'column' => array('type'=>'integer','label' => 'Colonne'),
 
- 		'row' => array('type'=>'integer','label' => 'Ligne'),
 
- 		'width' => array('type'=>'integer','label' => 'Largeur'),
 
- 		'height' => array('type'=>'integer','label' => 'Hauteur'),
 
- 		'dashboard' => array('type'=>'integer','label' => 'Tableau de bord','link'=>'plugin/dashboard/Dashboard.class.php')
 
- 	);
 
- 	//Colonnes indexées
 
- 	public $indexes = array();
 
- 	public function __construct(){
 
- 		$this->model = self::MODEL_NEW;
 
- 		parent::__construct();
 
- 	}
 
- 	public function toArray($decoded=false){
 
- 		
 
- 		return array_merge(array(
 
- 			'icon' => $this->icon,
 
- 			'headerBackground' => $this->headerBackground,
 
- 			'description' => $this->description,
 
- 			'label' => $this->label,
 
- 			'content' => $this->content
 
- 		),parent::toArray($decoded));
 
- 	}
 
- 	function toData(){
 
- 		$row = $this->toArray();
 
- 		$model = DashboardWidget::model($this->model);
 
- 		$finalRow = $model->toArray();
 
- 		foreach($row as $attribute=>$value){
 
- 			if(isset($value)) $finalRow[$attribute] = $value;
 
- 		}
 
- 		return $finalRow;
 
- 	}
 
- 	//liste des Type possibles
 
- 	public static function types($key=null){
 
- 		$items = array(
 
- 			'widget' => array('label'=>'Widget'),
 
- 			'model' => array('label'=>'Modèle de widget'),
 
- 		);
 
- 		if(!isset($key)) return $items;
 
- 		return isset($items[$key]) ? $items[$key] : array('label'=>'Non définis');
 
- 	}
 
- 	public static function model($slug = null){
 
- 		$model = array();
 
- 		Plugin::callHook('widget',array(&$models));
 
- 		//todo placer en hook
 
- 		$clock = new DashboardWidget();
 
- 		$clock->icon = 'far fa-user';
 
- 		$clock->headerBackground = 'rgb(0, 123, 255)';
 
- 		$clock->description = 'Une Horloge toute couillone';
 
- 		$clock->label = 'Horloge';
 
- 		$clock->content = '<div class="text-center m-auto">13:37</div>';
 
- 		$clock->width = 3;
 
- 		$clock->height = 3;
 
- 		$models['clock'] = $clock;
 
- 			
 
- 		
 
- 		$newModel = new DashboardWidget();
 
- 		$newModel->icon = 'far fa-user';
 
- 		$newModel->headerBackground = 'rgb(0, 123, 255)';
 
- 		$newModel->description = 'Type de widget non définit';
 
- 		$newModel->label = 'Nouveau widget';
 
- 		$newModel->content = '<div class="text-center m-auto">Cliquez sur l\'icone <i class="fas fa-ellipsis-v text-muted mx-1"></i> en haut à droite pour configurer votre widget</div>';
 
- 		$newModel->width = 3;
 
- 		$newModel->height = 2;
 
- 		$models[self::MODEL_NEW] = $newModel;
 
- 		
 
- 		foreach($models as $model){
 
- 			if(!isset($model->model)) continue;
 
- 			$models[$model->model] = $model;
 
- 		}
 
- 		if(!isset($slug)) return $models;
 
- 		return isset($models[$slug]) ? $models[$slug] : $model;
 
- 		
 
- 	}
 
- }
 
- ?>
 
 
  |