Ver código fonte

Entity : ajout alterator

idleman 1 ano atrás
pai
commit
0194950afd

+ 6 - 3
class/Entity.class.php

@@ -424,7 +424,7 @@ class Entity {
      * @return <Array<Entity>> $Entity
      */
 
-    public static function loadAll($columns = array(), $order = null, $limit = null, $selColumn = array('*'), $joins = 0) {
+    public static function loadAll($columns = array(), $order = null, $limit = null, $selColumn = array('*'), $joins = 0,$alterator = null) {
         $class = get_called_class();
         $instance = new $class();
         $connector = $instance->connector;
@@ -478,7 +478,7 @@ class Entity {
         $sql = $connector::select();
         $sql = Entity::render($sql,$data);
 
-        return $instance->customQuery($sql, $values, true, $joins);
+        return $instance->customQuery($sql, $values, true, $joins,$alterator);
     }
 
     /**
@@ -844,7 +844,7 @@ class Entity {
         return $instance->customQuery($query, $data, $fill,$joins);
     }
 
-    public function customQuery($query, $data = array(), $fill = false,$joins = 0) {
+    public function customQuery($query, $data = array(), $fill = false,$joins = 0,$alterator =null) {
         $query = str_replace('{{table}}', $this->tableName(true,$this), $query);
         $mapping = $this->fieldMapping;
         $query = preg_replace_callback('/{{([^}]*)}}/si', function($match) use ($mapping){
@@ -886,6 +886,9 @@ class Entity {
             foreach ($queryReturn as $key => $value) {
                 if(!is_numeric($key)) $object->foreignColumns[$key] = $value;
             }
+            if(isset($alterator)){
+                $alterator($object);
+            }
             $objects[] = $object;
             unset($object);
         }

+ 10 - 0
plugin/dashboard/DashboardWidget.class.php

@@ -65,6 +65,16 @@ class DashboardWidget extends Entity{
 		parent::__construct();
 	}
 
+	public function save(){
+		if(is_array($this->meta)) $this->meta = json_encode($this->meta);
+		parent::save();
+	}
+	public static function loadAll($columns = array(), $order = null, $limit = null, $selColumn = array('*'), $joins = 0,$alterator = null){
+		return parent::loadAll($columns, $order, $limit, $selColumn, $joins,function(&$item){
+			$item->meta = json_decode($item->meta,true);
+		});
+	}
+
 	public function toArray($decoded=false){
 		return array_merge(array(
 			'icon' => $this->icon,

+ 9 - 0
plugin/dashboard/dashboard.plugin.php

@@ -131,6 +131,9 @@ function dashboard_application_bottom(){
 								    </li>
 								</ul>
 						</template>
+						<template id="properties-model">
+								<h3>Propriétés</h3>
+						</template>
 						<template id="configure-style">
 							<div class="row">
 								<div class="col">
@@ -217,6 +220,12 @@ Plugin::addHook('widget',function(&$models){
 		};
 		$model->configure = function($widget,$form){
 			//conf form @todo
+			$form[] = array(
+				'type' => 'boolean',
+				'value' => $widget->meta['enabled'],
+				'label' => 'Activé',
+				'sort' => 1
+			);
 		};
 		$model->save = function($widget){
 			//save conf action @todo

+ 7 - 0
plugin/dashboard/js/component.js

@@ -151,6 +151,13 @@ function init_components_dashboard(input){
 					    	});
 					    });
 			 		break;
+			 		case "model":
+
+			 			$('#dashboard-configure-content').html($('#property-model').html());
+
+			 			//TODO
+			 			
+			 		break;
 			 		case "style":
 			 			$('#dashboard-configure-content').html($('#configure-style').html());
 			 			

+ 1 - 2
plugin/dashboard/page.list.dashboard.php

@@ -2,6 +2,7 @@
 global $myUser,$conf;
 if(!$myUser->can('dashboard','read')) return;
 require_once(__DIR__.SLASH.'Dashboard.class.php');
+require_once(__DIR__.SLASH.'DashboardWidget.class.php');
 
 if(Dashboard::rowCount(array('scope'=>'home','uid'=>$myUser->login))==0){
     $dashboard = new Dashboard();
@@ -9,8 +10,6 @@ if(Dashboard::rowCount(array('scope'=>'home','uid'=>$myUser->login))==0){
     $dashboard->scope = "home";
     $dashboard->save();
 }
-require_once('DashboardWidget.class.php');
-
 
 
 ?>