/** * Delete all information about file * * @param Zend_Db_Table_Row $unit * @param Zend_Db_Table_Row $file */ function deleteFile($unit, $file) { $mediaManager = new RM_Media_Unit_Manager($unit); $mediaManager->deleteImageFiles($file->filename); $model = new RM_UnitMediaFileTypes(); $unitTypeFiles = $model->getByFile($file); foreach ($unitTypeFiles as $typeFile) { $typeFile->delete(); } return $file->delete(); }
/** * This method is for adding image from media library to an unit */ function addJsonAction() { $unitID = $this->_getParam('unit_id', null); if ($unitID == null) { return array('data' => array('success' => false, 'error' => $this->_translate->_('Admin.Unit.Media', 'UnitIDNotSpecified'))); } $unitModel = new RM_Units(); $unit = $unitModel->find($unitID)->current(); if ($unit == null) { return array('data' => array('success' => false, 'error' => $this->_translate->_('Admin.Unit.Media', 'WrongUnitID'))); } $filename = urldecode($this->_getParam('filename', null)); if ($filename == null) { return array('data' => array('success' => false, 'error' => $this->_translate->_('Admin.Unit.Media', 'ImageFilenameNotSpecified'))); } $mediaManager = new RM_Media_Unit_Manager($unit); try { $mediaManager->addImage($filename); } catch (RM_Exception $exception) { return array('data' => array('success' => false, 'error' => $exception->getMessage())); } }
/** * Updates configuration. * * @param request all values this values for the config update * @return json boolean response of true or false in json format (true is success) */ function updateJsonAction() { $model = new RM_Config(); $fields = $model->fetchAll(); foreach ($fields as $field) { switch ($field->xtype) { case "checkbox": $value = $this->_getParam($field->id); break; default: $value = $this->_getParam($field->id, $this->_getParam($field->id . "_hidden")); } if ($value !== null) { $field->value = $value; $field->save(); } } // process image resizing if ($this->_getParam('image_resize', 0) == 1) { //1. resize images for media, if we will later add extra options for admin thumnails //$mediaManager = new RM_Media_Manager(); //$mediaManager->resize(); //2. resize images for units $unitModel = new RM_Units(); $units = $unitModel->fetchAll(); foreach ($units as $unit) { $unitMediaManager = new RM_Media_Unit_Manager($unit); $unitMediaManager->resize(); } } return array('data' => array('success' => true)); }
/** * Insert a unit by its primary key * * @param array $unit Array with all unit information * @param string $iso ISO language code ('cause we got all unit info with language dependent fields) * @param boolean $fromGUI This parameter told us was that data from GUI or it's internal usage. * @return mixed The primary key of the row inserted. */ public function insert($unit, $iso, $fromGUI = false) { $unitTypeDAO = new RM_UnitTypes(); $type = $unitTypeDAO->find($unit['type_id'])->current(); list($fields, $languageFields) = $this->_getFieldsByType($type); $unitArray = array(); $languageArray = array(); foreach ($fields as $field) { $unitArray[$field->column_name] = $unit[$field->column_name]; } foreach ($languageFields as $field) { $languageArray[$field->column_name] = $unit[$field->column_name]; } //TODO: this code need to be more flexible to do not use UnitTypeManager module $manager = new RM_Module_UnitTypeManager(); $unitArray['type_id'] = $manager->getDefaultUnitType()->id; if ($fromGUI) { $languageArray['unit_id'] = $this->insertFromGUI($unitArray); } else { $languageArray['unit_id'] = parent::insert($unitArray); } $unitModel = new RM_Units(); $newUnit = $unitModel->createRow(array('id' => $languageArray['unit_id'])); $mediaManager = new RM_Media_Unit_Manager($newUnit); $mediaManager->createFolder(); //we need to create a unit detail row for every language installed in the system $languageModel = new RM_Languages(); $languages = $languageModel->fetchAll(); $unitLanguageModel = new RM_UnitLanguageDetails(); foreach ($languages as $language) { $languageArray['iso'] = $language->iso; $unitLanguageModel->insert($languageArray); } return $languageArray['unit_id']; }