/** * Post upload trigger * @param AM_Model_Db_Element $oElement */ protected function _postUpload(AM_Model_Db_Element $oElement) { $iGalleryId = intval($this->_getParam('gallery_id')); if (empty($iGalleryId)) { $iGalleryId = 1; } $oElement->getResources()->addKeyValue(AM_Model_Db_Element_Data_Gallery::DATA_KEY_GALLERY_ID, $iGalleryId); }
/** * Create revision from simple pdf * @param AM_Model_Db_IssueSimplePdf $oSimplePdf * @return AM_Model_Db_Revision * @throws AM_Handler_Issue_Exception */ public function createRevisionFromSimplePdf(AM_Model_Db_IssueSimplePdf $oSimplePdf) { $aImages = $oSimplePdf->getAllPagesThumbnails(); //Create revision $oRevision = new AM_Model_Db_Revision(); $oRevision->state = AM_Model_Db_Issue::STATUS_WIP; $oRevision->user = $this->getIssue()->user; $oRevision->issue = $this->getIssue()->id; $oRevision->save(); $oRevision->title = 'Revision #' . $oRevision->id; $oRevision->save(); //Create cover page $oPage = new AM_Model_Db_Page(); $oPage->title = 'Root page'; $oPage->template = AM_Model_Db_Template::TPL_COVER_PAGE; $oPage->revision = $oRevision->id; $oPage->user = $this->getIssue()->user; $oPage->root_page = true; $oPage->save(); //Find field record for type 'Body' $oFieldBody = AM_Model_Db_Table_Abstract::factory('field')->findOneBy(array('field_type' => 1, 'template' => AM_Model_Db_Template::TPL_COVER_PAGE)); if (is_null($oFieldBody)) { throw new AM_Handler_Issue_Exception('Field "Body" not found'); } //Create element for cover page $oElement = new AM_Model_Db_Element(); $oElement->field = $oFieldBody->id; $oElement->page = $oPage->id; $oElement->save(); AM_Tools::clearContent(AM_Model_Db_Element::RESOURCE_TYPE, $oElement->id); AM_Tools::clearResizerCache(AM_Model_Db_Element::RESOURCE_TYPE, $oElement->getResources()->getThumbnailPresetName(), $oElement->id); //Prepare resources for the element $sImage = array_shift($aImages); $oElement->getResources()->setData(array(AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE => $sImage))->save(); //Set page background $oElement->getResources()->setPageBackground(); //Create childs $oFieldBody = AM_Model_Db_Table_Abstract::factory('field')->findOneBy(array('field_type' => 1, 'template' => AM_Model_Db_Template::TPL_SIMPLE_PAGE)); if (is_null($oFieldBody)) { throw new AM_Handler_Issue_Exception('Field "Body" not found'); } $oPageRoot = clone $oPage; foreach ($aImages as $sImage) { $oPage = new AM_Model_Db_Page(); $oPage->title = 'Right connected to page ' . $oPageRoot->id; $oPage->template = AM_Model_Db_Template::TPL_SIMPLE_PAGE; $oPage->revision = $oRevision->id; $oPage->user = $this->getIssue()->user; $oPage->setConnectionBit(AM_Model_Db_page::LINK_LEFT); $oPage->save(); $oPageRoot->setConnectionBit(AM_Model_Db_page::LINK_RIGHT); $oPageRoot->save(); $oPage->setParent($oPageRoot); $oPage->setLinkType(AM_Model_Db_page::LINK_RIGHT)->savePageImposition(); //Create element for cover page $oElement = new AM_Model_Db_Element(); $oElement->field = $oFieldBody->id; $oElement->page = $oPage->id; $oElement->save(); AM_Tools::clearContent(AM_Model_Db_Element::RESOURCE_TYPE, $oElement->id); AM_Tools::clearResizerCache(AM_Model_Db_Element::RESOURCE_TYPE, $oElement->getResources()->getThumbnailPresetName(), $oElement->id); //Prepare resources for the element $oElement->getResources()->setData(array(AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE => $sImage))->save(); //Set page background $oElement->getResources()->setPageBackground(); $oPageRoot = clone $oPage; } $oRevision->exportRevision(); return $oRevision; }
/** * Prepares vew data for resource * @param AM_Model_Db_Element $oElement * @param string $sResourceKeyName * @return array */ protected function _getResourceViewData(AM_Model_Db_Element $oElement, $sResourceKeyName = AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE) { $sFile = $oElement->getResources()->getDataValue($sResourceKeyName); $aElementView = array(); if ($sFile) { $aFileInfo = pathinfo($sFile); $sFileName = $aFileInfo['filename']; $sFileExtension = $oElement->getResources()->getImageType(); $aElementView['fileName'] = $sFileName . '.' . $aFileInfo['extension']; $aElementView['fileNameShort'] = $this->getHelper('String')->cut($sFileName) . '.' . $aFileInfo['extension']; $sResourceFileName = $sResourceKeyName . '.' . $sFileExtension; if (AM_Tools::isAllowedImageExtension($sFile)) { $sUniq = '?' . strtotime($oElement->updated); $aElementView['smallUri'] = AM_Tools::getImageUrl($this->_getThumbnailPresetName(), 'element', $oElement->id, $sResourceFileName) . $sUniq; $aElementView['bigUri'] = AM_Tools::getImageUrl('none', 'element', $oElement->id, $sResourceFileName) . $sUniq; } else { $aElementView['smallUri'] = AM_Tools::getIconForNonImageFile($sResourceFileName); } $aElementView['originUri'] = '/content/element/' . AM_Tools_String::generatePathFromId(intval($oElement->id), '/') . "/{$sResourceKeyName}.{$aFileInfo['extension']}"; } return $aElementView; }