public function show() { $aElements = $this->_oPage->getElementsByField($this->_oField); $aFieldView = array(); if (count($aElements)) { $aElementView = array(); $oElement = $aElements[0]; /* @var $oElement AM_Model_Db_Element */ $sBody = $oElement->getResources()->getDataValue(AM_Model_Db_Element_Data_Html5::DATA_KEY_HTML5_BODY); $aElementView[AM_Model_Db_Element_Data_Html5::DATA_KEY_HTML5_BODY] = $sBody; if (!empty($sBody)) { /** Select and fill fields, that refers to selected body */ foreach (AM_Model_Db_Element_Data_Html5::$aFieldList[$sBody] as $sFieldName) { $sFieldValue = $oElement->getResources()->getDataValue($sFieldName); if (AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE == $sFieldName && !empty($sFieldValue)) { $aFileInfo = pathinfo($sFieldValue); $sFileName = $aFileInfo['filename']; $sFileExtension = $aFileInfo['extension']; $aElementView['element']['fileName'] = $sFileName . '.' . $sFileExtension; $aElementView['element']['fileNameShort'] = $this->getHelper('String')->cut($sFileName) . '.' . $sFileExtension; $sResourceFileName = AM_Model_Db_Element_Data_Html5::DATA_KEY_RESOURCE . '.' . $sFileExtension; $aElementView['element']['smallUri'] = AM_Tools::getIconForNonImageFile($sResourceFileName); } $aElementView[$sFieldName] = $sFieldValue; } $aElementView['element']['id'] = $oElement->id; } } if (isset($aElementView)) { $aFieldView = $aElementView; } $aFieldView['select_body'] = AM_Model_Db_Element_Data_Html5::$aBodyList; $aExtensions = array_map('strtoupper', AM_Model_Db_Element_Data_Html5::getAllowedFileExtensions()); sort($aExtensions, SORT_STRING); $aFieldView['allowedExtensions'] = implode(' / ', $aExtensions); $aFieldView['defaultImageUri'] = AM_Tools::getImageUrl(AM_Handler_Thumbnail_Interface::PRESET_FIELD . '-' . $this->_sPageOrientation, 'element', null, null); $this->_setFieldData($aFieldView); parent::show(); }
/** * 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; }
/** * Editor toc-upload * Upload stripe ans summary for TOC's term * @return JSON */ public function tocUploadAction() { $aMessage = array('status' => 0); try { $iRevisionId = intval($this->_getParam('rid')); $iTocItemId = intval($this->_getParam('id')); $sKey = trim($this->_getParam('key')); if (!AM_Model_Db_Table_Abstract::factory('term')->checkAccess($iTocItemId, $this->_aUserInfo) || empty($sKey)) { throw new AM_Controller_Exception_BadRequest('Error. Invalid params were given'); } $oRevision = AM_Model_Db_Table_Abstract::factory('revision')->findOneBy('id', $iRevisionId); /* @var $oRevision AM_Model_Db_Revision */ if (is_null($oRevision)) { throw new AM_Controller_Exception_Forbidden('Access denied'); } $oTerm = AM_Model_Db_Table_Abstract::factory('term')->findOneBy('id', $iTocItemId); /* @var $oTerm AM_Model_Db_Term */ if (is_null($oTerm)) { throw new AM_Controller_Exception_Forbidden('Access denied'); } $oTerm->getResources()->upload($sKey); $sField = 'thumb_' . $sKey; $sResourceFile = $oTerm->{$sField}; $aFileInfo = pathinfo($sResourceFile); $sFileName = $aFileInfo['filename']; $sFileExtension = $aFileInfo['extension']; $aResourceFileViewInfo = array(); $aResourceFileViewInfo['name'] = $sFileName . '.' . $sFileExtension; $aResourceFileViewInfo['nameShort'] = $this->getHelper('String')->cut($sFileName) . '.' . $sFileExtension; $sFileName = $sKey . '.' . $oTerm->getResources()->getImageType(); if (AM_Tools::isAllowedImageExtension($sResourceFile)) { $uniq = '?' . strtotime($oTerm->updated); $aResourceFileViewInfo['smallUri'] = AM_Tools::getImageUrl('toc-' . $sKey, 'toc', $oTerm->id, $sFileName) . $uniq; $aResourceFileViewInfo['bigUri'] = AM_Tools::getImageUrl('none', 'toc', $oTerm->id, $sFileName) . $uniq; } else { $aResourceFileViewInfo['smallUri'] = AM_Tools::getIconForNonImageFile($sFileName); } $oRevision->exportRevision(); $aMessage['file'] = $aResourceFileViewInfo; $aMessage['status'] = 1; } catch (Exception $oException) { $aMessage['message'] = $this->__('Error. Can\'t upload file') . PHP_EOL . $oException->getMessage(); } return $this->sendJsonAsPlainText($aMessage); }
/** * Upload resource */ public function uploadAction() { try { $aMessage = array('status' => 0); if (!$this->_iPageId || !$this->_iFieldId) { throw new AM_Exception('Invalid params'); } $oField = AM_Model_Db_Table_Abstract::factory('field')->findOneBy('id', $this->_iFieldId); /* @var $oField AM_Model_Db_Field */ if (is_null($oField)) { throw new AM_Exception(sprintf('Field with id "%d" not found.', $this->_iFieldId)); } $oPage = AM_Model_Db_Table_Abstract::factory('page')->findOneBy('id', $this->_iPageId); /* @var $oPage AM_Model_Db_Page */ if (is_null($oPage)) { throw new AM_Exception(sprintf('Page with id "%d" not found.', $this->_iPageId)); } $oElement = $oPage->getElementForField($oField); /* @var $oElement AM_Model_Db_Element */ $oElement->uploadResource(); $this->_postUpload($oElement); $sResourceFile = $oElement->getResources()->getDataValue(AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE); $sResourceImageType = $oElement->getResources()->getDataValue(AM_Model_Db_Element_Data_Resource::DATA_KEY_IMAGE_TYPE); $aFileInfo = pathinfo($sResourceFile); $sFileName = $aFileInfo['filename']; $sFileExtension = empty($sResourceImageType) ? $aFileInfo['extension'] : $sResourceImageType; $aResourceFileViewInfo = array(); $aResourceFileViewInfo['fileName'] = $sFileName . '.' . $aFileInfo['extension']; $aResourceFileViewInfo['fileNameShort'] = $this->getHelper('String')->cut($sFileName) . '.' . $aFileInfo['extension']; $sResourceFileName = AM_Model_Db_Element_Data_Resource::DATA_KEY_RESOURCE . '.' . $sFileExtension; if (AM_Tools::isAllowedImageExtension($sResourceFile)) { $sOrientation = $oPage->getOrientation(); if (AM_Model_Db_Template::TPL_SCROLLING_PAGE_HORIZONTAL == $oPage->template) { $sOrientation = AM_Model_Db_Issue::ORIENTATION_HORIZONTAL; } $sUniq = '?' . strtotime($oElement->updated); $aResourceFileViewInfo['smallUri'] = AM_Tools::getImageUrl(AM_Handler_Thumbnail_Interface::PRESET_FIELD . '-' . $sOrientation, 'element', $oElement->id, $sResourceFileName) . $sUniq; $aResourceFileViewInfo['bigUri'] = AM_Tools::getImageUrl('none', 'element', $oElement->id, $sResourceFileName) . $sUniq; } else { $aResourceFileViewInfo['smallUri'] = AM_Tools::getIconForNonImageFile($sResourceFileName); } $oPage->setUpdated(); $aMessage['fieldTypeTitle'] = $oField->getFieldType()->title; $aMessage['background'] = $oPage->getPageBackgroundUri(); $aMessage['element'] = $oElement->id; $aMessage['file'] = $aResourceFileViewInfo; $aMessage['status'] = 1; } catch (Exception $e) { $aMessage["message"] = $this->__('Error. Can\'t upload file') . PHP_EOL . $e->getMessage(); } return $this->sendJsonAsPlainText($aMessage); }