aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/class/Controller.php2
-rw-r--r--app/class/Controllermedia.php6
-rw-r--r--app/class/Medialist.php19
-rw-r--r--app/fn/fn.php4
4 files changed, 20 insertions, 11 deletions
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/<folder>`
+ */
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 = '├─📂<strong>' . $dirname . '<strong>';
+ if ($path . '/' === $currentdir) {
+ $folder = '├─📂<span id="currentdir">' . $dirname . '<span>';
} else {
$folder = '├─📁' . $dirname;
}