From eab190e895124ef643c2b0574c84f3424857eeac Mon Sep 17 00:00:00 2001 From: vincent-peugnet Date: Thu, 30 Jan 2020 02:46:19 +0100 Subject: default thumbnail fix #49 --- app/class/Controlleradmin.php | 20 ++++++++++---------- app/class/Controllerpage.php | 33 +++++++++++++-------------------- app/class/Modelmedia.php | 41 ++++++++++++++++++++++++++--------------- app/class/Modelrender.php | 8 +++++--- app/class/Page.php | 30 ++++++++++++++---------------- 5 files changed, 68 insertions(+), 64 deletions(-) (limited to 'app/class') diff --git a/app/class/Controlleradmin.php b/app/class/Controlleradmin.php index 3935bff..b7d0e31 100644 --- a/app/class/Controlleradmin.php +++ b/app/class/Controlleradmin.php @@ -11,26 +11,26 @@ class Controlleradmin extends Controller public function desktop() { if($this->user->isadmin()) { - $pagelist = $this->pagemanager->list(); + $datas['pagelist'] = $this->pagemanager->list(); $this->mediamanager = new Modelmedia(); - $faviconlist = $this->mediamanager->listfavicon(); - $interfacecsslist = $this->mediamanager->listinterfacecss(); - if(in_array(Config::defaultpage(), $pagelist)) { - $defaultpageexist = true; + $datas['faviconlist'] = $this->mediamanager->listfavicon(); + $datas['thumbnaillist'] = $this->mediamanager->listthumbnail(); + $datas['interfacecsslist'] = $this->mediamanager->listinterfacecss(); + if(in_array(Config::defaultpage(), $datas['pagelist'])) { + $datas['defaultpageexist'] = true; } else { - $defaultpageexist = true; + $datas['defaultpageexist'] = false; } $globalcssfile = Model::GLOBAL_DIR . 'global.css'; if(is_file($globalcssfile)) { - $globalcss = file_get_contents($globalcssfile); + $datas['globalcss'] = file_get_contents($globalcssfile); } else { - $globalcss = ""; + $datas['globalcss'] = ""; } - $admin = ['pagelist' => $pagelist, 'defaultpageexist' => $defaultpageexist, 'globalcss' => $globalcss, 'faviconlist' => $faviconlist, 'interfacecsslist' => $interfacecsslist]; - $this->showtemplate('admin', $admin); + $this->showtemplate('admin', $datas); } else { $this->routedirect('home'); } diff --git a/app/class/Controllerpage.php b/app/class/Controllerpage.php index 75ac6cf..cfab5d3 100644 --- a/app/class/Controllerpage.php +++ b/app/class/Controllerpage.php @@ -174,28 +174,28 @@ class Controllerpage extends Controller if ($this->importpage() && $this->canedit()) { - $tablist = ['main' => $this->page->main(), 'css' => $this->page->css(), 'header' => $this->page->header(), 'nav' => $this->page->nav(), 'aside' => $this->page->aside(), 'footer' => $this->page->footer(), 'body' => $this->page->body(), 'javascript' => $this->page->javascript()]; + $datas['tablist'] = ['main' => $this->page->main(), 'css' => $this->page->css(), 'header' => $this->page->header(), 'nav' => $this->page->nav(), 'aside' => $this->page->aside(), 'footer' => $this->page->footer(), 'body' => $this->page->body(), 'javascript' => $this->page->javascript()]; - $faviconlist = $this->mediamanager->listfavicon(); - $idlist = $this->pagemanager->list(); + $datas['faviconlist'] = $this->mediamanager->listfavicon(); + $datas['thumbnaillist'] = $this->mediamanager->listthumbnail(); + $datas['pagelist'] = $this->pagemanager->list(); $pagelist = $this->pagemanager->getlister(); - $tagpagelist = $this->pagemanager->tagpagelist($this->page->tag('array'), $pagelist); - $lasteditedpagelist = $this->pagemanager->lasteditedpagelist(5, $pagelist); + $datas['tagpagelist'] = $this->pagemanager->tagpagelist($this->page->tag('array'), $pagelist); + $datas['lasteditedpagelist'] = $this->pagemanager->lasteditedpagelist(5, $pagelist); - $editorlist = $this->usermanager->getlisterbylevel(2, '>='); + $datas['editorlist'] = $this->usermanager->getlisterbylevel(2, '>='); if (isset($_SESSION['workspace'])) { - $showleftpanel = $_SESSION['workspace']['showleftpanel']; - $showrightpanel = $_SESSION['workspace']['showrightpanel']; + $datas['showleftpanel'] = $_SESSION['workspace']['showleftpanel']; + $datas['showrightpanel'] = $_SESSION['workspace']['showrightpanel']; } else { - $showleftpanel = false; - $showrightpanel = false; + $datas['showleftpanel'] = false; + $datas['showrightpanel'] = false; } - $fonts = []; - - $this->showtemplate('edit', ['page' => $this->page, 'pageexist' => true, 'tablist' => $tablist, 'pagelist' => $idlist, 'showleftpanel' => $showleftpanel, 'showrightpanel' => $showrightpanel, 'fonts' => $fonts, 'tagpagelist' => $tagpagelist, 'lasteditedpagelist' => $lasteditedpagelist, 'faviconlist' => $faviconlist, 'editorlist' => $editorlist, 'user' => $this->user]); + $datas = array_merge($datas, ['page' => $this->page, 'pageexist' => true, 'user' => $this->user]); + $this->showtemplate('edit', $datas); } else { $this->routedirect('pageread/', ['page' => $this->page->id()]); } @@ -337,13 +337,6 @@ class Controllerpage extends Controller $this->page->addauthor($this->user->id()); $this->page->removeeditby($this->user->id()); - // Add thumbnail image file under 1Mo - If(isset($_FILES)) { - $this->mediamanager->dircheck(Model::THUMBNAIL_DIR); - $this->mediamanager->simpleupload('thumbnail', Model::THUMBNAIL_DIR . $this->page->id(), 1024*1024, ['jpg', 'jpeg', 'JPG', 'JPEG'], true); - } - - $this->pagemanager->update($this->page); $this->routedirect('pageedit', ['page' => $this->page->id()]); diff --git a/app/class/Modelmedia.php b/app/class/Modelmedia.php index 61a2286..567e659 100644 --- a/app/class/Modelmedia.php +++ b/app/class/Modelmedia.php @@ -111,30 +111,41 @@ class Modelmedia extends Model public function listfavicon() { - $extensions = ['ico', 'png', 'jpg', 'jpeg']; - $faviconlist = []; - foreach ($extensions as $extension ) { - $glob = Model::FAVICON_DIR . '*.' . $extension; - $faviconlist = array_merge($faviconlist, glob($glob)); - } - $faviconlist = array_map(function ($input){ - return basename($input); - }, $faviconlist); + $faviconlist = $this->globlist(self::FAVICON_DIR, ['ico', 'png', 'jpg', 'jpeg', 'gif']); + return $faviconlist; + } + + public function listthumbnail() + { + $faviconlist = $this->globlist(self::THUMBNAIL_DIR, ['ico', 'png', 'jpg', 'jpeg', 'gif']); return $faviconlist; } public function listinterfacecss() { - $glob = Model::CSS_DIR . '*.css'; - $listinterfacecss = glob($glob); - $listinterfacecss = array_map(function ($input) { - return basename($input); - }, $listinterfacecss); - $listinterfacecss = array_diff($listinterfacecss, ['edit.css', 'home.css']); + $listinterfacecss = $this->globlist(self::CSS_DIR, ['css']); + $listinterfacecss = array_diff($listinterfacecss, ['edit.css', 'home.css', 'tagcolors.css']); return $listinterfacecss; } + public function globlist (string $dir = '', array $extensions = []) : array + { + $list = []; + if(empty($extensions)) { + $glob = $dir . '*.'; + } else { + foreach ($extensions as $extension ) { + $glob = $dir . '*.' . $extension; + $list = array_merge($list, glob($glob)); + } + } + $list = array_map(function ($input){ + return basename($input); + }, $list); + return $list; + } + /** * Generate an reccursive array where each folder is a array and containing a filecount in each folder diff --git a/app/class/Modelrender.php b/app/class/Modelrender.php index 5a86d0b..b544d21 100644 --- a/app/class/Modelrender.php +++ b/app/class/Modelrender.php @@ -8,7 +8,7 @@ use Michelf\MarkdownExtra; class Modelrender extends Modelpage { protected $router; - /** @var page2 */ + /** @var Page */ protected $page; protected $pagelist; protected $linkfrom = []; @@ -249,8 +249,10 @@ class Modelrender extends Modelpage $head .= '' . PHP_EOL; $head .= '' . PHP_EOL; - if($this->page->thumbnailexist()) { - $head .= '' . PHP_EOL; + if(!empty($this->page->thumbnail())) { + $head .= '' . PHP_EOL; + } elseif(!empty(Config::defaultthumbnail())) { + $head .= '' . PHP_EOL; } $head .= '' . PHP_EOL; diff --git a/app/class/Page.php b/app/class/Page.php index fff98dc..8adf418 100644 --- a/app/class/Page.php +++ b/app/class/Page.php @@ -35,6 +35,7 @@ class Page extends Dbitem protected $templatejavascript; protected $templateoptions; protected $favicon; + protected $thumbnail; protected $authors; protected $invites; protected $readers; @@ -93,6 +94,7 @@ class Page extends Dbitem $this->settemplatejavascript(''); $this->settemplateoptions(['externalcss', 'externaljavascript', 'favicon', 'thumbnail', 'reccursivecss']); $this->setfavicon(''); + $this->setthumbnail(''); $this->setauthors([]); $this->setinvites([]); $this->setreaders([]); @@ -112,22 +114,6 @@ class Page extends Dbitem return ['pagevarlist' => $classvarlist]; } - /** - * Check if page have a thumbnail - * @return bool true if the page have a thumbnail otherwise return false. - */ - public function thumbnailexist() : bool - { - $thumbnaillink = Model::THUMBNAIL_DIR . $this->id . '.jpg'; - - $test = file_exists($thumbnaillink); - - $exist = file_exists(Model::THUMBNAIL_DIR . $this->id . '.jpg'); - - return $exist; - } - - // _____________________________________________________ G E T ____________________________________________________ public function id($type = 'string') @@ -382,6 +368,11 @@ class Page extends Dbitem return $this->favicon; } + public function thumbnail($type = 'string') + { + return $this->thumbnail; + } + public function authors($type = 'array') { if($type == 'string') { @@ -681,6 +672,13 @@ class Page extends Dbitem } } + public function setthumbnail($thumbnail) + { + if (is_string($thumbnail)) { + $this->thumbnail = $thumbnail; + } + } + public function setauthors($authors) { if(is_array($authors)) { -- cgit v1.2.3