1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-21 21:21:54 +02:00

Media Manager work..

This commit is contained in:
CaMer0n 2009-11-14 04:13:11 +00:00
parent 578f45f0a7
commit 04b264fd07
13 changed files with 167 additions and 38 deletions

View File

@ -9,8 +9,8 @@
* Image Administration Area
*
* $Source: /cvs_backup/e107_0.8/e107_admin/image.php,v $
* $Revision: 1.28 $
* $Date: 2009-11-08 13:21:56 $
* $Revision: 1.29 $
* $Date: 2009-11-14 04:13:10 $
* $Author: e107coders $
*
*/
@ -75,12 +75,98 @@ class media_admin extends e_admin_dispatcher
$var['editor']['text'] = "Image Manipulation (future release)";
$var['editor']['link'] = e_SELF."?editor";*/
protected $mimePaths = array(
"text" => 'files',
'multipart' => 'files',
'application' => 'files',
'audio' => 'audio',
'image' => 'images',
'video' => 'video',
'other' => 'files'
);
protected $adminMenuAliases = array(
'main/edit' => 'main/list'
);
protected $menuTitle = LAN_MEDIAMANAGER;
function init()
{
$this->observeUploaded();
}
function observeUploaded()
{
$sql = e107::getDb();
$mes = e107::getMessage();
if(!varset($_POST['uploadfiles']) && !varset($_POST['etrigger_submit']))
{
return;
}
$pref['upload_storagetype'] = "1";
require_once(e_HANDLER."upload_handler.php"); //TODO - still not a class!
$uploaded = process_uploaded_files(e_MEDIA.'temp/');
foreach($uploaded as $upload)
{
$oldpath = 'temp/'.$upload['name'];
$newpath =$this->getPath($upload['type']).'/'.$upload['name'];
$insert = array(
'media_type' => $upload['type'],
'media_name' => $upload['name'],
'media_description' => '',
'media_url' => "{e_MEDIA}".$newpath,
'media_datestamp' => time(),
'media_size' => $upload['size'],
'media_usedby' => '',
'media_tags' => '',
'media_author' => USERID
);
// Temporary workaround for class limitation.
/*
* We need to process the data before it's saved to the DB.
* When the upload is done with ajax, we need to prepopulate the form with the data above.
*/
if(rename(e_MEDIA.$oldpath, e_MEDIA.$newpath))
{
if($sql->db_Insert('core_media',$insert))
{
$mes->add("Added ".$upload['name']." to DB", E_MESSAGE_SUCCESS);
}
}
}
$message .= print_a($uploaded,TRUE);
$mes->add($message, E_MESSAGE_DEBUG);
}
function onDelete() // call when 'delete' is executed. - delete the file with the db record (optional pref)
{
}
function getPath($type)
{
list($pmime,$tmp) = explode('/',$type);
$dir = $this->mimePaths[$pmime]."/".date("Y-m");
if(!is_dir(e_MEDIA.$dir))
{
mkdir(e_MEDIA.$dir,0755);
}
return $dir;
}
}
@ -91,41 +177,64 @@ class media_admin_ui extends e_admin_ui
protected $pluginName = 'core';
protected $table = "core_media";
protected $listQry = "SELECT * FROM #core_media"; // without any Order or Limit.
// protected $listQry = "SELECT * FROM #core_media"; // without any Order or Limit.
// //protected $editQry = "SELECT * FROM #comments WHERE comment_id = {ID}";
protected $tableJoin = array(
'u.user' => array('leftField' => 'media_author', 'rightField' => 'user_id', 'fields' => 'user_id,user_loginname,user_name')
);
protected $pid = "media_id";
protected $perPage = 10;
protected $batchDelete = true;
//TODO - finish 'user' type, set 'data' to all editable fields, set 'noedit' for all non-editable fields
protected $fields = array(
/*
* We need a column with a preview that is generated from the path of another field.
* ie. the preview column should show a thumbnail which is generated from the media_url column.
* It needs to also take into consideration the type of media (image, video etc) which comes from another field.
*/
protected $fields = array(
'checkboxes' => array('title'=> '', 'type' => null, 'data'=> null, 'width' =>'5%', 'forced'=> TRUE, 'thclass'=>'center', 'class'=>'center'),
'media_id' => array('title'=> LAN_ID, 'type' => 'int', 'data'=> 'int', 'width' =>'5%', 'forced'=> TRUE),
'media_preview' => array('title'=> "Preview", 'type' => null, 'data'=> null, 'width' => '10%'), // Generate on the fly.
'media_upload' => array('title'=> "Upload File", 'type' => 'upload', 'data'=> null, 'readParm' => 'hidden', 'width' => '10%'), // Generate on the fly.
'media_title' => array('title'=> LAN_TITLE, 'type' => 'text', 'data'=> 'str', 'width' => '5%'),
'media_id' => array('title'=> LAN_ID, 'type' => 'int', 'data'=> 'int', 'width' =>'5%', 'forced'=> TRUE),
'media_url' => array('title'=> LAN_URL, 'type' => 'image', 'data'=> 'str', 'thclass' => 'center', 'class'=>'center', 'filter' => true, 'batch' => true, 'width' => 'auto'),
// 'media_preview' => array('title'=> "Preview", 'type' => 'image', 'data'=> null, 'width' => '10%'),
'media_upload' => array('title'=> "Upload File", 'type' => 'upload', 'data'=> null, 'readParm' => 'hidden', 'width' => '10%'),
'media_name' => array('title'=> LAN_TITLE, 'type' => 'text', 'data'=> 'str', 'width' => '5%'),
'media_caption' => array('title'=> "Caption", 'type' => 'text', 'data'=> 'str', 'width' => '5%'),
'media_description' => array('title'=> LAN_DESCRIPTION, 'type' => 'textarea', 'data'=> 'str', 'width' => 'auto', 'thclass' => 'left first'), // Display name
'media_category' => array('title'=> LAN_CATEGORY, 'type' => 'int', 'data'=> 'int', 'width' => '30%', 'readParms' => 'expand=...&truncate=50&bb=1'), // Display name
'media_datestamp' => array('title'=> LAN_DATESTAMP, 'type' => 'datestamp', 'data'=> 'int', 'width' => 'auto'), // User date
'media_url' => array('title'=> LAN_URL, 'type' => 'url', 'data'=> 'str', 'thclass' => 'center', 'class'=>'center', 'filter' => true, 'batch' => true, 'width' => 'auto'), // Photo
'media_userclass' => array('title'=> LAN_USERCLASS, 'type' => 'userclass', 'data'=> 'str', 'width' => '10%', 'thclass' => 'center' ), // Real name (no real vetting)
'media_tags' => array('title'=> "Tags/Keywords", 'type' => 'text', 'data'=> 'str', 'width' => '10%', 'filter'=>TRUE,'batch'=>TRUE ), // No real vetting
'media_description' => array('title'=> LAN_DESCRIPTION, 'type' => 'textarea', 'data'=> 'str', 'width' => 'auto', 'thclass' => 'left first'),
'media_category' => array('title'=> LAN_CATEGORY, 'type' => 'int', 'data'=> 'int', 'width' => '30%'),
'media_type' => array('title'=> "Mime Type", 'type' => 'text', 'data'=> 'str', 'width' => '30%'),
// 'media_author' => array('title'=> LAN_AUTHOR, 'type' => 'user', 'data'=> 'int'),
'media_author' => array('title'=> LAN_USER, 'type' => 'user', 'data'=> 'int', 'width' => 'auto', 'thclass' => 'center', 'class'=>'center', 'writeParms' => 'currentInit=1', 'filter' => true, 'batch' => true, 'nolist' => false ),
'media_datestamp' => array('title'=> LAN_DATESTAMP, 'type' => 'datestamp', 'data'=> 'int', 'width' => 'auto'), // User date
'media_size' => array('title'=> "Size", 'type' => 'int', 'data'=> 'int', 'width' => 'auto'),
'media_dimensions' => array('title'=> "Dimensions", 'type' => 'text', 'data'=> 'str', 'width' => 'auto'),
'media_userclass' => array('title'=> LAN_USERCLASS, 'type' => 'userclass', 'data'=> 'str', 'width' => '10%', 'thclass' => 'center' ),
'media_tags' => array('title'=> "Tags/Keywords", 'type' => 'text', 'data'=> 'str', 'width' => '10%', 'filter'=>TRUE,'batch'=>TRUE ),
'u.user_name' => array('title'=> "User name", 'type' => 'user', 'width' => 'auto', 'noedit' => true, 'readParms'=>'idField=media_author&link=1'), // User name
'u.user_loginname' => array('title'=> "User login", 'type' => 'user', 'width' => 'auto', 'noedit' => true, 'readParms'=>'idField=media_author&link=1'), // User login name
'options' => array('title'=> LAN_OPTIONS, 'type' => null, 'data'=> null, 'forced'=>TRUE, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center')
);
protected $fieldpref = array('checkboxes', 'media_id', 'media_thumb', 'media_title', 'media_caption', 'media_description', 'media_category', 'media_datestamp','media_userclass', 'options');
// protected $fieldpref = array('checkboxes','media_url', 'media_id', 'media_thumb', 'media_title', 'media_caption', 'media_description', 'media_category', 'media_datestamp','media_userclass', 'options');
/*
protected $prefs = array(
'pref_type' => array('title'=> 'type', 'type'=>'text'),
'pref_folder' => array('title'=> 'folder', 'type' => 'boolean'),
'pref_name' => array('title'=> 'name', 'type' => 'text')
);*/
}

View File

@ -9,8 +9,8 @@
* Core SQL
*
* $Source: /cvs_backup/e107_0.8/e107_admin/sql/core_sql.php,v $
* $Revision: 1.35 $
* $Date: 2009-11-08 13:40:23 $
* $Revision: 1.36 $
* $Date: 2009-11-14 04:13:10 $
* $Author: e107coders $
*/
@ -125,12 +125,16 @@ CREATE TABLE core (
CREATE TABLE core_media (
media_id int(10) unsigned NOT NULL auto_increment,
media_type varchar(15) NOT NULL default '',
media_name varchar(255) NOT NULL default '',
media_caption varchar(255) NOT NULL default '',
media_description varchar(255) NOT NULL default '',
media_category int(10) unsigned NOT NULL default '0',
media_datestamp int(10) unsigned NOT NULL default '0',
media_author int(10) unsigned NOT NULL default '0',
media_url varchar(255) NOT NULL default '',
media_size int(20) unsigned NOT NULL default '0',
media_dimensions varchar(25) NOT NULL default '',
media_userclass varchar(255) NOT NULL default '',
media_usedby text NOT NULL,
media_tags text NOT NULL,

View File

@ -9,9 +9,9 @@
* e107 Main
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/e107_class.php,v $
* $Revision: 1.67 $
* $Date: 2009-11-12 16:47:36 $
* $Author: secretr $
* $Revision: 1.68 $
* $Date: 2009-11-14 04:13:10 $
* $Author: e107coders $
*/
if (!defined('e107_INIT')) { exit; }
@ -1154,7 +1154,9 @@ class e107
{
global $DOWNLOADS_DIRECTORY, $ADMIN_DIRECTORY, $IMAGES_DIRECTORY, $THEMES_DIRECTORY, $PLUGINS_DIRECTORY,
$FILES_DIRECTORY, $HANDLERS_DIRECTORY, $LANGUAGES_DIRECTORY, $HELP_DIRECTORY, $CACHE_DIRECTORY,
$NEWSIMAGES_DIRECTORY, $CUSTIMAGES_DIRECTORY, $UPLOADS_DIRECTORY,$_E107;
$UPLOADS_DIRECTORY,$_E107, $MEDIA_DIRECTORY;
// global $NEWSIMAGES_DIRECTORY, $CUSTIMAGES_DIRECTORY;
$path = ""; $i = 0;
@ -1210,6 +1212,7 @@ class e107
define("e_HANDLER", e_BASE.$HANDLERS_DIRECTORY);
define("e_LANGUAGEDIR", e_BASE.$LANGUAGES_DIRECTORY);
define("e_DOCS", e_BASE.$HELP_DIRECTORY);
define("e_MEDIA", e_BASE.$MEDIA_DIRECTORY);
//
// HTTP absolute paths
//
@ -1220,6 +1223,7 @@ class e107
define("e_FILE_ABS", e_HTTP.$FILES_DIRECTORY);
define("e_HANDLER_ABS", e_HTTP.$HANDLERS_DIRECTORY);
define("e_LANGUAGEDIR_ABS", e_HTTP.$LANGUAGES_DIRECTORY);
define("e_MEDIA_ABS", e_HTTP.$MEDIA_DIRECTORY);
if(isset($_SERVER['DOCUMENT_ROOT']))
{
@ -1238,9 +1242,10 @@ class e107
}
else
{
define("e_CACHE", e_BASE.$FILES_DIRECTORY."cache/");
define("e_CACHE", e_MEDIA."cache/");
}
/*
if($NEWSIMAGES_DIRECTORY)
{
define("e_NEWSIMAGE", e_BASE.$NEWSIMAGES_DIRECTORY);
@ -1260,7 +1265,7 @@ class e107
{
define("e_CUSTIMAGE", e_IMAGE."custom/");
}
*/
if ($DOWNLOADS_DIRECTORY{0} == "/")
{
define("e_DOWNLOAD", $DOWNLOADS_DIRECTORY);

View File

@ -9,9 +9,9 @@
* Text processing and parsing functions
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/e_parse_class.php,v $
* $Revision: 1.79 $
* $Date: 2009-11-12 21:41:34 $
* $Author: marj_nl_fr $
* $Revision: 1.80 $
* $Date: 2009-11-14 04:13:10 $
* $Author: e107coders $
*
*/
if (!defined('e107_INIT')) { exit(); }
@ -1503,7 +1503,8 @@ class e_parse
$e107->getFolder('files'),
$e107->getFolder('themes'),
// $e107->getFolder('downloads'),
$e107->getFolder('handlers')
$e107->getFolder('handlers'),
$e107->getFolder('media')
);
switch ($mode)
@ -1518,7 +1519,8 @@ class e_parse
e_FILE_ABS,
e_THEME_ABS,
// e_DOWNLOAD_ABS, //impossible when download is done via php.
e_HANDLER_ABS
e_HANDLER_ABS,
e_MEDIA_ABS
);
break;
@ -1532,7 +1534,8 @@ class e_parse
SITEURL.$e107->getFolder('files'),
SITEURL.$e107->getFolder('themes'),
// SITEURL.$e107->getFolder('downloads'),
SITEURL.$e107->getFolder('handlers')
SITEURL.$e107->getFolder('handlers'),
SITEURL.$e107->getFolder('media')
);
break;
}
@ -1545,7 +1548,9 @@ class e_parse
"{e_FILE}",
"{e_THEME}",
//,"{e_DOWNLOAD}"
"{e_HANDLER}");
"{e_HANDLER}",
"{e_MEDIA}"
);
if (ADMIN)
{

View File

@ -9,9 +9,9 @@
* Form Handler
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
* $Revision: 1.79 $
* $Date: 2009-11-13 14:45:00 $
* $Author: secretr $
* $Revision: 1.80 $
* $Date: 2009-11-14 04:13:10 $
* $Author: e107coders $
*
*/
@ -1177,6 +1177,8 @@ class e_form
function renderElement($key, $value, $attributes)
{
$parms = vartrue($attributes['writeParms'], array());
$tp = e107::getParser();
if(is_string($parms)) parse_str($parms, $parms);
switch($attributes['type'])
@ -1284,6 +1286,10 @@ class e_form
case 'method': // Custom Function
return call_user_func_array(array($this, $key), array($value, 'write', $parms));
break;
case 'upload':
return $tp->parseTemplate("{UPLOADFILE=".e_UPLOAD."}");
break;
default:
return $value;

View File

@ -9,8 +9,8 @@
* File Upload Handler
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/upload_handler.php,v $
* $Revision: 1.23 $
* $Date: 2009-11-07 02:10:34 $
* $Revision: 1.24 $
* $Date: 2009-11-14 04:13:11 $
* $Author: e107coders $
*/
@ -24,7 +24,7 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE."/lan_upload_handler.php");
//define("UH_DEBUG",TRUE);
define("UH_DEBUG", FALSE);
define('e_UPLOAD_TEMP_DIR', e_FILE.'temp/'); // Temporary directory
define('e_UPLOAD_TEMP_DIR', e_MEDIA.'temp/'); // Temporary directory
define('e_READ_FILETYPES', 'filetypes.xml'); // Upload permissions
define('e_SAVE_FILETYPES', 'filetypes_.xml');

0
e107_media/cache/index.html vendored Normal file
View File

View File

View File

View File

0
e107_media/index.html Normal file
View File

View File

View File