/**
  * 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 new element
  *
  * @param AM_Model_Db_Page $oPage
  * @param AM_Model_Db_Field $oField
  * @return AM_Model_Db_Element
  */
 public static function getElementForPageAndField(AM_Model_Db_Page $oPage, AM_Model_Db_Field $oField)
 {
     $iMaxWeight = AM_Model_Db_Table_Abstract::factory('element')->getMaxElementWeight($oPage, $oField);
     $oElement = new AM_Model_Db_Element();
     $oElement->setPage($oPage);
     $oElement->weight = is_null($iMaxWeight) ? 0 : ++$iMaxWeight;
     $oElement->page = $oPage->id;
     $oElement->field = $oField->id;
     $oElement->save();
     return $oElement;
 }
Exemple #3
0
 /**
  * Create new element or return exists
  *
  * @param AM_Model_Db_Page $oPage
  * @param AM_Model_Db_Field $oField
  * @return AM_Model_Db_Element
  */
 public static function getElementForPageAndField(AM_Model_Db_Page $oPage, AM_Model_Db_Field $oField)
 {
     $oElement = AM_Model_Db_Table_Abstract::factory('element')->findOneBy(array('page' => $oPage->id, 'field' => $oField->id));
     if (!is_null($oElement)) {
         return $oElement;
     }
     $oElement = new AM_Model_Db_Element();
     $oElement->setPage($oPage);
     $oElement->page = $oPage->id;
     $oElement->field = $oField->id;
     $oElement->save();
     return $oElement;
 }
Exemple #4
0
 /**
  * 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;
 }
Exemple #5
0
 /**
  * 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;
 }