aboutsummaryrefslogtreecommitdiff
path: root/app/class/medialist.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/class/medialist.php')
-rw-r--r--app/class/medialist.php97
1 files changed, 74 insertions, 23 deletions
diff --git a/app/class/medialist.php b/app/class/medialist.php
index f3bdac5..156ee2e 100644
--- a/app/class/medialist.php
+++ b/app/class/medialist.php
@@ -4,18 +4,29 @@ class Medialist
{
/** @var string full regex match */
protected $fullmatch;
+
/** @var string options */
protected $options = '';
+
/** @var string directory of media */
protected $path = '';
+
/** @var string */
protected $sortby = 'id';
- /** @var string */
+
+ /** @var int */
protected $order = 1;
- /** @var string */
- protected $recursive = 'id';
- const SORT_BY_OPTIONS = ['id', 'size'];
+ /** @var int display media contents*/
+ protected $display = 1;
+
+ /** @var int display download links*/
+ protected $links = 0;
+
+ /** @var string ouput html code generated*/
+ protected $content = '';
+
+ const SORT_BY_OPTIONS = ['id', 'size', 'type'];
@@ -23,22 +34,22 @@ class Medialist
- public function __construct(array $datas = [])
- {
+ public function __construct(array $datas = [])
+ {
$this->hydrate($datas);
$this->readoptions();
+ $this->generatecontent();
+ }
- }
-
- public function hydrate($datas)
- {
- foreach ($datas as $key => $value) {
- $method = 'set' . $key;
+ public function hydrate($datas)
+ {
+ foreach ($datas as $key => $value) {
+ $method = 'set' . $key;
- if (method_exists($this, $method)) {
- $this->$method($value);
- }
- }
+ if (method_exists($this, $method)) {
+ $this->$method($value);
+ }
+ }
}
public function readoptions()
@@ -47,6 +58,43 @@ class Medialist
$this->hydrate($datas);
}
+ public function generatecontent()
+ {
+ $mediamanager = new Modelmedia();
+ $medialist = $mediamanager->getlistermedia(Model::MEDIA_DIR . $this->path . '/');
+ if (!$medialist) {
+ $this->content = '<strong>RENDERING ERROR :</strong> path : <code>' . Model::MEDIA_DIR . $this->path . '/</code> does not exist';
+ return false;
+ } else {
+
+ $mediamanager->medialistsort($medialist, $this->sortby, $this->order);
+
+ $dirid = str_replace('/', '-', $this->path);
+
+ $div = '<div class="medialist" id="' . $dirid . '">' . PHP_EOL;
+
+ foreach ($medialist as $media) {
+ $div .= '<div class="content ' . $media->type() . '">';
+ if ($media->type() == 'image') {
+ $div .= '<img alt="' . $media->id() . '" id="' . $media->id() . '" src="' . $media->getincludepath() . '" >';
+ } elseif ($media->type() == 'sound') {
+ $div .= '<audio id="' . $media->id() . '" controls src="' . $media->getincludepath() . '" </audio>';
+ } elseif ($media->type() == 'video') {
+ $div .= '<video controls><source src="' . $media->getincludepath() . '" type="video/' . $media->extension() . '"></video>';
+ } elseif ($media->type() == 'other') {
+ $div .= '<a href="' . $media->getincludepath() . '" target="_blank" class="media" >' . $media->id() . '.' . $media->extension() . '</a>';
+ }
+ $div .= '</div>' . PHP_EOL;
+ }
+
+ $div .= '</div>' . PHP_EOL;
+
+ $this->content = $div;
+
+ return true;
+ }
+ }
+
// __________________________________________________ G E T ____________________________________________________________
@@ -61,6 +109,11 @@ class Medialist
return $this->options;
}
+ public function content()
+ {
+ return $this->content;
+ }
+
// __________________________________________________ S E T ____________________________________________________________
@@ -74,7 +127,7 @@ class Medialist
public function setoptions(string $options)
{
- if(!empty($options)) {
+ if (!empty($options)) {
$this->options = $options;
}
}
@@ -83,20 +136,18 @@ class Medialist
{
$this->path = $path;
}
-
+
public function setsortby(string $sortby)
{
- if(in_array($sortby, self::SORT_BY_OPTIONS)) {
+ if (in_array($sortby, self::SORT_BY_OPTIONS)) {
$this->sortby = $sortby;
}
}
public function setorder(int $order)
{
- if($order === -1 || $order === 1) {
+ if ($order === -1 || $order === 1) {
$this->order = $order;
}
}
-
-
-} \ No newline at end of file
+}