00001 <?php
00002
00015 import('controllers.tab.settings.form.SettingsFileUploadForm');
00016
00017 class NewSiteImageFileForm extends SettingsFileUploadForm {
00018
00023 function NewSiteImageFileForm($imageSettingName) {
00024 parent::SettingsFileUploadForm('controllers/tab/settings/form/newImageFileUploadForm.tpl');
00025 $this->setFileSettingName($imageSettingName);
00026 }
00027
00028
00029
00030
00031
00035 function initData(&$request) {
00036 $site =& $request->getSite();
00037 $fileSettingName = $this->getFileSettingName();
00038
00039 $image = $site->getSetting($fileSettingName);
00040 $imageAltText = array();
00041
00042 $supportedLocales = AppLocale::getSupportedLocales();
00043 foreach ($supportedLocales as $key => $locale) {
00044 $imageAltText[$key] = $image[$key]['altText'];
00045 }
00046
00047 $this->setData('imageAltText', $imageAltText);
00048 }
00049
00050
00051
00052
00056 function readInputData() {
00057 $this->readUserVars(array('imageAltText'));
00058
00059 parent::readInputData();
00060 }
00061
00065 function fetch(&$request) {
00066 $params = array('fileType' => 'image');
00067 return parent::fetch($request, $params);
00068 }
00069
00070
00071
00072
00073
00078 function execute(&$request) {
00079 $temporaryFile = $this->fetchTemporaryFile($request);
00080
00081 import('classes.file.PublicFileManager');
00082 $publicFileManager = new PublicFileManager();
00083
00084 if (is_a($temporaryFile, 'TemporaryFile')) {
00085 $type = $temporaryFile->getFileType();
00086 $extension = $publicFileManager->getImageExtension($type);
00087 if (!$extension) {
00088 return false;
00089 }
00090 $locale = AppLocale::getLocale();
00091 $press = $request->getPress();
00092
00093 $uploadName = $this->getFileSettingName() . '_' . $locale . $extension;
00094 if ($publicFileManager->copyFile($temporaryFile->getFilePath(), $publicFileManager->getSiteFilesPath() . '/' . $uploadName)) {
00095
00096
00097 $filePath = $publicFileManager->getSiteFilesPath();
00098 list($width, $height) = getimagesize($filePath . '/' . $uploadName);
00099
00100 $site =& $request->getSite();
00101 $siteDao =& DAORegistry::getDAO('SiteDAO');
00102 $value = $site->getSetting($this->getFileSettingName());
00103 $imageAltText = $this->getData('imageAltText');
00104
00105 $value[$locale] = array(
00106 'originalFilename' => $temporaryFile->getOriginalFileName(),
00107 'uploadName' => $uploadName,
00108 'width' => $width,
00109 'height' => $height,
00110 'dateUploaded' => Core::getCurrentDate(),
00111 'altText' => $imageAltText[$locale]
00112 );
00113
00114 $site->updateSetting($this->getFileSettingName(), $value, 'object', true);
00115
00116
00117 $this->removeTemporaryFile($request);
00118
00119 return true;
00120 }
00121 }
00122 return false;
00123 }
00124 }
00125
00126 ?>