diff --git a/system/User.php b/system/User.php index 4a37a6332..7925bffaa 100644 --- a/system/User.php +++ b/system/User.php @@ -8,9 +8,14 @@ class User { private $xmppSession; - private $username = ''; + public $username = ''; private $password = ''; private $config = array(); + + public $userdir; + public $useruri; + + public $sizelimit; /** * Class constructor. Reloads the user's session or attempts to authenticate @@ -23,9 +28,28 @@ class User { global $session; $this->username = $session['user'].'@'.$session['host']; $this->config = $session['config']; - + + $this->sizelimit = (int)Conf::getServerConfElement('sizeLimit'); + + $this->userdir = BASE_PATH.'users/'.$this->username.'/'; + $this->useruri = BASE_URI.'users/'.$this->username.'/'; } } + + /** + * Get the current size in bytes of the user directory + */ + function dirSize() + { + $sum = 0; + + foreach(scandir($this->userdir) as $s) { + if($s != '.' && $s != '..' && $s != 'index.html') + $sum = $sum + filesize($this->userdir.$s); + } + + return $sum; + } /** * Checks if the user has an open session. diff --git a/system/Widget/widgets/Media/Media.php b/system/Widget/widgets/Media/Media.php index a989c4579..f87b98eec 100644 --- a/system/Widget/widgets/Media/Media.php +++ b/system/Widget/widgets/Media/Media.php @@ -19,23 +19,15 @@ */ class Media extends WidgetBase { - - private $_userdir; - private $_useruri; - public $_sizelimit; - function WidgetLoad() { $this->addcss('media.css'); $this->addjs('media.js'); - $this->_sizelimit = (int)Conf::getServerConfElement('sizeLimit'); - - $this->_userdir = BASE_PATH.'users/'.$this->user->getLogin().'/'; - $this->_useruri = BASE_URI.'users/'.$this->user->getLogin().'/'; - - if(!is_dir($this->_userdir)) - mkdir($this->_userdir); + if(!is_dir($this->user->userdir)) { + mkdir($this->user->userdir); + touch($this->user->userdir.'index.html'); + } $this->registerEvent('media', 'onMediaUploaded'); } @@ -47,32 +39,33 @@ class Media extends WidgetBase { RPC::commit(); } - function dirSize() + function ajaxDeleteItem($name) { - $sum = 0; - - foreach(scandir($this->_userdir) as $s) { - if($s != '.' && $s != '..') - $sum = $sum + filesize($this->_userdir.$s); - } + unlink($this->user->userdir.'thumb_'.$name); + unlink($this->user->userdir.'medium_'.$name); + unlink($this->user->userdir.$name); - return $sum; + $this->ajaxRefreshMedia(); } function listFiles() { $html = ''; @@ -82,12 +75,12 @@ class Media extends WidgetBase { function mainFolder() { - $percent = number_format(($this->dirSize()/$this->_sizelimit)*100, 2); + $percent = number_format(($this->user->dirSize()/$this->user->sizelimit)*100, 2); $html = $this->listFiles().' - '.sizeToCleanSize($this->dirSize()).' '.t('on').' '.sizeToCleanSize($this->_sizelimit). + '.sizeToCleanSize($this->user->dirSize()).' '.t('on').' '.sizeToCleanSize($this->user->sizelimit). ' - '. $percent.'% '; @@ -99,9 +92,9 @@ class Media extends WidgetBase { { //var_dump(exif_read_data($this->_userdir.$f)); - if(file_exists($this->_userdir.$f) && getimagesize($this->_userdir.$f) != 0) { + if(file_exists($this->user->userdir.$f) && getimagesize($this->user->userdir.$f) != 0) { - $er = @exif_read_data($this->_userdir.$f); + $er = @exif_read_data($this->user->userdir.$f); $exif = ''; @@ -123,11 +116,11 @@ class Media extends WidgetBase { $exif .= '
  • '.t('Artist').''.$er['Artist'].'
  • '; } - $exif .= '
  • '.t('Original').''.t('Link').'
  • '; + $exif .= '
  • '.t('Original').''.t('Link').'
  • '; $html = '
    - +