コード例 #1
0
 /**
  * Handles binding of the results to the Address objects and building authorship
  *
  * @param  Result $result Result object to gather results from
  *
  * @return array|Address|false an array of Address objects or a singular Address object
  */
 protected function _buildAddresses(Result $result, $alwaysReturnArray)
 {
     $addresses = $result->bindTo($this->_getAddressClassName());
     foreach ($result as $key => $address) {
         $addresses[$key]->lines = array(1 => $address->line_1 ?: null, 2 => $address->line_2 ?: null, 3 => $address->line_3 ?: null, 4 => $address->line_4 ?: null);
         $addresses[$key]->country = $this->_countries->getByID($address->countryID);
         if ($address->stateID) {
             $addresses[$key]->state = $this->_states->getByID($address->countryID, $address->stateID);
         }
         $addresses[$key]->authorship->create(new DateTimeImmutable(date('c', $address->created_at)), $address->created_by);
         if ($address->updated_at) {
             $addresses[$key]->authorship->update(new DateTimeImmutable(date('c', $address->updated_at)), $address->updated_by);
         }
     }
     return count($addresses) != 1 || $alwaysReturnArray ? $addresses : array_shift($addresses);
 }
コード例 #2
0
 /**
  * This will load file objects for the results of _load
  *
  * @param  Result $results 	Results of files that need to be loaded
  *
  * @return array|File 		array or single Page object if only one result
  */
 protected function _loadFile(Result $results)
 {
     $files = $results->bindTo('\\Message\\Mothership\\FileManager\\File\\File', [$this]);
     foreach ($results as $key => $result) {
         // Remove the file if it is deleted unless we are loading deleted files
         if ($result->deletedAt && !$this->_loadDeleted) {
             unset($files[$key]);
             continue;
         }
         $files[$key]->authorship->create(new DateTimeImmutable('@' . $result->createdAt), $result->createdBy);
         if ($result->updatedAt) {
             $files[$key]->authorship->update(new DateTimeImmutable('@' . $result->updatedAt), $result->updatedBy);
         }
         if ($result->deletedAt) {
             $files[$key]->authorship->delete(new DateTimeImmutable('@' . $result->deletedAt), $result->deletedBy);
         }
         $files[$key]->file = new FileSystemFile($files[$key]->url);
         // Force type to be an integer
         $files[$key]->typeID = (int) $files[$key]->typeID;
         $tags = $this->_loadTags($files[$key]);
         if ($tags) {
             $files[$key]->setTags($tags);
         }
     }
     return count($files) == 1 && !$this->_returnAsArray ? $files[0] : $files;
 }
コード例 #3
0
 /**
  * This will load file objects for the results of _load
  *
  * @param  Result $results 	Results of files that need to be loaded
  *
  * @return array|File 		array or single Page object if only one result
  */
 protected function _loadFile(Result $results)
 {
     $files = $results->bindTo('\\Message\\Mothership\\FileManager\\File\\FileProxy', [$this->_tagLoader]);
     foreach ($results as $key => $result) {
         $files[$key]->authorship->create(new DateTimeImmutable('@' . $result->createdAt), $result->createdBy);
         if ($result->updatedAt) {
             $files[$key]->authorship->update(new DateTimeImmutable('@' . $result->updatedAt), $result->updatedBy);
         }
         if ($result->deletedAt) {
             $files[$key]->authorship->delete(new DateTimeImmutable('@' . $result->deletedAt), $result->deletedBy);
         }
         $files[$key]->file = new FileSystemFile($files[$key]->url);
         // Force type to be an integer
         $files[$key]->typeID = (int) $files[$key]->typeID;
     }
     return count($files) == 1 && !$this->_returnAsArray ? array_shift($files) : $files;
 }