[xoops-cvslog 3021] CVS update: xoops2jp/html/modules/base/admin/forms

Back to archive index

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());
+		}
 	}
 }
 


xoops-cvslog メーリングリストの案内
Back to archive index