aboutsummaryrefslogtreecommitdiff
path: root/app/class
diff options
context:
space:
mode:
Diffstat (limited to 'app/class')
-rw-r--r--app/class/controllermedia.php33
-rw-r--r--app/class/modelmedia.php25
-rw-r--r--app/class/routes.php2
3 files changed, 57 insertions, 3 deletions
diff --git a/app/class/controllermedia.php b/app/class/controllermedia.php
index 1fa564b..26b58ff 100644
--- a/app/class/controllermedia.php
+++ b/app/class/controllermedia.php
@@ -2,7 +2,6 @@
class Controllermedia extends Controller
{
- protected $medialist;
protected $mediamanager;
public function __construct($render) {
@@ -15,9 +14,14 @@ class Controllermedia extends Controller
public function desktop()
{
if($this->user->iseditor()) {
- $medialist = $this->mediamanager->getlistermedia(Model::MEDIA_DIR);
+ $dir = $_GET['path'] ?? Model::MEDIA_DIR;
+
+ $medialist = $this->mediamanager->getlistermedia($dir . DIRECTORY_SEPARATOR);
$faviconlist = $this->mediamanager->getlistermedia(Model::FAVICON_DIR);
- $this->showtemplate('media', ['medialist' => $medialist, 'faviconlist' => $faviconlist]);
+
+ $dirlist = $this->mediamanager->listdir(Model::MEDIA_DIR);
+
+ $this->showtemplate('media', ['medialist' => $medialist, 'faviconlist' => $faviconlist, 'dirlist' => $dirlist, 'dir' => $dir]);
}
}
@@ -29,6 +33,29 @@ class Controllermedia extends Controller
}
+ public function upload()
+ {
+ $target = $_POST['dir'] ?? Model::MEDIA_DIR;
+ if($target[strlen($target)-1]!='/')
+ $target=$target.'/';
+ $count=0;
+ foreach ($_FILES['file']['name'] as $filename)
+ {
+ $fileinfo = pathinfo($filename);
+ $extension = idclean($fileinfo['extension']);
+ $id = idclean($fileinfo['filename']);
+
+ $temp=$target;
+ $tmp=$_FILES['file']['tmp_name'][$count];
+ $count=$count + 1;
+ $temp .= $id .'.' .$extension;
+ move_uploaded_file($tmp,$temp);
+ $temp='';
+ $tmp='';
+ }
+ $this->redirect($this->router->generate('media').'?path='.$target);
+ }
+
}
diff --git a/app/class/modelmedia.php b/app/class/modelmedia.php
index 3402a04..89c253f 100644
--- a/app/class/modelmedia.php
+++ b/app/class/modelmedia.php
@@ -105,7 +105,32 @@ class Modelmedia extends Model
}
+ public function listdir($dir)
+ {
+
+ $result = array();
+
+ $cdir = scandir($dir);
+ $result['dirfilecount'] = 0;
+ foreach ($cdir as $key => $value)
+ {
+ if (!in_array($value,array(".","..")))
+ {
+ if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
+ {
+ $result[$value] = $this->listdir($dir . DIRECTORY_SEPARATOR . $value);
+ }
+ else
+ {
+ $result['dirfilecount'] ++;
+ }
+ }
+ }
+
+ return $result;
+
+ }
}
diff --git a/app/class/routes.php b/app/class/routes.php
index b324e64..4763887 100644
--- a/app/class/routes.php
+++ b/app/class/routes.php
@@ -19,6 +19,8 @@ class Routes
['GET', '/!co', 'Controllerconnect#connect', 'connect'],
['POST', '/!search', 'Controllerhome#search', 'search'],
['GET', '/!media', 'Controllermedia#desktop', 'media'],
+ ['POST', '/!media', 'Controllermedia#upload', 'mediaupload'],
+ ['POST', '/!media', 'Controllermedia#folder', 'mediafolder'],
['GET', '/!font', 'Controllerfont#desktop', 'font'],
['POST', '/!admin', 'Controlleradmin#update', 'adminupdate'],
['GET', '/!admin', 'Controlleradmin#desktop', 'admin'],