Source for file _filetype.class.php
Documentation is available at _filetype.class.php
* This file implements the file type class.
* This file is part of the evoCore framework - {@link http://evocore.net/}
* See also {@link http://sourceforge.net/projects/evocms/}.
* @copyright (c)2003-2006 by Francois PLANQUE - {@link http://fplanque.net/}
* Parts of this file are copyright (c)2005-2006 by PROGIDISTRI - {@link http://progidistri.com/}.
* {@internal License choice
* - If you have received this file as part of a package, please find the license.txt file in
* the same folder or the closest folder above for complete license terms.
* - If you have received this file individually (e-g: from http://cvs.sourceforge.net/viewcvs.py/evocms/)
* then you must choose one of the following licenses before using the file:
* - GNU General Public License 2 (GPL) - http://www.opensource.org/licenses/gpl-license.php
* - Mozilla Public License 1.1 (MPL) - http://www.opensource.org/licenses/mozilla1.1.php
* {@internal Open Source relicensing agreement:
* PROGIDISTRI S.A.S. grants Francois PLANQUE the right to license
* PROGIDISTRI S.A.S.'s contributions to this file and the b2evolution project
* under any OSI approved OSS license (http://www.opensource.org/licenses/).
* {@internal Below is a list of authors who have contributed to design/coding of this file: }}
* @author fplanque: Francois PLANQUE.
* @author mbruneau: Marc BRUNEAU / PROGIDISTRI
* @version $Id: _filetype.class.php,v 1.3.4.1 2006/10/06 21:25:57 blueyed Exp $
if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );
require_once dirname(__FILE__
).
'/../dataobjects/_dataobject.class.php';
* @param table Database row
// Call parent constructor:
parent::DataObject( 'T_filetypes', 'ftyp_', 'ftyp_ID' );
$this->delete_restrictions =
array(
$this->delete_cascades =
array(
$this->ID =
$db_row->ftyp_ID ;
$this->name =
$db_row->ftyp_name ;
$this->mimetype =
$db_row->ftyp_mimetype ;
$this->icon =
$db_row->ftyp_icon ;
$this->viewtype =
$db_row->ftyp_viewtype ;
$this->allowed =
$db_row->ftyp_allowed ;
{ // Create a new filetype:
$this->set( 'viewtype', 'browser' );
* Load data from Request form fields.
* @return boolean true if loaded data seems valid.
global $Request, $force_upload_forbiddenext;
if( $Request->param_string_not_empty( 'ftyp_extensions', T_('Please enter file extensions separated by space.') ) )
{ // Check if estensions has a valid format
$Request->params['ftyp_extensions'] =
strtolower( trim( $Request->params['ftyp_extensions'] ) );
$reg_exp =
'/^[a-z0-9]+( [a-z0-9]+)*$/';
if( !preg_match( $reg_exp, $Request->params['ftyp_extensions'], $res ) )
{ // Extensiosn has an invalid format
$Request->param_error( 'ftyp_extensions', T_( 'Invalid file extensions format.' ) );
$this->set_from_Request( 'extensions' );
$Request->param_string_not_empty( 'ftyp_name', T_('Please enter a name.') );
$this->set_from_Request( 'name' );
$Request->param_string_not_empty( 'ftyp_mimetype', T_('Please enter a mime type.') );
$this->set_from_Request( 'mimetype' );
// Icon for the mime type
if( $Request->param( 'ftyp_icon', 'string', '' ) )
$Request->param_isFilename( 'ftyp_icon', T_('Please enter a file name.') );
$this->set_from_Request( 'icon' );
$Request->param( 'ftyp_viewtype', 'string' );
$this->set_from_Request( 'viewtype' );
// Allowed to upload theses extensions
$Request->param( 'ftyp_allowed', 'integer', '0' );
if( $Request->params['ftyp_allowed'] )
// Check if the extension is in the array of the not allowed extensions (_advanced.php)
$extensions =
explode ( ' ', $Request->params['ftyp_extensions'] );
foreach($extensions as $extension)
if( in_array( $extension, $force_upload_forbiddenext ) )
{ // this extension is not allowed
$Request->params['ftyp_allowed'] =
0;
$Request->params['ftyp_allowed'];
$this->set_from_Request( 'allowed' );
return ! $Request->validation_errors();
* By default, all values will be considered strings
* @param string parameter name
* @param mixed parameter value
function set( $parname, $parvalue )
$this->set_param( $parname, 'string', $parvalue );
* Return the img html code of the icon
return '<img src="'.
$rsc_url.
'icons/fileicons/'.
$icon.
'" alt="" title="'.
$this->dget('name', 'htmlattr').
'" />';