function FlickrBucketsByDate() { // in 3.1 data list is immutable, hence the chaining $sqlbucketidsinorder = 'select distinct FlickrBucketID from ( select FlickrBucketID, FlickrPhoto.TakenAt from FlickrBucket INNER JOIN FlickrPhoto_FlickrBuckets ON FlickrBucketID = FlickrBucket.ID INNER JOIN FlickrPhoto ON FlickrPhoto.ID = FlickrPhoto_FlickrBuckets.FlickrPhotoID WHERE (FlickrSetID = ' . $this->ID . ') order by FlickrPhoto.TakenAt ) as OrderedBuckets'; $buckets = FlickrBucket::get()->filter(array('FlickrSetID' => $this->ID))->innerJoin('FlickrPhoto_FlickrBuckets', 'FlickrBucketID = FlickrBucket.ID')->innerJoin('FlickrPhoto', 'FlickrPhotoID = FlickrPhoto.ID')->sort('TakenAt'); $result = new ArrayList(); foreach ($buckets->getIterator() as $bucket) { $result->push($bucket); } $result->removeDuplicates(); return $result; }
public function createBucket() { $flickrPhotoIDs = $this->request->param('OtherID'); $flickrSetID = Convert::raw2sql($this->request->param('ID')); $ajax_bucket_row = Convert::raw2sql($_GET['bucket_row']); $sanitizedIDs = Convert::raw2sql($flickrPhotoIDs); $flickrPhotos = FlickrPhoto::get()->where('ID in (' . $sanitizedIDs . ')'); $flickrSet = FlickrSet::get()->where('ID=' . $flickrSetID)->first(); $bucket = new FlickrBucket(); $bucket->write(); $bucketPhotos = $bucket->FlickrPhotos(); foreach ($flickrPhotos as $fp) { $bucketPhotos->add($fp); } $bucket->FlickrSetID = $flickrSet->ID; $bucket->write(); $result = array('bucket_id' => $bucket->ID, 'flickr_set_id' => $flickrSet->ID, 'ajax_bucket_row' => $ajax_bucket_row); echo json_encode($result); die; // abort render }