Changeset 7200 for extensions/GrumPluginClasses/classes
- Timestamp:
- Oct 15, 2010, 5:59:23 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php
r7181 r7200 2 2 /* ----------------------------------------------------------------------------- 3 3 class name: GCPRequestBuilder 4 class version : 1.1. 05 plugin version : 3. 2.04 class version : 1.1.1 5 plugin version : 3.3.2 6 6 date : 2010-09-08 7 7 … … 68 68 | 1.1.0 | 2010/09/08 | * add functionnalities to manage complex requests 69 69 | | | 70 | | |71 | | | 70 | 1.1.1 | 2010/10/14 | * fix bug on the buildGroupRequest function 71 | | | . adding 'DISTINCT' keyword to the SQL requests 72 72 | | | 73 73 | | | … … 365 365 `connected_plugin` char(255) NOT NULL, 366 366 `filter` text NOT NULL, 367 `parameters` text NOT NULL, 367 368 PRIMARY KEY (`id`) 368 369 ) … … 396 397 static public function updateTables($pluginPreviousRelease) 397 398 { 398 $tablesCreate=array();399 $tablesUpdate=array();400 401 399 switch($pluginPreviousRelease) 402 400 { 403 401 case '03.01.00': 402 $tablesCreate=array(); 403 $tablesUpdate=array(); 404 404 405 $tablesCreate[]= 405 406 "CREATE TABLE `".self::$tables['temp']."` ( … … 412 413 $tablesUpdate[self::$tables['request']]['filter']= 413 414 "ADD COLUMN `filter` text NOT NULL default '' "; 414 break; 415 } 416 417 $tablef=new GPCTables(array(self::$tables['temp'])); 418 419 if(count($tablesCreate)>0) $tablef->create($tablesCreate); 420 if(count($tablesUpdate)>0) $tablef->updateTablesFields($tablesUpdate); 415 416 417 $tablef=new GPCTables(array(self::$tables['temp'])); 418 419 $tablef->create($tablesCreate); 420 $tablef->updateTablesFields($tablesUpdate); 421 // no break ! need to be updated like the next release 422 // break; 423 case '03.01.01': 424 case '03.02.00': 425 case '03.02.01': 426 case '03.03.00': 427 case '03.03.01': 428 $tablesUpdate=array(); 429 430 $tablesUpdate[self::$tables['request']]['parameters']= 431 "ADD COLUMN `parameters` TEXT NOT NULL AFTER `filter`"; 432 433 $tablef->updateTablesFields($tablesUpdate); 434 // no break ! need to be updated like the next release 435 // break; 436 } 421 437 422 438 return(true); … … 728 744 { 729 745 $numberItems=pwg_db_changes($result); 730 self::updateRequest($requestNumber, $numberItems, 0, implode(',', $pluginList), $build['FILTER'] );746 self::updateRequest($requestNumber, $numberItems, 0, implode(',', $pluginList), $build['FILTER'], $_REQUEST['extraData']); 731 747 732 748 $returned="$requestNumber;".$numberItems; … … 796 812 ); 797 813 814 815 $extraData=array(); 816 foreach($request['parameters'] as $data) 817 { 818 $extraData[$data['owner']]=$data['param']; 819 } 820 798 821 /* for each needed plugin : 799 822 * - include the file … … 808 831 include_once($registeredPlugin[$val]['fileName']); 809 832 810 $tmp=explode(',', call_user_func(Array('RBCallBack'.$val, 'getSelect') ));833 $tmp=explode(',', call_user_func(Array('RBCallBack'.$val, 'getSelect'), $extraData[$val])); 811 834 foreach($tmp as $key2=>$val2) 812 835 { … … 814 837 } 815 838 $tmpBuild['SELECT'][$val]=implode(',', $tmp); 816 $tmpBuild['FROM'][$val]=call_user_func(Array('RBCallBack'.$val, 'getFrom') );817 $tmpBuild['JOIN'][$val]=call_user_func(Array('RBCallBack'.$val, 'getJoin') );839 $tmpBuild['FROM'][$val]=call_user_func(Array('RBCallBack'.$val, 'getFrom'), $extraData[$val]); 840 $tmpBuild['JOIN'][$val]=call_user_func(Array('RBCallBack'.$val, 'getJoin'), $extraData[$val]); 818 841 } 819 842 } … … 1044 1067 static private function getNewRequest($userId) 1045 1068 { 1046 $sql="INSERT INTO ".self::$tables['request']." VALUES('', '$userId', '".date('Y-m-d H:i:s')."', 0, 0, '', '' )";1069 $sql="INSERT INTO ".self::$tables['request']." VALUES('', '$userId', '".date('Y-m-d H:i:s')."', 0, 0, '', '', '')"; 1047 1070 $result=pwg_query($sql); 1048 1071 if($result) … … 1060 1083 * @param Float $executionTime : time in second to execute the request 1061 1084 * @param String $pluginList : list of used plugins 1085 * @param String $parameters : parameters given for the request 1062 1086 * @return Boolean : true if request was updated, otherwise false 1063 1087 */ 1064 static private function updateRequest($requestId, $numItems, $executionTime, $pluginList, $additionalFilter )1088 static private function updateRequest($requestId, $numItems, $executionTime, $pluginList, $additionalFilter, $parameters) 1065 1089 { 1066 1090 $sql="UPDATE ".self::$tables['request']." … … 1068 1092 execution_time = $executionTime, 1069 1093 connected_plugin = '$pluginList', 1070 filter = '".mysql_escape_string($additionalFilter)."' 1094 filter = '".mysql_escape_string($additionalFilter)."', 1095 parameters = '".serialize($parameters)."' 1071 1096 WHERE id = $requestId"; 1072 1097 $result=pwg_query($sql); … … 1087 1112 { 1088 1113 $returned=false; 1089 $sql="SELECT user_id, date, num_items, execution_time, connected_plugin, filter 1114 $sql="SELECT user_id, date, num_items, execution_time, connected_plugin, filter, parameters 1090 1115 FROM ".self::$tables['request']." 1091 1116 WHERE id = $requestId"; … … 1095 1120 while($row=pwg_db_fetch_assoc($result)) 1096 1121 { 1122 if($row['parameters']!='') $row['parameters']=unserialize($row['parameters']); 1097 1123 $returned=$row; 1098 1124 }
Note: See TracChangeset
for help on using the changeset viewer.