Exemple #1
0
 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();
 }
Exemple #2
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;
 }
 /**
  * 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);
 }
Exemple #4
0
 /**
  * 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);
 }