aboutsummaryrefslogtreecommitdiff
path: root/app/class/Modelmedia.php
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-01-18 16:35:20 +0100
committervincent-peugnet <v.peugnet@free.fr>2020-01-18 16:35:20 +0100
commit227a2a35d64db87d889f7a44101f11a117b8e06a (patch)
tree9854f830e728c66d165006ac1eaeae7958baf785 /app/class/Modelmedia.php
parent57ef3a9a12738081b3ab26559076bfb2b43e75db (diff)
downloadwcms-227a2a35d64db87d889f7a44101f11a117b8e06a.tar.gz
wcms-227a2a35d64db87d889f7a44101f11a117b8e06a.zip
refactoring medialist
Diffstat (limited to 'app/class/Modelmedia.php')
-rw-r--r--app/class/Modelmedia.php50
1 files changed, 26 insertions, 24 deletions
diff --git a/app/class/Modelmedia.php b/app/class/Modelmedia.php
index 6ac647f..d1da829 100644
--- a/app/class/Modelmedia.php
+++ b/app/class/Modelmedia.php
@@ -33,16 +33,23 @@ class Modelmedia extends Model
}
}
+ public function medialistopt(Medialist $mediaopt)
+ {
+ $medialist = $this->getlistermedia($mediaopt->dir(), $mediaopt->type());
+ $this->medialistsort($medialist, $mediaopt->sortby(), $mediaopt->order());
+
+ return $medialist;
+ }
+
/**
* Display a list of media
*
* @param string $path
- * @param string $sortby
- * @param string $order
+ * @param array $type
*
* @return array of Media objects
*/
- public function getlistermedia($dir, $type = "all")
+ public function getlistermedia($dir, $type = Model::MEDIA_TYPES)
{
if (is_dir($dir)) {
if ($handle = opendir($dir)) {
@@ -56,11 +63,7 @@ class Modelmedia extends Model
$media->analyse();
- if (in_array($type, self::MEDIA_TYPES)) {
- if ($media->type() == $type) {
- $list[] = $media;
- }
- } else {
+ if (in_array($media->type(), $type)) {
$list[] = $media;
}
}
@@ -74,22 +77,6 @@ class Modelmedia extends Model
}
-
- public function mediacompare($media1, $media2, $method = 'id', $order = 1)
- {
- $result = ($media1->$method() <=> $media2->$method());
- return $result * $order;
- }
-
- public function buildsorter($sortby, $order)
- {
- return function ($media1, $media2) use ($sortby, $order) {
- $result = $this->mediacompare($media1, $media2, $sortby, $order);
- return $result;
- };
- }
-
-
/**
* Sort an array of media
*
@@ -103,6 +90,21 @@ class Modelmedia extends Model
$order = ($order === 1 || $order === -1) ? $order : 1;
return usort($medialist, $this->buildsorter($sortby, $order));
}
+
+ public function buildsorter($sortby, $order)
+ {
+ return function ($media1, $media2) use ($sortby, $order) {
+ $result = $this->mediacompare($media1, $media2, $sortby, $order);
+ return $result;
+ };
+ }
+
+ public function mediacompare($media1, $media2, $method = 'id', $order = 1)
+ {
+ $result = ($media1->$method() <=> $media2->$method());
+ return $result * $order;
+ }
+