⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adminaddresourceaction.class.php

📁 一个用PHP编写的
💻 PHP
字号:
<?php	lt_include( PLOG_CLASS_PATH."class/action/admin/adminaction.class.php" );    lt_include( PLOG_CLASS_PATH."class/view/admin/adminresourceslistview.class.php" );    lt_include( PLOG_CLASS_PATH."class/view/admin/adminnewresourceview.class.php" );	    lt_include( PLOG_CLASS_PATH."class/gallery/dao/galleryalbums.class.php" );    lt_include( PLOG_CLASS_PATH."class/net/http/httpvars.class.php" );    lt_include( PLOG_CLASS_PATH."class/gallery/dao/galleryresources.class.php" );	lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );	lt_include( PLOG_CLASS_PATH."class/data/validator/arrayvalidator.class.php" );    lt_include( PLOG_CLASS_PATH."class/view/admin/chooser/adminsimpleresourceslistview.class.php" );    lt_include( PLOG_CLASS_PATH."class/view/admin/chooser/adminuserpictureselectview.class.php" );    lt_include( PLOG_CLASS_PATH."class/view/admin/adminresourceslistview.class.php" );    lt_include( PLOG_CLASS_PATH."class/file/fileupload.class.php" );    /**     * \ingroup Action     * @private     *     * Adds a new resource to an album     */    class AdminAddResourceAction extends AdminAction    {    	var $_description;        var $_albumId;        var $_resource;		var $_destView;    	/**         * Constructor. If nothing else, it also has to call the constructor of the parent         * class, BlogAction with the same parameters         */        function AdminAddResourceAction( $actionInfo, $request )        {        	$this->AdminAction( $actionInfo, $request );						$this->registerFieldValidator( "resourceFile_1", new ArrayValidator(), true);			$this->registerFieldValidator( "albumId", new IntegerValidator());						$this->_destView    = $this->_request->getValue( "destView" );			$this->_form->registerField( "resourceDescription" );			$this->_form->registerField( "destination" );						if( $this->_destView == "resourceList" )				$view = new AdminSimpleResourcesListView( $this->_blogInfo, Array( "albumId" => 0 ));			elseif ($this->_destView == "userPictureSelect" )				$view = new AdminUserPictureSelectView( $this->_blogInfo, Array( "albumId" => 0 ));			else				$view = new AdminNewResourceView( $this->_blogInfo );							$view->setErrorMessage( $this->_locale->tr( "error_no_resource_uploaded" ));			$this->setValidationErrorView( $view );						$this->requirePermission( "add_resource" );			        }        /**         * Carries out the specified action         */        function perform()        {				// are resources enabled?			$config =& Config::getConfig();			if( !$config->getValue( "resources_enabled", true )) {            	$this->_view = new AdminResourcesListView( $this->_blogInfo );                $this->_view->setErrorMessage( $this->_locale->tr("error_resources_disabled"));                $this->setCommonData();            	return false;							}		        	// fetch the information coming from the resource        	$this->_description = Textfilter::filterAllHTML($this->_request->getValue( "resourceDescription" ));            $this->_albumId     = $this->_request->getValue( "albumId" );            $this->_resource    = $this->_request->getValue( "resourceFile" );            $this->_destination = $this->_request->getValue( "destination" );			            // check if there is any file uploaded            $files = HttpVars::getFiles();			// we probably need to rearrange the $files array a bit better...			$this->_files = Array();			foreach( $files as $file ) {				if( $file["error"] == 0 && $file["size"] > 0 && $file["name"] != "" ) {					$this->_files[] = $file;				}			}		        	// let the gallery library do its work...        	$resources = new GalleryResources();						if( $this->_destView == "resourceList" ) {				$this->_view = new AdminSimpleResourcesListView( $this->_blogInfo, Array( "albumId" => $this->_albumId ));				$this->_view->setValue( "destination", $this->_destination );			}			elseif ($this->_destView == "userPictureSelect" ) {				$this->_view = new AdminUserPictureSelectView( $this->_blogInfo, Array( "albumId" => 0 ));				$this->_view->setValue( "destination", $this->_destination );			}			else				$this->_view = new AdminResourcesListView( $this->_blogInfo, Array( "albumId" => $this->_albumId ));						$successMessage = "";			$errorMessage = "";						foreach( $this->_files as $file ) {				// create a new FileUpload object based on the file				$upload = new FileUpload( $file );				// add the resource to the db				$this->notifyEvent( EVENT_PRE_RESOURCE_ADD, Array( "upload" => &$upload ));				$res = $resources->addResource( $this->_blogInfo->getId(), $this->_albumId,												$this->_description, $upload );				// check if everything went fine and if not, show an error message				if( $res > 0 ) {					$successMessage .= $this->_locale->pr("resource_added_ok", $file["name"])."<br/>";					// try to fetch the resource so that we can send it in the event					$resource = $resources->getResource( $res, $this->_blogInfo->getId());					$this->notifyEvent( EVENT_POST_RESOURCE_ADD, Array( "resource" => &$resource ));								}				else {					if( $res == GALLERY_ERROR_RESOURCE_FORBIDDEN_EXTENSION ) 						$errorMessage .= $this->_locale->pr("error_resource_forbidden_extension", $file["name"])."<br/>";					elseif( $res == GALLERY_ERROR_RESOURCE_NOT_WHITELISTED_EXTENSION ) 							$errorMessage .= $this->_locale->pr("error_resource_not_whitelisted_extension", $file["name"])."<br/>";					elseif( $res == GALLERY_ERROR_RESOURCE_TOO_BIG )						$errorMessage .= $this->_locale->pr("error_resource_too_big", $file["name"])."<br/>";					elseif( $res == GALLERY_ERROR_UPLOADS_NOT_ENABLED )						$errorMessage .= $this->_locale->tr("error_uploads_disabled" )."<br/>";					elseif( $res == GALLERY_ERROR_QUOTA_EXCEEDED )						$errorMessage .= $this->_locale->tr( "error_quota_exceeded" )."<br/>";					else						$errorMessage .= $this->_locale->pr("error_adding_resource", $file["name"])."<br/>";				}			}						// clear the cache no matter what happened... we should only clear it if there was at least one			// file uploaded but this way is not that bad after all...			CacheControl::resetBlogCache( $this->_blogInfo->getId(), false );						if( $successMessage != "" ) $this->_view->setSuccessMessage( $successMessage );			if( $errorMessage != "" ) $this->_view->setErrorMessage( $errorMessage );            $this->setCommonData();			            return true;        }    }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -