From 49273cba81ea86639a23dfd5a43bda2f6b01f075 Mon Sep 17 00:00:00 2001 From: vincent-peugnet Date: Mon, 20 Jan 2020 01:56:57 +0100 Subject: fix media little problems --- app/class/Controller.php | 2 +- app/class/Controllermedia.php | 6 +++--- app/class/Medialist.php | 19 ++++++++++++++----- app/fn/fn.php | 4 ++-- 4 files changed, 20 insertions(+), 11 deletions(-) (limited to 'app') diff --git a/app/class/Controller.php b/app/class/Controller.php index 32ffc13..c3787b2 100644 --- a/app/class/Controller.php +++ b/app/class/Controller.php @@ -10,7 +10,7 @@ class Controller /** @var User */ protected $user; - /** @var Routes */ + /** @var \AltoRouter */ protected $router; /** @var Modeluser */ diff --git a/app/class/Controllermedia.php b/app/class/Controllermedia.php index 6a84028..3e323f5 100644 --- a/app/class/Controllermedia.php +++ b/app/class/Controllermedia.php @@ -61,7 +61,7 @@ class Controllermedia extends Controller if (!empty($_FILES['file']['name'][0])) { $this->mediamanager->multiupload('file', $target); } - $this->redirect($this->router->generate('media') . '?path=' . $target); + $this->redirect($this->router->generate('media') . '?path=/' . $target); } else { $this->routedirect('home'); } @@ -74,7 +74,7 @@ class Controllermedia extends Controller $name = idclean($_POST['foldername']) ?? 'new-folder'; $this->mediamanager->adddir($dir, $name); } - $this->redirect($this->router->generate('media') . '?path=' . $dir . DIRECTORY_SEPARATOR . $name); + $this->redirect($this->router->generate('media') . '?path=/' . $dir . DIRECTORY_SEPARATOR . $name); } @@ -84,7 +84,7 @@ class Controllermedia extends Controller if(isset($_POST['deletefolder']) && intval($_POST['deletefolder']) && $this->user->issupereditor()) { $this->mediamanager->deletedir($_POST['dir']); } else { - $this->redirect($this->router->generate('media') . '?path=' . $_POST['dir']); + $this->redirect($this->router->generate('media') . '?path=/' . $_POST['dir']); exit; } } diff --git a/app/class/Medialist.php b/app/class/Medialist.php index d36e5d1..b208fef 100644 --- a/app/class/Medialist.php +++ b/app/class/Medialist.php @@ -113,14 +113,20 @@ class Medialist } else { $order = $this->order; } - $query = ['path' => $this->path, 'sortby' => $sortby, 'order' => $order, 'type' => $this->type]; + $query = ['path' => $this->path, 'sortby' => $sortby, 'order' => $order]; + if(array_diff( self::TYPES, $this->type) != []) { + $query['type'] = $this->type; + } return '?' . urldecode(http_build_query($query)); } public function getpathadress(string $path) : string { - $query = ['path' => '/' . $path, 'sortby' => $this->sortby, 'order' => $this->order, 'type' => $this->type]; + $query = ['path' => '/' . $path, 'sortby' => $this->sortby, 'order' => $this->order]; + if(array_diff( self::TYPES, $this->type) != []) { + $query['type'] = $this->type; + } return '?' . urldecode(http_build_query($query)); } @@ -147,6 +153,9 @@ class Medialist return $this->filter; } + /** + * @return string formated like `/media/` + */ public function path() { return $this->path; @@ -193,10 +202,10 @@ class Medialist public function setpath(string $path) { - if(preg_match('%^\/' . Model::MEDIA_DIR . '%', $path)) { - $this->path = $path; + if(preg_match('%^\/' . rtrim(Model::MEDIA_DIR, DIRECTORY_SEPARATOR) . '%', $path)) { + $this->path = rtrim($path, DIRECTORY_SEPARATOR); } elseif (!preg_match('%^\/%', $path)) { - $this->path = '/' . Model::MEDIA_DIR . $path; + $this->path = '/' . Model::MEDIA_DIR . rtrim($path, DIRECTORY_SEPARATOR); } } diff --git a/app/fn/fn.php b/app/fn/fn.php index af02202..583227a 100644 --- a/app/fn/fn.php +++ b/app/fn/fn.php @@ -214,8 +214,8 @@ function array_diff_assoc_recursive($array1, $array2) { */ function treecount(array $dir, string $dirname, int $deepness, string $path, string $currentdir, Medialist $mediaopt) { - if ($path === $currentdir) { - $folder = '├─📂' . $dirname . ''; + if ($path . '/' === $currentdir) { + $folder = '├─📂' . $dirname . ''; } else { $folder = '├─📁' . $dirname; } -- cgit v1.2.3