/** * Returns Doctrine Record object prepared for form given the relation * @param string $relationName * @param Doctrine_Relation $relation * @return Doctrine_Record */ private function embeddedFormObjectFactory($relationName, Doctrine_Relation $relation) { if (!$relation->isOneToOne()) { $newFormObjectClass = $relation->getClass(); $newFormObject = new $newFormObjectClass(); $newFormObject[$this->getRelationAliasByObject($newFormObject)] = $this->getObject(); } else { $newFormObject = $this->getObject()->{$relationName}; } return $newFormObject; }
protected function renderRelatedRecord(Doctrine_Record $record, Doctrine_Relation $relation) { $value = $record->get($relation->getLocal()); $cacheKey = md5(implode('|', array($this->versionModel, $relation->getClass(), $value))); if (isset($this->relatedRecordCache[$cacheKey])) { return $this->relatedRecordCache[$cacheKey]; } try { if ('DmMedia' === $relation->getClass()) { $relatedRecord = $relation->getTable()->findOneByIdWithFolder($value); if ($relatedRecord && $relatedRecord->isImage()) { $return = $this->helper->media($relatedRecord)->size($this->getOption('media_width'), $this->getOption('media_height'))->render(); } else { $return = $relatedRecord; } } else { $return = $relation->getTable()->findOneById($value); } } catch (Exception $e) { $return = get_class($relation->getClass()) . ' #' . $value; } return $this->relatedRecordCache[$cacheKey] = $return; }