2006-12-02 04:36:16 +00:00
< ? php
/*
2008-12-10 16:59:19 +00:00
* e107 website system
*
2009-11-18 01:06:08 +00:00
* Copyright ( C ) 2008 - 2009 e107 Inc ( e107 . org )
2008-12-10 16:59:19 +00:00
* Released under the terms and conditions of the
* GNU General Public License ( http :// www . gnu . org / licenses / gpl . txt )
*
* Image Administration Area
*
* $Source : / cvs_backup / e107_0 . 8 / e107_admin / image . php , v $
2009-11-18 10:16:50 +00:00
* $Revision : 1.36 $
* $Date : 2009 - 11 - 18 10 : 16 : 50 $
2009-11-18 01:06:08 +00:00
* $Author : e107coders $
2008-12-10 16:59:19 +00:00
*
2006-12-02 04:36:16 +00:00
*/
require_once ( " ../class2.php " );
2008-12-29 15:23:06 +00:00
if ( ! getperms ( " A " ))
{
2008-12-10 16:59:19 +00:00
header ( " location: " . e_HTTP . " index.php " );
2006-12-02 04:36:16 +00:00
exit ;
}
2008-12-10 16:59:19 +00:00
2009-11-07 11:20:34 +00:00
/*
* CLOSE - GO TO MAIN SCREEN
*/
if ( isset ( $_POST [ 'submit_cancel_show' ]))
{
header ( 'Location: ' . e_SELF );
exit ();
}
2009-08-28 16:11:02 +00:00
include_lan ( e_LANGUAGEDIR . e_LANGUAGE . '/admin/lan_' . e_PAGE );
2006-12-02 04:36:16 +00:00
$e_sub_cat = 'image' ;
2008-12-10 16:59:19 +00:00
2009-11-07 11:20:34 +00:00
// require_once("auth.php");
// require_once(e_HANDLER."form_handler.php");
2006-12-02 04:36:16 +00:00
require_once ( e_HANDLER . " userclass_class.php " );
2008-12-11 22:09:11 +00:00
require_once ( e_HANDLER . " message_handler.php " );
2009-11-07 11:20:34 +00:00
// $frm = new e_form(); //new form handler
2008-12-11 22:09:11 +00:00
$emessage = & eMessage :: getInstance ();
2006-12-02 04:36:16 +00:00
2009-11-07 11:20:34 +00:00
class media_admin extends e_admin_dispatcher
2008-12-05 22:01:25 +00:00
{
2009-11-07 11:20:34 +00:00
protected $modes = array (
'main' => array (
'controller' => 'media_admin_ui' ,
'path' => null ,
2009-11-18 07:16:51 +00:00
'ui' => 'media_form_ui' ,
2009-11-07 11:20:34 +00:00
'uipath' => null
2009-11-18 07:16:51 +00:00
),
'cat' => array (
'controller' => 'faq_cat_ui' ,
'path' => null ,
'ui' => 'faq_cat_form_ui' ,
'uipath' => null
)
2009-11-07 11:20:34 +00:00
);
protected $adminMenu = array (
'main/list' => array ( 'caption' => 'Media Library' , 'perm' => 'A' ),
'main/create' => array ( 'caption' => " Add New Media " , 'perm' => 'A' ),
2009-11-18 07:16:51 +00:00
'cat/list' => array ( 'caption' => 'Media Categories' , 'perm' => 'A' ),
// 'cat/create' => array('caption'=> "Create Category", 'perm' => 'A'),
2009-11-07 11:20:34 +00:00
'main/icons' => array ( 'caption' => IMALAN_71 , 'perm' => 'A' ),
'main/settings' => array ( 'caption' => LAN_PREFS , 'perm' => 'A' ),
'main/avatars' => array ( 'caption' => IMALAN_23 , 'perm' => 'A' )
);
/*
$var [ 'main' ][ 'text' ] = IMALAN_7 ;
$var [ 'main' ][ 'link' ] = e_SELF ;
$var [ 'icons' ][ 'text' ] = IMALAN_71 ;
$var [ 'icons' ][ 'link' ] = e_SELF . " ?icons " ;
$var [ 'avatars' ][ 'text' ] = IMALAN_23 ;
$var [ 'avatars' ][ 'link' ] = e_SELF . " ?avatars " ;
$var [ 'editor' ][ 'text' ] = " Image Manipulation (future release) " ;
$var [ 'editor' ][ 'link' ] = e_SELF . " ?editor " ; */
2009-11-14 04:13:11 +00:00
2009-11-18 07:16:51 +00:00
2009-11-07 11:20:34 +00:00
protected $adminMenuAliases = array (
'main/edit' => 'main/list'
);
protected $menuTitle = LAN_MEDIAMANAGER ;
2009-11-14 04:13:11 +00:00
2009-11-07 11:20:34 +00:00
}
2009-11-18 07:16:51 +00:00
class faq_cat_ui extends e_admin_ui
{
protected $pluginTitle = 'Media Categories' ;
protected $pluginName = 'core' ;
protected $table = " core_media_cat " ;
protected $pid = " media_cat_id " ;
protected $perPage = 0 ; //no limit
// protected $listQry = "SELECT * FROM #faq_info"; // without any Order or Limit.
// protected $editQry = "SELECT * FROM #faq_info WHERE faq_info_id = {ID}";
protected $fields = array (
'checkboxes' => array ( 'title' => '' , 'type' => null , 'width' => '5%' , 'forced' => TRUE , 'thclass' => 'center' , 'class' => 'center' ),
'media_cat_id' => array ( 'title' => LAN_ID , 'type' => 'number' , 'width' => '5%' , 'forced' => TRUE , 'readonly' => TRUE ),
'media_cat_nick' => array ( 'title' => " Nickname " , 'type' => 'text' , 'width' => 'auto' , 'thclass' => 'left' , 'readonly' => TRUE ),
'media_cat_title' => array ( 'title' => LAN_TITLE , 'type' => 'text' , 'width' => 'auto' , 'thclass' => 'left' , 'readonly' => TRUE ),
'media_cat_diz' => array ( 'title' => LAN_DESCRIPTION , 'type' => 'bbarea' , 'width' => '30%' , 'readParms' => 'expand=...&truncate=50&bb=1' , 'readonly' => TRUE ), // Display name
'media_cat_class' => array ( 'title' => LAN_VISIBILITY , 'type' => 'userclass' , 'width' => 'auto' , 'data' => 'int' ),
'options' => array ( 'title' => LAN_OPTIONS , 'type' => null , 'width' => '10%' , 'forced' => TRUE , 'thclass' => 'center last' , 'class' => 'center' )
);
/**
* Get FAQ Category data
*
* @ param integer $id [ optional ] get category title , false - return whole array
* @ param mixed $default [ optional ] default value if not found ( default 'n/a' )
* @ return
*/
function getFaqCategoryTree ( $id = false , $default = 'n/a' )
{
// TODO get faq category tree
}
}
class faq_cat_form_ui extends e_admin_form_ui
{
public function faq_info_parent ( $curVal , $mode )
{
// TODO - catlist combo without current cat ID in write mode, parents only for batch/filter
// Get UI instance
$controller = $this -> getController ();
switch ( $mode )
{
case 'read' :
return e107 :: getParser () -> toHTML ( $controller -> getFaqCategoryTree ( $curVal ), false , 'TITLE' );
break ;
case 'write' :
return $this -> selectbox ( 'faq_info_parent' , $controller -> getFaqCategoryTree (), $curVal );
break ;
case 'filter' :
case 'batch' :
return $controller -> getFaqCategoryTree ();
break ;
}
}
}
class media_form_ui extends e_admin_form_ui
{
private $cats = array ();
function init ()
{
$sql = e107 :: getDb ();
// $sql->db_Select_gen("SELECT media_cat_title, media_title_nick FROM #core_media as m LEFT JOIN #core_media_cat as c ON m.media_category = c.media_cat_nick GROUP BY m.media_category");
$sql -> db_Select_gen ( " SELECT media_cat_title, media_cat_nick FROM #core_media_cat " );
while ( $row = $sql -> db_Fetch ())
{
$cat = $row [ 'media_cat_nick' ];
$this -> cats [ $cat ] = $row [ 'media_cat_title' ];
}
asort ( $this -> cats );
}
function media_category ( $curVal , $mode ) // not really necessary since we can use 'dropdown' - but just an example of a custom function.
{
if ( $mode == 'read' )
{
return $this -> cats [ $curVal ] . ' (custom!)' ;
}
if ( $mode == 'batch' ) // Custom Batch List for release_type
{
return $this -> cats ;
}
if ( $mode == 'filter' ) // Custom Filter List for release_type
{
return $this -> cats ;
}
$text = " <select class='tbox>' name='media_category' > " ;
foreach ( $this -> cats as $key => $val )
{
$selected = ( $curVal == $key ) ? " selected='selected' " : " " ;
$text .= " <option value=' { $key } ' { $selected } > " . $val . " </option> \n " ;
}
$text .= " </select> " ;
return $text ;
}
}
2009-11-07 11:20:34 +00:00
class media_admin_ui extends e_admin_ui
{
protected $pluginTitle = LAN_MEDIAMANAGER ;
protected $pluginName = 'core' ;
protected $table = " core_media " ;
2009-11-14 04:13:11 +00:00
// protected $listQry = "SELECT * FROM #core_media"; // without any Order or Limit.
2009-11-07 11:20:34 +00:00
// //protected $editQry = "SELECT * FROM #comments WHERE comment_id = {ID}";
2009-11-18 07:16:51 +00:00
// protected $tableJoin = array(
// 'u.user' => array('leftField' => 'media_author', 'rightField' => 'user_id', 'fields' => 'user_id,user_loginname,user_name')
// );
2009-11-14 04:13:11 +00:00
2009-11-07 11:20:34 +00:00
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
2009-11-14 04:13:11 +00:00
/*
* 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 (
2009-11-07 11:20:34 +00:00
'checkboxes' => array ( 'title' => '' , 'type' => null , 'data' => null , 'width' => '5%' , 'forced' => TRUE , 'thclass' => 'center' , 'class' => 'center' ),
2009-11-14 04:13:11 +00:00
'media_id' => array ( 'title' => LAN_ID , 'type' => 'int' , 'data' => 'int' , 'width' => '5%' , 'forced' => TRUE ),
2009-11-18 07:16:51 +00:00
'media_url' => array ( 'title' => 'Preview' , 'type' => 'image' , 'data' => 'str' , 'thclass' => 'center' , 'class' => 'center' , 'readParms' => 'thumb=100' , 'width' => 'auto' , 'readonly' => TRUE ),
2009-11-14 04:13:11 +00:00
// '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%' ),
2009-11-07 11:20:34 +00:00
'media_caption' => array ( 'title' => " Caption " , 'type' => 'text' , 'data' => 'str' , 'width' => '5%' ),
2009-11-14 04:13:11 +00:00
'media_description' => array ( 'title' => LAN_DESCRIPTION , 'type' => 'textarea' , 'data' => 'str' , 'width' => 'auto' , 'thclass' => 'left first' ),
2009-11-18 07:16:51 +00:00
'media_category' => array ( 'title' => LAN_CATEGORY , 'type' => 'method' , 'data' => 'str' , 'width' => '30%' , 'filter' => true , 'batch' => true ,),
2009-11-18 09:53:39 +00:00
'media_type' => array ( 'title' => " Mime Type " , 'type' => 'text' , 'data' => 'str' , 'width' => '5%' , 'noedit' => TRUE ),
2009-11-14 04:13:11 +00:00
// 'media_author' => array('title'=> LAN_AUTHOR, 'type' => 'user', 'data'=> 'int'),
2009-11-18 09:53:39 +00:00
'media_author' => array ( 'title' => LAN_USER , 'type' => 'user' , 'data' => 'int' , 'width' => 'auto' , 'thclass' => 'center' , 'class' => 'center' , 'filter' => true , 'batch' => true , 'noedit' => TRUE ),
'media_datestamp' => array ( 'title' => LAN_DATESTAMP , 'type' => 'datestamp' , 'data' => 'int' , 'width' => 'auto' , 'noedit' => TRUE ), // User date
'media_size' => array ( 'title' => " Size " , 'type' => 'int' , 'data' => 'int' , 'width' => 'auto' , 'noedit' => TRUE ),
'media_dimensions' => array ( 'title' => " Dimensions " , 'type' => 'text' , 'data' => 'str' , 'width' => '5%' , 'noedit' => TRUE ),
2009-11-18 07:16:51 +00:00
'media_userclass' => array ( 'title' => LAN_USERCLASS , 'type' => 'userclass' , 'data' => 'str' , 'width' => '10%' , 'thclass' => 'center' , 'filter' => TRUE , 'batch' => TRUE ),
2009-11-14 04:13:11 +00:00
'media_tags' => array ( 'title' => " Tags/Keywords " , 'type' => 'text' , 'data' => 'str' , 'width' => '10%' , 'filter' => TRUE , 'batch' => TRUE ),
2009-11-18 07:16:51 +00:00
'media_usedby' => array ( 'title' => '' , 'type' => 'text' , 'data' => 'text' , 'width' => 'auto' , 'thclass' => 'center' , 'class' => 'center' , 'nolist' => true , 'readonly' => TRUE ),
2009-11-07 11:20:34 +00:00
'options' => array ( 'title' => LAN_OPTIONS , 'type' => null , 'data' => null , 'forced' => TRUE , 'width' => '10%' , 'thclass' => 'center last' , 'class' => 'center' )
);
2009-11-18 07:16:51 +00:00
protected $mimePaths = array (
" text " => 'files' ,
'multipart' => 'files' ,
'application' => 'files' ,
'audio' => 'audio' ,
'image' => 'images' ,
'video' => 'video' ,
'other' => 'files'
);
2009-11-14 04:13:11 +00:00
// protected $fieldpref = array('checkboxes','media_url', 'media_id', 'media_thumb', 'media_title', 'media_caption', 'media_description', 'media_category', 'media_datestamp','media_userclass', 'options');
2009-11-07 11:20:34 +00:00
2009-11-14 04:13:11 +00:00
2009-11-07 11:20:34 +00:00
/*
protected $prefs = array (
'pref_type' => array ( 'title' => 'type' , 'type' => 'text' ),
'pref_folder' => array ( 'title' => 'folder' , 'type' => 'boolean' ),
'pref_name' => array ( 'title' => 'name' , 'type' => 'text' )
); */
2009-11-18 07:16:51 +00:00
2009-11-14 04:13:11 +00:00
2009-11-15 20:24:55 +00:00
/**
* Invoked just before item create event
* @ return array
*/
2009-11-17 15:23:01 +00:00
public function beforeCreate ( $new_data )
2009-11-15 20:24:55 +00:00
{
// return data to be merged with posted model data
2009-11-18 07:16:51 +00:00
$this -> getRequest () -> setPosted ( 'media_upload' , null );
$dataFields = $this -> getModel () -> getDataFields ();
unset ( $dataFields [ 'media_upload' ]);
$this -> getModel () -> setDataFields ( $dataFields );
2009-11-18 09:53:39 +00:00
return $this -> observeUploaded ( $new_data );
2009-11-15 20:24:55 +00:00
}
/**
* Same as beforeCreate () but invoked on edit
* @ return
*/
2009-11-17 15:23:01 +00:00
public function beforeUpdate ( $new_data , $old_data , $id )
2009-11-15 20:24:55 +00:00
{
// return data to be merged with posted model data
return $this -> observeUploaded ();
}
2009-11-18 09:53:39 +00:00
function observeUploaded ( $new_data )
2009-11-15 20:24:55 +00:00
{
2009-11-18 07:16:51 +00:00
$mes = e107 :: getMessage ();
2009-11-15 20:24:55 +00:00
$pref [ 'upload_storagetype' ] = " 1 " ;
require_once ( e_HANDLER . " upload_handler.php " ); //TODO - still not a class!
2009-11-18 07:16:51 +00:00
$uploaded = process_uploaded_files ( e_MEDIA . 'temp/' ); //FIXME doesn't handle xxx.JPG (uppercase)
2009-11-15 20:24:55 +00:00
foreach ( $uploaded as $upload )
{
2009-11-18 07:16:51 +00:00
if ( vartrue ( $upload [ 'error' ]))
{
$mes -> add ( $upload [ 'message' ], E_MESSAGE_ERROR );
2009-11-18 09:53:39 +00:00
return FALSE ;
}
if ( ! $typePath = $this -> getPath ( $upload [ 'type' ]))
{
return FALSE ;
2009-11-18 07:16:51 +00:00
}
2009-11-18 09:53:39 +00:00
$oldpath = 'temp/' . $upload [ 'name' ];
$newpath = $typePath . '/' . $upload [ 'name' ];
2009-11-15 20:24:55 +00:00
2009-11-18 07:16:51 +00:00
$upload_data = array ( // not saved if 'noedit' is active.
2009-11-15 20:24:55 +00:00
'media_type' => $upload [ 'type' ],
2009-11-18 07:16:51 +00:00
'media_datestamp' => time (),
'media_url' => " { e_MEDIA} " . $newpath ,
2009-11-15 20:24:55 +00:00
'media_size' => $upload [ 'size' ],
2009-11-18 07:16:51 +00:00
'media_author' => USERID ,
'media_usedby' => '' ,
'media_tags' => ''
2009-11-15 20:24:55 +00:00
);
2009-11-18 09:53:39 +00:00
if ( ! varset ( $new_data [ 'media_name' ]))
{
$upload_data [ 'media_name' ] = $upload [ 'name' ];
}
2009-11-15 20:24:55 +00:00
// only one upload? Not sure what's the idea here
// we are currently creating one media item
2009-11-18 10:16:50 +00:00
if ( ! rename ( e_MEDIA . $oldpath , e_MEDIA . $newpath ))
{
$mes -> add ( " Couldn't move file from " . $oldpath . " to " . $newpath , E_MESSAGE_ERROR );
return FALSE ;
};
2009-11-18 07:16:51 +00:00
return $upload_data ;
2009-11-15 20:24:55 +00:00
}
2009-11-18 07:16:51 +00:00
2009-11-15 20:24:55 +00:00
}
2009-11-17 15:23:01 +00:00
function beforeDelete ( $data , $id ) // call before 'delete' is executed. - return false to prevent delete execution (e.g. some dependencies check)
2009-11-15 20:24:55 +00:00
{
return true ;
}
2009-11-17 15:23:01 +00:00
function afterDelete ( $deleted_data , $id ) // call after 'delete' is successfully executed. - delete the file with the db record (optional pref)
2009-11-15 20:24:55 +00:00
{
}
function getPath ( $type )
{
2009-11-18 07:16:51 +00:00
$mes = e107 :: getMessage ();
2009-11-15 20:24:55 +00:00
list ( $pmime , $tmp ) = explode ( '/' , $type );
2009-11-18 07:16:51 +00:00
if ( ! vartrue ( $this -> mimePaths [ $pmime ]))
{
$mes -> add ( " Couldn't detected mime-type( $type ). Upload failed. " , E_MESSAGE_ERROR );
return FALSE ;
}
2009-11-15 20:24:55 +00:00
$dir = $this -> mimePaths [ $pmime ] . " / " . date ( " Y-m " );
2009-11-18 07:16:51 +00:00
2009-11-15 20:24:55 +00:00
if ( ! is_dir ( e_MEDIA . $dir ))
{
2009-11-18 10:16:50 +00:00
if ( ! mkdir ( e_MEDIA . $dir , 0755 ))
{
$mes -> add ( " Couldn't create folder ( $dir ). " , E_MESSAGE_ERROR );
return FALSE ;
};
2009-11-15 20:24:55 +00:00
}
return $dir ;
}
2009-11-07 11:20:34 +00:00
2006-12-02 04:36:16 +00:00
}
2009-11-07 11:20:34 +00:00
new media_admin ();
require_once ( e_ADMIN . " auth.php " );
e107 :: getAdminUI () -> runPage ();
// -----------------------------------------------------------------------
2009-07-16 08:15:35 +00:00
$action = e_QUERY ;
if ( isset ( $_POST [ 'delpref' ]) || ( isset ( $_POST [ 'delpref_checked' ]) && isset ( $_POST [ 'delpref2' ])))
{
del_pref_val ();
}
2009-11-08 13:22:02 +00:00
if ( varset ( $_GET [ 'action' ]) == " icons " )
2009-07-16 08:15:35 +00:00
{
icon_editor ();
}
2009-11-08 13:22:02 +00:00
if ( varset ( $_GET [ 'action' ]) == " avatars " )
2009-07-16 08:15:35 +00:00
{
show_avatars ();
}
2009-11-08 13:22:02 +00:00
if ( varset ( $_GET [ 'action' ]) == 'settings' )
2009-07-16 08:15:35 +00:00
{
main_config ();
}
2008-12-10 16:59:19 +00:00
/*
* DELETE CHECKED AVATARS - SHOW AVATAR SCREEN
*/
2009-07-16 08:15:35 +00:00
2008-12-10 16:59:19 +00:00
if ( isset ( $_POST [ 'submit_show_delete_multi' ]))
{
if ( varset ( $_POST [ 'multiaction' ]))
{
$tmp = array (); $tmp1 = array (); $message = array ();
foreach ( $_POST [ 'multiaction' ] as $todel )
{
$todel = explode ( '#' , $todel );
$todel [ 1 ] = basename ( $todel [ 1 ]);
$image_type = 2 ;
if ( strpos ( $todel [ 1 ], '-upload-' ) === 0 )
{
$image_type = 1 ;
$todel [ 1 ] = substr ( $todel [ 1 ], strlen ( '-upload-' ));
}
//delete it from server
2009-11-07 02:10:52 +00:00
@ unlink ( e_UPLOAD . " avatars/ " . $todel [ 1 ]);
2008-12-10 16:59:19 +00:00
//admin log & sysmessage
$message [] = $todel [ 1 ];
//It's owned by an user
if ( $todel [ 0 ])
{
switch ( $image_type )
{
case 1 : //avatar
$tmp [] = intval ( $todel [ 0 ]);
break ;
case 2 : //photo
$tmp1 [] = intval ( $todel [ 0 ]);
break ;
}
}
}
//Reset all deleted user avatars with one query
if ( ! empty ( $tmp ))
{
$sql -> db_Update ( " user " , " user_image='' WHERE user_id IN ( " . implode ( ',' , $tmp ) . " ) " );
}
//Reset all deleted user photos with one query
if ( ! empty ( $tmp1 ))
{
$sql -> db_Update ( " user " , " user_sess='' WHERE user_id IN ( " . implode ( ',' , $tmp1 ) . " ) " );
}
unset ( $tmp , $tmp1 );
//Format system message
if ( ! empty ( $message ))
{
$admin_log -> log_event ( 'IMALAN_01' , implode ( '[!br!]' , $message ), E_LOG_INFORMATIVE , '' );
2008-12-11 22:09:11 +00:00
$emessage -> add ( implode ( ', ' , $message ) . ' ' . IMALAN_28 , E_MESSAGE_SUCCESS );
2008-12-10 16:59:19 +00:00
}
}
}
2008-12-05 22:01:25 +00:00
2008-12-10 16:59:19 +00:00
/*
* DELETE ALL UNUSED IMAGES - SHOW AVATAR SCREEN
*/
if ( isset ( $_POST [ 'submit_show_deleteall' ]))
2008-12-05 22:01:25 +00:00
{
2009-11-07 02:10:52 +00:00
$handle = opendir ( e_UPLOAD . " avatars/ " );
2008-12-10 16:59:19 +00:00
$dirlist = array ();
2008-12-09 15:19:03 +00:00
while ( $file = readdir ( $handle )) {
2009-11-07 02:10:52 +00:00
if ( ! is_dir ( e_UPLOAD . " avatars/ { $file } " ) && $file != '.' && $file != '..' && $file != " index.html " && $file != " null.txt " && $file != '/' && $file != 'CVS' && $file != 'Thumbs.db' ) {
2006-12-02 04:36:16 +00:00
$dirlist [] = $file ;
}
}
closedir ( $handle );
2008-12-10 16:59:19 +00:00
if ( ! empty ( $dirlist ))
2008-12-05 22:01:25 +00:00
{
2008-12-10 16:59:19 +00:00
$imgList = '' ;
$count = 0 ;
foreach ( $dirlist as $image_name )
{
$image_name = basename ( $image_name );
$image_todb = $tp -> toDB ( $image_name );
if ( ! $sql -> db_Count ( 'user' , '(*)' , " WHERE user_image='-upload- { $image_todb } ' OR user_sess=' { $image_todb } ' " )) {
2009-11-07 02:10:52 +00:00
unlink ( e_UPLOAD . " avatars/ " . $image_name );
2008-12-10 16:59:19 +00:00
$imgList .= '[!br!]' . $image_name ;
$count ++ ;
}
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
$message = $count . " " . IMALAN_26 ;
2008-12-11 22:09:11 +00:00
$emessage -> add ( $message , E_MESSAGE_SUCCESS );
2008-12-10 16:59:19 +00:00
$admin_log -> log_event ( 'IMALAN_02' , $message . $imgList , E_LOG_INFORMATIVE , '' );
unset ( $imgList );
2006-12-02 04:36:16 +00:00
}
}
2008-12-05 22:01:25 +00:00
2008-12-10 16:59:19 +00:00
/*
* DELETE ALL CHECKED BAD IMAGES - VALIDATE SCREEN
*/
if ( isset ( $_POST [ 'submit_avdelete_multi' ]))
2008-12-05 22:01:25 +00:00
{
2006-12-02 04:36:16 +00:00
require_once ( e_HANDLER . " avatar_handler.php " );
2008-12-05 22:01:25 +00:00
$avList = array ();
2008-12-10 16:59:19 +00:00
$tmp = array ();
$uids = array ();
//Sanitize
$_POST [ 'multiaction' ] = $tp -> toDB ( $_POST [ 'multiaction' ]);
//sql queries significant reduced
if ( ! empty ( $_POST [ 'multiaction' ]) && $sql -> db_Select ( " user " , 'user_id, user_name, user_image' , " user_id IN ( " . implode ( ',' , $_POST [ 'multiaction' ]) . " ) " ))
2006-12-02 04:36:16 +00:00
{
2008-12-10 16:59:19 +00:00
$search_users = $sql -> db_getList ( 'ALL' , FALSE , FALSE , 'user_id' );
foreach ( $_POST [ 'multiaction' ] as $uid )
2008-12-05 22:01:25 +00:00
{
2008-12-10 16:59:19 +00:00
if ( varsettrue ( $search_users [ $uid ]))
{
$avname = avatar ( $search_users [ $uid ][ 'user_image' ]);
if ( strpos ( $avname , " http:// " ) === FALSE )
{ // Internal file, so unlink it
@ unlink ( $avname );
}
$uids [] = $uid ;
$tmp [] = $search_users [ $uid ][ 'user_name' ];
$avList [] = $uid . ':' . $search_users [ $uid ][ 'user_name' ] . ':' . $search_users [ $uid ][ 'user_image' ];
2006-12-02 04:36:16 +00:00
}
}
2008-12-10 16:59:19 +00:00
//sql queries significant reduced
if ( ! empty ( $uids ))
{
$sql -> db_Update ( " user " , " user_image='' WHERE user_id IN ( " . implode ( ',' , $uids ) . " ) " );
}
2008-12-11 22:09:11 +00:00
$emessage -> add ( IMALAN_51 . '<strong>' . implode ( ', ' , $tmp ) . '</strong> ' . IMALAN_28 , E_MESSAGE_SUCCESS );
2008-12-10 16:59:19 +00:00
$admin_log -> log_event ( 'IMALAN_03' , implode ( '[!br!]' , $avList ), E_LOG_INFORMATIVE , '' );
2008-12-12 09:55:33 +00:00
2008-12-10 16:59:19 +00:00
unset ( $search_users );
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
unset ( $avList , $tmp , $uids );
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
/*
* UPDATE IMAGE OPTIONS - MAIN SCREEN
*/
2008-12-09 15:19:03 +00:00
if ( isset ( $_POST [ 'update_options' ]))
2008-12-05 22:01:25 +00:00
{
2008-12-10 16:59:19 +00:00
$tmp = array ();
$tmp [ 'image_post' ] = intval ( $_POST [ 'image_post' ]);
$tmp [ 'resize_method' ] = $tp -> toDB ( $_POST [ 'resize_method' ]);
$tmp [ 'im_path' ] = trim ( $tp -> toDB ( $_POST [ 'im_path' ]));
$tmp [ 'image_post_class' ] = intval ( $_POST [ 'image_post_class' ]);
$tmp [ 'image_post_disabled_method' ] = intval ( $_POST [ 'image_post_disabled_method' ]);
$tmp [ 'enable_png_image_fix' ] = intval ( $_POST [ 'enable_png_image_fix' ]);
if ( $admin_log -> logArrayDiffs ( $tmp , $pref , 'IMALAN_04' ))
2008-12-05 22:01:25 +00:00
{
2008-12-06 15:48:26 +00:00
save_prefs (); // Only save if changes
2008-12-11 22:09:11 +00:00
$emessage -> add ( IMALAN_9 , E_MESSAGE_SUCCESS );
2008-12-05 22:01:25 +00:00
}
else
{
2008-12-11 22:09:11 +00:00
$emessage -> add ( IMALAN_20 , E_MESSAGE_INFO );
2008-12-05 22:01:25 +00:00
}
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
/*
* SHOW AVATARS SCREEN
*/
2009-07-16 08:15:35 +00:00
function show_avatars ()
2008-12-05 22:01:25 +00:00
{
2009-11-07 11:20:34 +00:00
global $e107 , $pref ;
$ns = e107 :: getRender ();
$sql = e107 :: getDb ();
$frm = e107 :: getForm ();
$tp = e107 :: getParser ();
$mes = e107 :: getMessage ();
2009-07-16 08:15:35 +00:00
2009-11-07 11:20:34 +00:00
$handle = opendir ( e_UPLOAD . " avatars/ " ); //TODO replace with $fl
2008-12-10 16:59:19 +00:00
$dirlist = array ();
2008-12-09 15:19:03 +00:00
while ( $file = readdir ( $handle ))
{
if ( $file != '.' && $file != '..' && $file != " index.html " && $file != " null.txt " && $file != '/' && $file != 'CVS' && $file != 'Thumbs.db' && ! is_dir ( $file ))
2008-12-05 22:01:25 +00:00
{
2006-12-02 04:36:16 +00:00
$dirlist [] = $file ;
}
}
closedir ( $handle );
2008-12-09 15:19:03 +00:00
$text = '' ;
2006-12-02 04:36:16 +00:00
2008-12-10 16:59:19 +00:00
if ( empty ( $dirlist ))
2008-12-05 22:01:25 +00:00
{
2006-12-02 04:36:16 +00:00
$text .= IMALAN_29 ;
2008-12-09 15:19:03 +00:00
}
else
2008-12-05 22:01:25 +00:00
{
2008-12-09 17:49:59 +00:00
$text = "
2009-07-16 08:15:35 +00:00
< form method = 'post' action = '".e_SELF."?avatars' id = 'core-iamge-show-avatars-form' >
2008-12-10 16:59:19 +00:00
< fieldset id = 'core-iamge-show-avatars' >
2008-12-09 17:49:59 +00:00
" ;
2008-12-09 15:19:03 +00:00
$count = 0 ;
while ( list ( $key , $image_name ) = each ( $dirlist ))
2008-12-05 22:01:25 +00:00
{
2006-12-02 04:36:16 +00:00
$users = IMALAN_21 . " | " ;
2008-12-10 16:59:19 +00:00
$row = array ( 'user_id' => '' );
$image_pre = '' ;
2008-12-12 22:39:17 +00:00
$disabled = false ;
2008-12-10 16:59:19 +00:00
if ( $sql -> db_Select ( " user " , " * " , " user_image='-upload- " . $tp -> toDB ( $image_name ) . " ' OR user_sess=' " . $tp -> toDB ( $image_name ) . " ' " ))
2008-12-09 15:19:03 +00:00
{
$row = $sql -> db_Fetch ();
2008-12-10 16:59:19 +00:00
if ( $row [ 'user_image' ] == '-upload-' . $image_name ) $image_pre = '-upload-' ;
2008-12-12 09:55:33 +00:00
$users .= " <a href=' " . $e107 -> url -> getUrl ( 'core:user' , 'main' , 'func=profile&id=' . $row [ 'user_id' ]) . " '> { $row [ 'user_name' ] } </a> <span class='smalltext'>( " . ( $row [ 'user_sess' ] == $image_name ? IMALAN_24 : IMALAN_23 ) . " )</span> " ;
2009-07-16 08:15:35 +00:00
}
else
{
2008-12-09 15:19:03 +00:00
$users = '<span class="warning">' . IMALAN_22 . '</span>' ;
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
//directory?
2009-11-07 02:10:52 +00:00
if ( is_dir ( e_UPLOADE . " avatars/ " . $image_name ))
2008-12-10 16:59:19 +00:00
{
//File info
2009-01-09 17:25:50 +00:00
$users = " <a class='e-tooltip' href='#' title=' " . IMALAN_69 . " : { $image_name } '><img class='icon S16' src=' " . e_IMAGE_ABS . " admin_images/info_16.png' alt=' " . IMALAN_66 . " : { $image_name } ' /></a> <span class='error'> " . IMALAN_69 . " </span> " ;
2008-12-09 15:19:03 +00:00
2008-12-10 16:59:19 +00:00
//Friendly UI - click text to select a form element
$img_src = '<span class="error">' . IMALAN_70 . '</span>' ;
2008-12-12 22:39:17 +00:00
$disabled = true ;
2008-12-09 15:19:03 +00:00
}
2008-12-10 16:59:19 +00:00
else
{
//File info
2009-01-09 17:25:50 +00:00
$users = " <a class='e-tooltip' href='#' title=' " . IMALAN_66 . " : { $image_name } '><img src=' " . e_IMAGE_ABS . " admin_images/info_16.png' alt=' " . IMALAN_66 . " : { $image_name } ' /></a> " . $users ;
2008-12-10 16:59:19 +00:00
// Control over the image size (design)
2009-11-07 02:10:52 +00:00
$image_size = getimagesize ( e_UPLOAD . " avatars/ " . $image_name );
2008-12-09 15:19:03 +00:00
2008-12-10 16:59:19 +00:00
//Friendly UI - click text to select a form element
$img_src = " <label for='image-action- { $count } ' title=' " . IMALAN_56 . " '><img src=' " . e_FILE_ABS . " public/avatars/ { $image_name } ' alt=' { $image_name } ' /></label> " ;
if ( $image_size [ 0 ] > $pref [ 'im_width' ] || $image_size [ 1 ] > $pref [ 'im_height' ])
{
$img_src = " <a class='image-preview' href=' " . e_FILE_ABS . " public/avatars/ " . rawurlencode ( $image_name ) . " ' rel='external'> " . IMALAN_57 . " </a> " ;
}
}
2008-12-11 11:25:21 +00:00
2008-12-10 16:59:19 +00:00
//style attribute allowed here - server side width/height control
2008-12-11 11:25:21 +00:00
//autocheck class - used for JS selectors (see eCoreImage object)
2008-12-09 15:19:03 +00:00
$text .= "
2008-12-11 11:25:21 +00:00
< div class = 'image-box f-left center autocheck' style = 'width: ".(intval($pref[' im_width '])+40)."px; height: ".(intval($pref[' im_height '])+100)."px;' >
2008-12-09 15:19:03 +00:00
< div class = 'spacer' >
< div class = 'image-users' > { $users } </ div >
< div class = 'image-preview' > { $img_src } </ div >
2008-12-11 11:25:21 +00:00
< div class = 'image-delete' >
2008-12-12 22:39:17 +00:00
" . $frm->checkbox ('multiaction[]', " { $row [ 'user_id' ]} #{$image_pre}{$image_name}", false, array('id' => false, 'disabled' => $disabled))."
2008-12-09 15:19:03 +00:00
</ div >
2008-12-09 17:49:59 +00:00
2008-12-09 15:19:03 +00:00
</ div >
</ div >
" ;
$count ++ ;
2006-12-02 04:36:16 +00:00
}
2008-12-09 15:19:03 +00:00
$text .= "
< div class = 'spacer clear' >
2008-12-10 16:59:19 +00:00
< div class = 'buttons-bar' >
< input type = 'hidden' name = 'show_avatars' value = '1' />
2009-11-08 09:14:39 +00:00
" . $frm->admin_button ('check_all', LAN_CHECKALL, 'action'). "
" . $frm->admin_button ('uncheck_all', LAN_UNCHECKALL, 'action'). "
" . $frm->admin_button ('submit_show_delete_multi', LAN_DELCHECKED, 'delete'). "
2008-12-12 22:39:17 +00:00
" . $frm->admin_button ('submit_show_deleteall', IMALAN_25, 'delete'). "
" . $frm->admin_button ('submit_cancel_show', IMALAN_68, 'cancel'). "
2008-12-10 16:59:19 +00:00
</ div >
2008-12-09 17:49:59 +00:00
</ div >
2008-12-10 16:59:19 +00:00
</ fieldset >
2006-12-02 04:36:16 +00:00
</ form >
2008-12-09 17:49:59 +00:00
" ;
2006-12-02 04:36:16 +00:00
}
2009-11-08 13:22:02 +00:00
$ns -> tablerender ( LAN_MEDIAMANAGER . " :: " . IMALAN_18 , $mes -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
/*
* CHECK AVATARS SCREEN
*/
2008-12-09 15:19:03 +00:00
if ( isset ( $_POST [ 'check_avatar_sizes' ]))
2008-12-05 22:01:25 +00:00
{
2006-12-02 04:36:16 +00:00
// Set up to track what we've done
//
$iUserCount = 0 ;
$iAVinternal = 0 ;
$iAVexternal = 0 ;
$iAVnotfound = 0 ;
$iAVtoobig = 0 ;
require_once ( e_HANDLER . " avatar_handler.php " );
2008-12-09 15:19:03 +00:00
$text = "
< form method = 'post' action = '".e_SELF."' >
2008-12-10 16:59:19 +00:00
< fieldset id = 'core-image-check-avatar' >
2008-12-09 15:19:03 +00:00
< legend class = 'e-hideme' > " .CACLAN_3. " </ legend >
< table cellpadding = '0' cellspacing = '0' class = 'adminlist' >
2008-12-10 16:59:19 +00:00
< colgroup span = '4' >
2008-12-09 15:19:03 +00:00
< col style = 'width:10%' ></ col >
< col style = 'width:20%' ></ col >
< col style = 'width:25%' ></ col >
< col style = 'width:45%' ></ col >
</ colgroup >
< thead >
< tr >
2009-07-16 08:15:35 +00:00
< th class = 'center' > " .LAN_OPTIONS. " </ th >
2009-11-08 09:14:39 +00:00
< th class = 'center' > " .LAN_USER. " </ th >
2008-12-09 15:19:03 +00:00
< th class = 'center' > " .IMALAN_62. " </ th >
2009-11-08 09:14:39 +00:00
< th class = 'center last' > " .LAN_URL. " </ th >
2008-12-09 15:19:03 +00:00
</ tr >
</ thead >
< tbody >
" ;
2006-12-02 04:36:16 +00:00
//
// Loop through avatar field for every user
//
$iUserCount = $sql -> db_Count ( " user " );
2008-12-10 16:59:19 +00:00
$found = false ;
$allowedWidth = intval ( $pref [ 'im_width' ]);
$allowedHeight = intval ( $pref [ 'im_width' ]);
2006-12-02 04:36:16 +00:00
if ( $sql -> db_Select ( " user " , " * " , " user_image!='' " )) {
2008-12-10 16:59:19 +00:00
2008-12-09 15:19:03 +00:00
while ( $row = $sql -> db_Fetch ())
2008-12-05 22:01:25 +00:00
{
2008-12-10 16:59:19 +00:00
//Check size
$avname = avatar ( $row [ 'user_image' ]);
2008-12-09 15:19:03 +00:00
if ( strpos ( $avname , " http:// " ) !== FALSE )
2006-12-02 04:36:16 +00:00
{
$iAVexternal ++ ;
$bAVext = TRUE ;
} else {
$iAVinternal ++ ;
$bAVext = FALSE ;
}
2008-12-10 16:59:19 +00:00
2006-12-02 04:36:16 +00:00
$image_stats = getimagesize ( $avname );
$sBadImage = " " ;
2008-12-10 16:59:19 +00:00
2006-12-02 04:36:16 +00:00
if ( ! $image_stats )
{
$iAVnotfound ++ ;
// allow delete
$sBadImage = IMALAN_42 ;
2008-12-10 16:59:19 +00:00
}
else
{
2006-12-02 04:36:16 +00:00
$imageWidth = $image_stats [ 0 ];
$imageHeight = $image_stats [ 1 ];
2008-12-10 16:59:19 +00:00
if ( ( $imageHeight > $allowedHeight ) || ( $imageWidth > $allowedWidth ) )
2006-12-02 04:36:16 +00:00
{ // Too tall or too wide
$iAVtoobig ++ ;
2008-12-10 16:59:19 +00:00
if ( $imageWidth > $allowedWidth )
{
2006-12-02 04:36:16 +00:00
$sBadImage = IMALAN_40 . " ( $imageWidth ) " ;
}
2008-12-10 16:59:19 +00:00
if ( $imageHeight > $allowedHeight )
{
2006-12-02 04:36:16 +00:00
if ( strlen ( $sBadImage ))
{
$sBadImage .= " , " ;
}
$sBadImage .= IMALAN_41 . " ( $imageHeight ) " ;
}
}
}
2008-12-09 15:19:03 +00:00
2008-12-10 16:59:19 +00:00
//If not found or too large, allow delete
2006-12-02 04:36:16 +00:00
if ( strlen ( $sBadImage ))
{
2008-12-10 16:59:19 +00:00
$found = true ;
2006-12-02 04:36:16 +00:00
$text .= "
< tr >
2008-12-11 11:25:21 +00:00
< td class = 'autocheck center' >
2008-12-10 16:59:19 +00:00
< input class = 'checkbox' type = 'checkbox' name = 'multiaction[]' id = 'avdelete-{$row[' user_id ']}' value = '{$row[' user_id ']}' />
2008-12-09 15:19:03 +00:00
</ td >
< td >
2008-12-10 16:59:19 +00:00
< label for = 'avdelete-{$row[' user_id ']}' title = '".IMALAN_56."' > " .IMALAN_51. " </ label >< a href = '".e_BASE."user.php?id.{$row[' user_id ']}' > " . $row['user_name'] . " </ a >
2008-12-09 15:19:03 +00:00
</ td >
< td > " . $sBadImage . " </ td >
< td > " . $avname . " </ td >
2006-12-02 04:36:16 +00:00
</ tr > " ;
}
2008-12-10 16:59:19 +00:00
}
}
//Nothing found
if ( ! $found )
{
$text .= "
2008-12-09 15:19:03 +00:00
< tr >
< td colspan = '4' class = 'center' > " .IMALAN_65. " </ td >
2008-12-10 16:59:19 +00:00
</ tr >
" ;
2006-12-02 04:36:16 +00:00
}
2008-12-10 16:59:19 +00:00
2006-12-02 04:36:16 +00:00
$text .= "
2008-12-09 15:19:03 +00:00
</ tbody >
</ table >
< div class = 'buttons-bar' >
2008-12-10 16:59:19 +00:00
< input type = 'hidden' name = 'check_avatar_sizes' value = '1' />
2009-11-08 09:14:39 +00:00
" . $frm->admin_button ('check_all', LAN_CHECKALL, 'action'). "
" . $frm->admin_button ('uncheck_all', LAN_UNCHECKALL, 'action'). "
" . $frm->admin_button ('submit_avdelete_multi', LAN_DELCHECKED, 'delete'). "
2008-12-09 15:19:03 +00:00
</ div >
</ fieldset >
</ form >
2009-07-16 08:15:35 +00:00
< table cellpadding = '0' cellspacing = '0' class = 'adminform' >
< colgroup span = '2' >
< col class = 'col-label' />
< col class = 'col-control' />
</ colgroup >
2008-12-10 16:59:19 +00:00
</ colgroup >
< tbody >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_38. " </ td >
< td > { $allowedWidth } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_39. " </ td >
< td > { $allowedHeight } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_45. " </ td >
< td > { $iAVnotfound } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_46. " </ td >
< td > { $iAVtoobig } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_47. " </ td >
< td > { $iAVinternal } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_48. " </ td >
< td > { $iAVexternal } </ td >
2008-12-10 16:59:19 +00:00
</ tr >
< tr >
2009-07-16 08:15:35 +00:00
< td > " .IMALAN_49. " </ td >
< td > " .( $iAVexternal + $iAVinternal ). " ( " .(int)(100.0*(( $iAVexternal + $iAVinternal )/ $iUserCount )).'%, '. $iUserCount . " " .IMALAN_50. " ) </ td >
2008-12-10 16:59:19 +00:00
</ tr >
</ tbody >
2008-12-09 15:19:03 +00:00
</ table >
" ;
2006-12-02 04:36:16 +00:00
2008-12-11 22:09:11 +00:00
$ns -> tablerender ( IMALAN_37 , $emessage -> render () . $text );
2006-12-02 04:36:16 +00:00
}
2008-12-10 20:54:06 +00:00
/*
* MAIN CONFIG SCREEN
*/
2009-07-16 08:15:35 +00:00
function main_config ()
{
2009-11-07 11:20:34 +00:00
global $pref ;
$frm = e107 :: getForm ();
$tp = e107 :: getParser ();
$sql = e107 :: getDb ();
$ns = e107 :: getRender ();
$mes = e107 :: getMessage ();
2009-07-16 08:15:35 +00:00
if ( function_exists ( 'gd_info' ))
{
$gd_info = gd_info ();
$gd_version = $gd_info [ 'GD Version' ];
}
else
{
$gd_version = " <span class='error'> " . IMALAN_55 . " </span> " ;
}
$IM_NOTE = " " ;
if ( $pref [ 'im_path' ] != " " )
{
$im_file = $pref [ 'im_path' ] . 'convert' ;
if ( ! file_exists ( $im_file ))
{
$IM_NOTE = " <span class='error'> " . IMALAN_52 . " </span> " ;
}
else
{
$cmd = " { $im_file } -version " ;
$tmp = `$cmd` ;
if ( strpos ( $tmp , " ImageMagick " ) === FALSE )
{
$IM_NOTE = " <span class='error'> " . IMALAN_53 . " </span> " ;
}
}
}
$text = "
< form method = 'post' action = '".e_SELF."' >
< fieldset id = 'core-image-settings' >
< legend class = 'e-hideme' > " .IMALAN_7. " </ legend >
< table cellpadding = '0' cellspacing = '0' class = 'adminform' >
< colgroup span = '2' >
< col class = 'col-label' ></ col >
< col class = 'col-control' ></ col >
</ colgroup >
< tbody >
< tr >
< td class = 'label' >
" .IMALAN_1. "
</ td >
< td class = 'control' >
< div class = 'auto-toggle-area autocheck' >
" . $frm->checkbox ('image_post', 1, $pref['image_post'] ). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_2. " </ div >
2009-07-16 08:15:35 +00:00
</ div >
</ td >
</ tr >
< tr >
< td class = 'label' >
" .IMALAN_10. "
</ td >
< td class = 'control' >
" .r_userclass('image_post_class', $pref['image_post_class'] , " off " , " public , guest , nobody , member , admin , main , classes " ). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_11. " </ div >
2009-07-16 08:15:35 +00:00
</ td >
</ tr >
< tr >
< td class = 'label' >
" .IMALAN_12. "
</ td >
< td class = 'control' >
" . $frm->select_open ('image_post_disabled_method'). "
" . $frm->option (IMALAN_14, '0', ( $pref['image_post_disabled_method'] == " 0 " )). "
" . $frm->option (IMALAN_15, '1', ( $pref['image_post_disabled_method'] == " 1 " )). "
" . $frm->select_close (). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_13. " </ div >
2009-07-16 08:15:35 +00:00
</ td >
</ tr >
< tr >
< td class = 'label' > " .IMALAN_3. " < div class = 'label-note' > " .IMALAN_54. " { $gd_version } </ div ></ td >
< td class = 'control' >
" . $frm->select_open ('resize_method'). "
" . $frm->option ('gd1', 'gd1', ( $pref['resize_method'] == " gd1 " )). "
" . $frm->option ('gd2', 'gd2', ( $pref['resize_method'] == " gd2 " )). "
" . $frm->option ('ImageMagick', 'ImageMagick', ( $pref['resize_method'] == " ImageMagick " )). "
" . $frm->select_close (). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_4. " </ div >
2009-07-16 08:15:35 +00:00
</ td >
</ tr >
< tr >
< td class = 'label' > " .IMALAN_5. " < div class = 'label-note' > { $IM_NOTE } </ div ></ td >
< td class = 'control' >
" . $frm->text ('im_path', $pref['im_path'] ). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_6. " </ div >
2009-07-16 08:15:35 +00:00
</ td >
</ tr >
< tr >
< td class = 'label' > " .IMALAN_34. "
</ td >
< td class = 'control' >
< div class = 'auto-toggle-area autocheck' >
" . $frm->checkbox ('enable_png_image_fix', 1, ( $pref['enable_png_image_fix'] )). "
2009-10-29 12:39:21 +00:00
< div class = 'field-help' > " .IMALAN_35. " </ div >
2009-07-16 08:15:35 +00:00
</ div >
</ td >
</ tr >
< tr >
< td class = 'label' > " .IMALAN_36. " </ td >
< td class = 'control' >
2009-11-08 09:14:39 +00:00
" . $frm->admin_button ('check_avatar_sizes', ADLAN_145). "
2009-07-16 08:15:35 +00:00
</ td >
</ tr >
</ tbody >
</ table >
< div class = 'buttons-bar center' >
" . $frm->admin_button ('update_options', IMALAN_8, 'update'). "
</ div >
</ fieldset >
</ form > " ;
2009-11-08 13:22:02 +00:00
$ns -> tablerender ( LAN_MEDIAMANAGER . " :: " . IMALAN_7 , $mes -> render () . $text );
2007-03-25 03:27:16 +00:00
}
2009-07-16 08:15:35 +00:00
//Just in case...
if ( ! e_AJAX_REQUEST ) require_once ( " footer.php " );
function icon_editor ()
2007-03-25 03:27:16 +00:00
{
2009-11-07 11:20:34 +00:00
global $iconpool , $e107 ;
2009-09-28 07:17:52 +00:00
$ns = e107 :: getRender ();
$tp = e107 :: getParser ();
2009-11-07 11:20:34 +00:00
$frm = e107 :: getForm ();
$mes = e107 :: getMessage ();
2009-09-28 07:17:52 +00:00
2009-07-16 08:15:35 +00:00
ksort ( $iconpool );
$text = "
< form method = 'post' action = '".e_SELF."?icons' id = 'icon_edit' >
< fieldset id = 'core-imagemanager-icons' >
< legend class = 'e-hideme' > " .DBLAN_20. " </ legend >
< table cellpadding = '0' cellspacing = '0' class = 'adminlist' >
< colgroup span = '4' >
< col style = 'width: 5%' ></ col >
< col style = 'width: 20%' ></ col >
< col style = 'width: 70%' ></ col >
< col style = 'width: 5%' ></ col >
</ colgroup >
< thead >
< tr >
< th class = 'center' > " .LAN_DELETE. " </ th >
< th > " .LAN_CATEGORY. " </ th >
< th > " .IMALAN_72. " </ th >
< th class = 'center last' > " .LAN_OPTIONS. " </ th >
</ tr >
</ thead >
< tbody >
" ;
$tmp = array ( 16 , 32 , 48 , 64 , 128 );
foreach ( $iconpool as $key => $val )
{
$tmp1 = array ();
foreach ( $val as $icon )
{
$filepath = $icon ;
$filepath_abs = $tp -> replaceConstants ( $icon );
$icon_file = basename ( $filepath_abs );
$str = " <img class='icon picker list%%size%%' src=' { $filepath_abs } ' alt=' { $icon_file } ' /> " ;
foreach ( $tmp as $isize )
{
if ( strpos ( $icon_file , '_' . $isize . '.' ) !== false )
{
$tmp1 [ $isize ] = varset ( $tmp1 [ $isize ]) . str_replace ( '%%size%%' , ' S' . $isize , $str );
continue 2 ;
}
}
$tmp1 [ 'other' ] = varset ( $tmp1 [ 'other' ]) . $str ; //other
}
$ptext = " <div class='field-spacer iconeditor'> " . str_replace ( '%%size%%' , '' , implode ( '</div><div class="field-spacer iconeditor">' , $tmp1 )) . " </div> " ;
// $ptext = (is_array($val)) ? "<pre>".print_r($val, TRUE)."</pre>" : htmlspecialchars($val, ENT_QUOTES, CHARSET);
// $ptext = $e107->tp->textclean($ptext, 80);
$text .= "
< tr >
< td class = 'center autocheck e-pointer' > " . $frm->checkbox ( " delpref2 [ $key ] " , 1). " </ td >
< td > { $key } </ td >
< td > { $ptext } </ td >
< td class = 'center' > " . $frm->submit_image ( " delpref [ $key ] " , LAN_DELETE, 'delete', LAN_CONFIRMDEL. " [ $key ] " ). " </ td >
</ tr >
" ;
}
$text .= "
</ tbody >
</ table >
< div class = 'buttons-bar center' >
" . $frm->admin_button ('delpref_checked', LAN_DELCHECKED, 'delete'). "
</ div >
</ fieldset >
</ form >
" ;
//$text .= "<div style='text-align:center'><a href='".e_SELF."'>".DBLAN_13."</a></div>\n";
2009-11-08 13:22:02 +00:00
$ns -> tablerender ( LAN_MEDIAMANAGER . " :: " . IMALAN_71 , $mes -> render () . $text );
2009-07-16 08:15:35 +00:00
return $text ;
2007-03-25 03:27:16 +00:00
}
2009-07-16 08:15:35 +00:00
function del_pref_val ()
2007-03-25 03:27:16 +00:00
{
2009-07-16 08:15:35 +00:00
global $iconpool , $e107cache , $emessage ;
$del = array_keys ( $_POST [ 'delpref' ]);
$delpref = key ( $_POST [ 'delpref' ]);
if ( $delpref )
2007-03-25 03:27:16 +00:00
{
2009-07-16 08:15:35 +00:00
unset ( $iconpool [ $delpref ]);
$deleted_list .= " <li> " . $delpref . " </li> " ;
2007-03-25 03:27:16 +00:00
}
2009-07-16 08:15:35 +00:00
if ( $_POST [ 'delpref2' ])
2007-03-25 03:27:16 +00:00
{
2009-07-16 08:15:35 +00:00
foreach ( $_POST [ 'delpref2' ] as $k => $v )
2007-03-25 03:27:16 +00:00
{
2009-07-16 08:15:35 +00:00
$deleted_list .= " <li> " . $k . " </li> " ;
unset ( $iconpool [ $k ]);
2007-03-25 03:27:16 +00:00
}
}
2009-07-16 08:15:35 +00:00
if ( save_prefs ( 'iconpool' ))
{
$emessage -> add ( LAN_DELETED . " <ul> " . $deleted_list . " </ul> " );
$e107cache -> clear ();
}
//$e107->ns->tablerender(LAN_DELETED,$message);
2007-03-25 03:27:16 +00:00
}
2006-12-02 04:36:16 +00:00
2008-12-09 15:19:03 +00:00
2009-07-16 08:15:35 +00:00
2008-12-09 15:19:03 +00:00
2008-12-11 22:09:11 +00:00
2006-12-02 04:36:16 +00:00
2008-12-09 17:49:59 +00:00
2008-12-10 16:59:19 +00:00
/**
* Handle page DOM within the page header
*
* @ return string JS source
*/
2008-12-09 17:49:59 +00:00
function headerjs ()
{
require_once ( e_HANDLER . 'js_helper.php' );
2008-12-12 09:55:33 +00:00
//FIXME - how exactly to auto-call JS lan? This and more should be solved in Stage II.
2008-12-09 17:49:59 +00:00
$ret = "
2008-12-10 23:46:47 +00:00
< script type = 'text/javascript' >
2008-12-12 09:55:33 +00:00
//add required core lan - delete confirm message
2009-11-08 09:14:39 +00:00
( " .e_jshelper::toString(LAN_JSCONFIRM). " ) . addModLan ( 'core' , 'delete_confirm' );
2008-12-10 23:46:47 +00:00
</ script >
< script type = 'text/javascript' src = '".e_FILE_ABS."jslib/core/admin.js' ></ script >
2008-12-09 17:49:59 +00:00
" ;
return $ret ;
}
2008-12-09 15:19:03 +00:00
?>