Minahito
minah****@users*****
2006年 5月 15日 (月) 14:26:50 JST
Index: xoops2jp/html/modules/base/admin/forms/ImageAdminEditForm.class.php diff -u xoops2jp/html/modules/base/admin/forms/ImageAdminEditForm.class.php:1.1.2.1 xoops2jp/html/modules/base/admin/forms/ImageAdminEditForm.class.php:1.1.2.2 --- xoops2jp/html/modules/base/admin/forms/ImageAdminEditForm.class.php:1.1.2.1 Fri May 12 19:14:22 2006 +++ xoops2jp/html/modules/base/admin/forms/ImageAdminEditForm.class.php Mon May 15 14:26:50 2006 @@ -5,11 +5,15 @@ require_once XOOPS_ROOT_PATH . "/class/XCube_ActionForm.class.php"; require_once XOOPS_MODULE_PATH . "/base/class/Legacy_Validator.class.php"; -class Base_ImageAdminEditForm extends XCube_ActionForm +class Legacy_ImageAdminEditForm extends XCube_ActionForm { + var $mOldFileName = null; + var $_mIsNew = null; + var $mFormFile = null; + function getTokenName() { - return "module.base.ImageAdminEditForm.TOKEN"; + return "module.base.ImageAdminEditForm.TOKEN" . $this->get('image_id'); } function prepare() @@ -18,10 +22,8 @@ // Set form properties // $this->mFormProperties['image_id'] =& new XCube_IntProperty('image_id'); - $this->mFormProperties['image_name'] =& new XCube_StringProperty('image_name'); + $this->mFormProperties['image_name'] =& new XCube_ImageFileProperty('image_name'); $this->mFormProperties['image_nicename'] =& new XCube_StringProperty('image_nicename'); - $this->mFormProperties['image_mimetype'] =& new XCube_StringProperty('image_mimetype'); - $this->mFormProperties['image_created'] =& new XCube_IntProperty('image_created'); $this->mFormProperties['image_display'] =& new XCube_BoolProperty('image_display'); $this->mFormProperties['image_weight'] =& new XCube_IntProperty('image_weight'); $this->mFormProperties['imgcat_id'] =& new XCube_IntProperty('imgcat_id'); @@ -29,64 +31,93 @@ // // Set field properties // - $this->mFieldProperties['image_id'] =& new XCube_FieldProperty($this); $this->mFieldProperties['image_id']->setDependsByArray(array('required')); $this->mFieldProperties['image_id']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_ID); $this->mFieldProperties['image_name'] =& new XCube_FieldProperty($this); - $this->mFieldProperties['image_name']->setDependsByArray(array('required','maxlength')); - $this->mFieldProperties['image_name']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_NAME, '30'); - $this->mFieldProperties['image_name']->addMessage('maxlength', _AD_BASE_ERROR_MAXLENGTH, _AD_BASE_LANG_IMAGE_NAME, '30'); - $this->mFieldProperties['image_name']->addVar('maxlength', '30'); + $this->mFieldProperties['image_name']->setDependsByArray(array('extension')); + $this->mFieldProperties['image_name']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_NAME); + $this->mFieldProperties['image_name']->addMessage('maxlength', _AD_BASE_ERROR_EXTENSION, _AD_BASE_LANG_IMAGE_NAME); + $this->mFieldProperties['image_name']->addVar('extension', 'jpg,gif,png'); $this->mFieldProperties['image_nicename'] =& new XCube_FieldProperty($this); - $this->mFieldProperties['image_nicename']->setDependsByArray(array('required','maxlength')); - $this->mFieldProperties['image_nicename']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_NICENAME, '255'); - $this->mFieldProperties['image_nicename']->addMessage('maxlength', _AD_BASE_ERROR_MAXLENGTH, _AD_BASE_LANG_IMAGE_NICENAME, '255'); - $this->mFieldProperties['image_nicename']->addVar('maxlength', '255'); - - $this->mFieldProperties['image_mimetype'] =& new XCube_FieldProperty($this); - $this->mFieldProperties['image_mimetype']->setDependsByArray(array('required','maxlength')); - $this->mFieldProperties['image_mimetype']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_MIMETYPE, '30'); - $this->mFieldProperties['image_mimetype']->addMessage('maxlength', _AD_BASE_ERROR_MAXLENGTH, _AD_BASE_LANG_IMAGE_MIMETYPE, '30'); - $this->mFieldProperties['image_mimetype']->addVar('maxlength', '30'); - - $this->mFieldProperties['image_created'] =& new XCube_FieldProperty($this); - $this->mFieldProperties['image_created']->setDependsByArray(array('required')); - $this->mFieldProperties['image_created']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_CREATED); + $this->mFieldProperties['image_nicename']->setDependsByArray(array('required')); + $this->mFieldProperties['image_nicename']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_NICENAME); $this->mFieldProperties['image_weight'] =& new XCube_FieldProperty($this); $this->mFieldProperties['image_weight']->setDependsByArray(array('required')); $this->mFieldProperties['image_weight']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMAGE_WEIGHT); $this->mFieldProperties['imgcat_id'] =& new XCube_FieldProperty($this); - $this->mFieldProperties['imgcat_id']->setDependsByArray(array('required')); + $this->mFieldProperties['imgcat_id']->setDependsByArray(array('required','objectExist')); $this->mFieldProperties['imgcat_id']->addMessage('required', _AD_BASE_ERROR_REQUIRED, _AD_BASE_LANG_IMGCAT_ID); + $this->mFieldProperties['imgcat_id']->addMessage('objectExist', _AD_BASE_ERROR_OBJECTEXIST, _AD_BASE_LANG_IMGCAT_ID); + $this->mFieldProperties['imgcat_id']->addVar('handler', 'imagecategory'); + $this->mFieldProperties['imgcat_id']->addVar('module', 'base'); + } + + function validateImage_name() + { + $formFile = $this->get('image_name'); + + if ($formFile == null && $this->_mIsNew ) { + $this->addErrorMessage(_AD_BASE_ERROR_REQUIRED); + } + } + + function validate() + { + parent::validate(); + + $handler =& xoops_getmodulehandler('imagecategory', 'base'); + $category =& $handler->get($this->get('imgcat_id')); + + $formFile = $this->get('image_name'); + + if ($formFile != null && is_object($category)) { + // + // Imagefile width & height check. + // + if ($formFile->getWidth() > $category->get('imgcat_maxwidth') || $formFile->getHeight() > $category->get('imgcat_maxheight')) { + $this->addErrorMessage(_AD_BASE_ERROR_IMG_SIZE); + } + + // + // Check file size + // + if ($formFile->getFilesize() > $category->get('imgcat_maxsize')) { + $this->addErrorMessage(_AD_BASE_ERROR_IMG_FILESIZE); + } + } } function load(&$obj) { $this->set('image_id', $obj->get('image_id')); - $this->set('image_name', $obj->get('image_name')); $this->set('image_nicename', $obj->get('image_nicename')); - $this->set('image_mimetype', $obj->get('image_mimetype')); - $this->set('image_created', $obj->get('image_created')); $this->set('image_display', $obj->get('image_display')); $this->set('image_weight', $obj->get('image_weight')); $this->set('imgcat_id', $obj->get('imgcat_id')); + + $this->_mIsNew = $obj->isNew(); + $this->mOldFileName = $obj->get('image_name'); } function update(&$obj) { $obj->set('image_id', $this->get('image_id')); - $obj->set('image_name', $this->get('image_name')); $obj->set('image_nicename', $this->get('image_nicename')); - $obj->set('image_mimetype', $this->get('image_mimetype')); - $obj->set('image_created', $this->get('image_created')); $obj->set('image_display', $this->get('image_display')); $obj->set('image_weight', $this->get('image_weight')); $obj->set('imgcat_id', $this->get('imgcat_id')); + + $this->mFormFile = $this->get('image_name'); + if ($this->mFormFile != null) { + $this->mFormFile->setRandomToBodyName('img'); + $obj->set('image_name', $this->mFormFile->getFileName()); + $obj->set('image_mimetype', $this->mFormFile->getContentType()); + } } }