Changeset 5637 for trunk/prototype
- Timestamp:
- 03/06/12 02:03:17 (13 years ago)
- Location:
- trunk/prototype
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/api/controller.php
r5539 r5637 516 516 case 'find': $return = $params['service']->find( $params['URI'], $params['properties'], $params['criteria'] ); break; 517 517 518 case 'read': $return = $params['service']->read( $params['URI'], $params['properties'] /*, $criteria*/); break;518 case 'read': $return = $params['service']->read( $params['URI'], $params['properties'] , $params['criteria'] ); break; 519 519 520 520 case 'create': $return = $params['service']->create( $params['URI'], $params['properties']/*, $criteria*/ ); break; -
trunk/prototype/config/mailAttachment.ini
r5604 r5637 4 4 [before.create] 5 5 encodeCreateAttachment = modules/mail/interceptors/Attachments.php 6 7 [before.read] 8 securityOwner = modules/mail/interceptors/Attachments.php 9 10 [before.find] 11 securityOwner = modules/mail/interceptors/Attachments.php 6 12 7 13 [PostgreSQL.mapping] -
trunk/prototype/modules/mail/interceptors/Attachments.php
r5604 r5637 3 3 class Attachments { 4 4 5 public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 6 7 if(!isset($params['source'])) return false; 8 9 if(isset($_FILES[$params['source']])) 10 if(isset($params['id'])) 11 $params = array_merge($_FILES[$params['source']], array('id' => $params['id'])); 12 else 13 $params = $_FILES[$params['source']]; 14 15 $params['owner'] = Config::me('uidNumber'); 16 17 $params['disposition'] = $original['properties']['disposition']; 18 $params['dtstamp'] = time(); 5 public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 6 if(!isset($params['source'])) return false; 7 8 if(isset($_FILES[$params['source']])) 9 $params = $_FILES[$params['source']]; 10 11 $params['owner'] = Config::me('uidNumber'); 12 13 $params['disposition'] = $original['properties']['disposition']; 14 $params['dtstamp'] = time(); 19 15 } 20 16 17 public function securityOwner( &$uri , &$params , &$criteria , $original ) 18 { 19 $criteria['filter'] = isset( $criteria['filter'] ) ? array('AND', $criteria['filter'] , array('=' , 'owner', Config::me('uidNumber')) ) : array('=' , 'owner', Config::me('uidNumber')); 20 } 21 21 22 } 22 23 -
trunk/prototype/services/PostgreSQL.php
r5514 r5637 18 18 } 19 19 20 public function read ( $uri, $justthese = false ){20 public function read ( $uri, $justthese = false , $criteria = false){ 21 21 22 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 23 22 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 24 23 $justthese = self::parseJustthese($justthese, $map); 25 26 return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .' WHERE id = \''.addslashes( $uri['id'] ).'\'', true ); 24 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE id = \''.addslashes( $uri['id'] ).'\'') : ''; 25 26 return $this->execResultSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .$criteria , true ); 27 27 } 28 28 … … 174 174 } 175 175 176 private static function parseCriteria( $criteria , &$map ){ 177 178 $result = ''; 176 private static function parseCriteria( $criteria , &$map , $query = '' ){ 179 177 180 178 if( isset($criteria["filter"]) && $criteria["filter"] !== NULL ) … … 190 188 * array( '=' , 'campo' , 'valor' ) 191 189 */ 192 193 $result .= 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')'; 190 $query .= ($query === '') ? 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')' : ' AND ('.self::parseFilter( $criteria['filter'] , $map).')'; 194 191 } 195 192 /* … … 200 197 { 201 198 foreach ($criteria["join"] as $i => $v) 202 $ result.= ' AND '.$i.' = '.$v.' ';199 $query .= ' AND '.$i.' = '.$v.' '; 203 200 } 204 201 205 202 if( isset($criteria["group"]) ) 206 203 { 207 $ result.= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' ';204 $query .= ' GROUP BY '.( is_array($criteria["group"]) ? implode(', ', $criteria["group"]) : $criteria["group"] ).' '; 208 205 } 209 206 210 207 if( isset($criteria["order"]) ) 211 208 { 212 $ result.= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' ';209 $query .= ' ORDER BY '.self::parseOrder( $criteria["order"], $map ).' '; 213 210 } 214 211 if( isset($criteria["limit"]) ) 215 212 { 216 $ result.= ' LIMIT '. $criteria["limit"] .' ';213 $query .= ' LIMIT '. $criteria["limit"] .' '; 217 214 } 218 215 if( isset($criteria["offset"]) ) 219 216 { 220 $ result.= ' OFFSET '. $criteria["offset"] .' ';221 } 222 223 return $ result;217 $query .= ' OFFSET '. $criteria["offset"] .' '; 218 } 219 220 return $query; 224 221 } 225 222
Note: See TracChangeset
for help on using the changeset viewer.