diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-01-30 02:46:19 +0100 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-01-30 02:46:19 +0100 |
commit | eab190e895124ef643c2b0574c84f3424857eeac (patch) | |
tree | 5dfa29c84a1e378825ddf1c46e16cb6bd85df9dd /app | |
parent | 40ef00fee7286a186673ff3fb26b6802421b2bc4 (diff) | |
download | wcms-eab190e895124ef643c2b0574c84f3424857eeac.tar.gz wcms-eab190e895124ef643c2b0574c84f3424857eeac.zip |
default thumbnail fix #49
Diffstat (limited to 'app')
-rw-r--r-- | app/class/Controlleradmin.php | 20 | ||||
-rw-r--r-- | app/class/Controllerpage.php | 33 | ||||
-rw-r--r-- | app/class/Modelmedia.php | 41 | ||||
-rw-r--r-- | app/class/Modelrender.php | 8 | ||||
-rw-r--r-- | app/class/Page.php | 30 | ||||
-rw-r--r-- | app/view/templates/admin.php | 2 | ||||
-rw-r--r-- | app/view/templates/edit.php | 2 | ||||
-rw-r--r-- | app/view/templates/editleftbar.php | 6 |
8 files changed, 76 insertions, 66 deletions
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 .= '<meta property="og:title" content="' . $this->page->title() . '">' . PHP_EOL; $head .= '<meta property="og:description" content="' . $this->page->description() . '">' . PHP_EOL; - if($this->page->thumbnailexist()) { - $head .= '<meta property="og:image" content="' . Config::domain() . self::thumbnailpath() . $this->page->id() . '.jpg">' . PHP_EOL; + if(!empty($this->page->thumbnail())) { + $head .= '<meta property="og:image" content="' . Config::domain() . self::thumbnailpath() . $this->page->thumbnail() . '">' . PHP_EOL; + } elseif(!empty(Config::defaultthumbnail())) { + $head .= '<meta property="og:image" content="' . Config::domain() . self::thumbnailpath() . Config::defaultthumbnail() . '">' . PHP_EOL; } $head .= '<meta property="og:url" content="' . Config::url() . $this->page->id() . '/">' . 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)) { diff --git a/app/view/templates/admin.php b/app/view/templates/admin.php index ab71957..57abfcc 100644 --- a/app/view/templates/admin.php +++ b/app/view/templates/admin.php @@ -229,7 +229,7 @@ ?> </select> - <label for="defaultfavicon">Default thumbnail</label> + <label for="defaultthumbnail">Default thumbnail</label> <select name="defaultthumbnail" id="defaultthumbnail" form="admin"> <option value="">--no thumbnail--</option> <?php diff --git a/app/view/templates/edit.php b/app/view/templates/edit.php index d0125f2..a27171a 100644 --- a/app/view/templates/edit.php +++ b/app/view/templates/edit.php @@ -17,7 +17,7 @@ <div id="workspace"> - <?php $this->insert('editleftbar', ['page' => $page, 'tablist' => $tablist, 'pagelist' => $pagelist, 'showleftpanel' => $showleftpanel, 'faviconlist' => $faviconlist]) ?> + <?php $this->insert('editleftbar', ['page' => $page, 'tablist' => $tablist, 'pagelist' => $pagelist, 'showleftpanel' => $showleftpanel, 'faviconlist' => $faviconlist, 'thumbnaillist' => $thumbnaillist]) ?> <?php $this->insert('edittabs', ['tablist' => $tablist, 'opentab' => $page->interface(), 'templates' => $page->template()]) ?> <?php $this->insert('editrightbar', ['page' => $page, 'pagelist' => $pagelist, 'showrightpanel' => $showrightpanel, 'templates' => $page->template(), 'tagpagelist' => $tagpagelist, 'lasteditedpagelist' => $lasteditedpagelist, 'editorlist' => $editorlist, 'user' => $user]) ?> diff --git a/app/view/templates/editleftbar.php b/app/view/templates/editleftbar.php index a7a8be6..cf30624 100644 --- a/app/view/templates/editleftbar.php +++ b/app/view/templates/editleftbar.php @@ -62,6 +62,12 @@ ?> </select> + <?php if(!empty($page->thumbnail())) { ?> + <div id="showthumbnail"> + <img src="<?= Wcms\Model::thumbnailpath() . $page->thumbnail() ?>"> + </div> + <?php } ?> + |