/** * 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); }
/** * 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; }
/** * 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; }