• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/tab/settings/siteSetup/form/NewSiteImageFileForm.inc.php

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    // Extend methods from Form.
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    // Extend methods from SettingsFileUploadForm.
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    // Extend methods from Form.
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             // Get image dimensions
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             // Clean up the temporary file
00117             $this->removeTemporaryFile($request);
00118 
00119             return true;
00120          }
00121       }
00122       return false;
00123    }
00124 }
00125 
00126 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1