aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-01-30 02:46:19 +0100
committervincent-peugnet <v.peugnet@free.fr>2020-01-30 02:46:19 +0100
commiteab190e895124ef643c2b0574c84f3424857eeac (patch)
tree5dfa29c84a1e378825ddf1c46e16cb6bd85df9dd
parent40ef00fee7286a186673ff3fb26b6802421b2bc4 (diff)
downloadwcms-eab190e895124ef643c2b0574c84f3424857eeac.tar.gz
wcms-eab190e895124ef643c2b0574c84f3424857eeac.zip
default thumbnail fix #49
-rw-r--r--app/class/Controlleradmin.php20
-rw-r--r--app/class/Controllerpage.php33
-rw-r--r--app/class/Modelmedia.php41
-rw-r--r--app/class/Modelrender.php8
-rw-r--r--app/class/Page.php30
-rw-r--r--app/view/templates/admin.php2
-rw-r--r--app/view/templates/edit.php2
-rw-r--r--app/view/templates/editleftbar.php6
-rw-r--r--assets/css/edit.css2
-rw-r--r--assets/css/tagcolors.css32
10 files changed, 93 insertions, 83 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 } ?>
+
diff --git a/assets/css/edit.css b/assets/css/edit.css
index e2c1611..c7fe67b 100644
--- a/assets/css/edit.css
+++ b/assets/css/edit.css
@@ -365,7 +365,7 @@ a.icon {
-div#thumbnail img {
+div#showthumbnail img {
width: 100%;
height: 100%;
max-height: 150px;
diff --git a/assets/css/tagcolors.css b/assets/css/tagcolors.css
index 97a28d4..e0b9727 100644
--- a/assets/css/tagcolors.css
+++ b/assets/css/tagcolors.css
@@ -1,17 +1,17 @@
-.tag_color { background-color: #785ae2; }
-.tag_w { background-color: #d660e7; }
-.tag_sans { background-color: #a44432; }
-.tag_secret { background-color: #f449d8; }
-.tag_fiit { background-color: #d5ccfc; }
-.tag_salle { background-color: #488d4f; }
-.tag_ab { background-color: #6f8934; }
-.tag_template { background-color: #85e961; }
-.tag_tttaaaaggggeee { background-color: #654760; }
-.tag_salle01 { background-color: #57f55c; }
-.tag_event { background-color: #d1bc49; }
-.tag_delire { background-color: #8c967a; }
-.tag_phasme { background-color: #a23e85; }
-.tag_animal { background-color: #c85b73; }
-.tag_blague { background-color: #6ac3f3; }
-.tag_festival { background-color: #67a46c; } \ No newline at end of file
+.tag_color { background-color: #5649df; }
+.tag_w { background-color: #9ff567; }
+.tag_sans { background-color: #4eacbf; }
+.tag_secret { background-color: #50a07e; }
+.tag_fiit { background-color: #c9e952; }
+.tag_salle { background-color: #3fa0c1; }
+.tag_ab { background-color: #aaae52; }
+.tag_template { background-color: #b1c46e; }
+.tag_tttaaaaggggeee { background-color: #39b885; }
+.tag_salle01 { background-color: #b7e36c; }
+.tag_event { background-color: #838e9b; }
+.tag_delire { background-color: #8646f3; }
+.tag_phasme { background-color: #a9be35; }
+.tag_animal { background-color: #9e5988; }
+.tag_blague { background-color: #6aaa8d; }
+.tag_festival { background-color: #c18f57; } \ No newline at end of file