diff options
Diffstat (limited to 'app/class')
-rw-r--r-- | app/class/Controllerhome.php | 14 | ||||
-rw-r--r-- | app/class/Metaedit.php | 44 | ||||
-rw-r--r-- | app/class/Modelpage.php | 36 | ||||
-rw-r--r-- | app/class/Routes.php | 1 |
4 files changed, 94 insertions, 1 deletions
diff --git a/app/class/Controllerhome.php b/app/class/Controllerhome.php index 003a325..bb22e57 100644 --- a/app/class/Controllerhome.php +++ b/app/class/Controllerhome.php @@ -6,6 +6,7 @@ class Controllerhome extends Controllerpage { /** @var Modelhome */ protected $modelhome; + /** @var Opt */ protected $opt; /** @var Optlist */ protected $optlist; @@ -125,6 +126,19 @@ class Controllerhome extends Controllerpage } $this->routedirect('home'); } + + public function multiedit() + { + if ($this->user->issupereditor() && isset($_POST['pagesid'])) { + $datas = $_POST['datas'] ?? []; + $reset = $_POST['reset'] ?? []; + $addtag = $_POST['addtag'] ?? []; + foreach ($_POST['pagesid'] as $id) { + $this->pagemanager->pageedit($id, $datas, $reset, $addtag); + } + } + $this->routedirect('home'); + } } ?> diff --git a/app/class/Metaedit.php b/app/class/Metaedit.php new file mode 100644 index 0000000..e21a0c2 --- /dev/null +++ b/app/class/Metaedit.php @@ -0,0 +1,44 @@ +<?php + +namespace Wcms; + +class Pageedit extends Page +{ + protected $resettag; + protected $resetdate; + protected $emptycontent; + + + + + /** + * Edit a page based on object seting + * + * @param Page $page Page to be metaedited + * + * @return Page Edited page object + */ + public function editpage(Page $page) + { + if($this->resettag) { + $page->tag([]); + } + $page->addtag($this->tag); + if($this->resetdate) { + $page->date() + } + $page->secure($this->secure); + $page->templatebody($this->templatebody); + $page->templatecss($this->templatecss); + $page->templatejavascript($this->templatejavascript); + + return $page; + } + +} + + + + + +?>
\ No newline at end of file diff --git a/app/class/Modelpage.php b/app/class/Modelpage.php index 9438c96..3f4dcf4 100644 --- a/app/class/Modelpage.php +++ b/app/class/Modelpage.php @@ -152,11 +152,21 @@ class Modelpage extends Modeldb } } + /** + * Update a page in the database + * + * @todo Check if page already exist before updating ? + * + * @param Page $page The page that is going to be updated + * + * @return bool True if success otherwise, false + * + */ public function update(Page $page) { $pagedata = new Document($page->dry()); $pagedata->setId($page->id()); - $this->repo->store($pagedata); + return $this->repo->store($pagedata); } public function combine(Page $pagea, Page $pageb) @@ -323,4 +333,28 @@ class Modelpage extends Modeldb return $idlist; } + public function pageedit($pageid, $datas, $reset, $addtag) + { + $page = $this->get($pageid); + $page = $this->reset($page, $reset); + $page->hydrate($datas); + $page->addtag($addtag); + $this->update($page); + } + + + public function reset(Page $page, $reset) + { + if($reset['tag']) { + $page->settag([]); + } + if($reset['date']) { + // reset date as now + } + if($reset['datemodif']) { + // reset datemodif as now + } + return $page; + } + } diff --git a/app/class/Routes.php b/app/class/Routes.php index a803bd6..7bd373a 100644 --- a/app/class/Routes.php +++ b/app/class/Routes.php @@ -22,6 +22,7 @@ class Routes ['POST', '/columns', 'Controllerhome#columns', 'homecolumns'], ['GET', '//renderall', 'Controllerhome#renderall', 'homerenderall'], ['POST', '/bookmark', 'Controllerhome#bookmark', 'homebookmark'], + ['POST', '/multiedit', 'Controllerhome#multiedit', 'multiedit'], ['POST', '/upload', 'Controllerpage#upload', 'pageupload'], ['POST', '/!co', 'Controllerconnect#log', 'log'], ['GET', '/!co', 'Controllerconnect#connect', 'connect'], |