aboutsummaryrefslogtreecommitdiff
path: root/app/class
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2019-01-23 01:26:57 +0100
committervincent-peugnet <v.peugnet@free.fr>2019-01-23 01:26:57 +0100
commit0c9c2f57c36e4ca9cf0912d0c648bf577021c3d2 (patch)
treeb75e0a61577e22120593966bff7e1f9587624451 /app/class
parent270a0f8798367dd24f3d640f19ff6e8554d22b60 (diff)
downloadwcms-0c9c2f57c36e4ca9cf0912d0c648bf577021c3d2.tar.gz
wcms-0c9c2f57c36e4ca9cf0912d0c648bf577021c3d2.zip
reccursive render option
Diffstat (limited to 'app/class')
-rw-r--r--app/class/config.php11
-rw-r--r--app/class/controllerart.php53
2 files changed, 47 insertions, 17 deletions
diff --git a/app/class/config.php b/app/class/config.php
index 06251ca..39c8f12 100644
--- a/app/class/config.php
+++ b/app/class/config.php
@@ -18,6 +18,7 @@ abstract class Config
protected static $analytics = '';
protected static $externallinkblank = true;
protected static $internallinkblank = false;
+ protected static $reccursiverender = true;
protected static $defaultprivacy = 0;
@@ -145,6 +146,11 @@ abstract class Config
return self::$internallinkblank;
}
+ public static function reccursiverender()
+ {
+ return self::$reccursiverender;
+ }
+
public static function defaultprivacy()
{
return self::$defaultprivacy;
@@ -250,6 +256,11 @@ abstract class Config
self::$internallinkblank = boolval($internallinkblank);
}
+ public static function setreccursiverender($reccursiverender)
+ {
+ self::$reccursiverender = boolval($reccursiverender);
+ }
+
public static function setdefaultprivacy($defaultprivacy)
{
$defaultprivacy = intval($defaultprivacy);
diff --git a/app/class/controllerart.php b/app/class/controllerart.php
index ace7e82..7f6bd34 100644
--- a/app/class/controllerart.php
+++ b/app/class/controllerart.php
@@ -5,7 +5,6 @@ class Controllerart extends Controller
/** @var Art2 */
protected $art;
protected $artmanager;
- protected $renderengine;
protected $fontmanager;
protected $mediamanager;
@@ -69,30 +68,50 @@ class Controllerart extends Controller
$this->setart($id, 'artupdate');
if ($this->importart() && $this->user->iseditor()) {
- $this->renderart();
+ $this->art = $this->renderart($this->art);
$this->artmanager->update($this->art);
}
$this->routedirect('artread/', ['art' => $this->art->id()]);
}
- public function renderart()
+ /**
+ * Render given page
+ *
+ * @var Art2 $art input
+ *
+ * @return Art2 rendered $art
+ */
+ public function renderart(Art2 $art) : Art2
{
$now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
- $this->renderengine = new Modelrender($this->router);
+ $renderengine = new Modelrender($this->router);
- $body = $this->renderengine->renderbody($this->art);
- $head = $this->renderengine->renderhead($this->art);
- $this->art->setrenderbody($body);
- $this->art->setrenderhead($head);
- $this->art->setdaterender($now);
- $this->art->setlinkfrom($this->renderengine->linkfrom());
- $this->art->setlinkto($this->renderengine->linkto());
+ $body = $renderengine->renderbody($art);
+ $head = $renderengine->renderhead($art);
+ $art->setrenderbody($body);
+ $art->setrenderhead($head);
+ $art->setdaterender($now);
+ $art->setlinkfrom($renderengine->linkfrom());
+ $art->setlinkto($renderengine->linkto());
- return ['head' => $head, 'body' => $body];
+ return $art;
}
+ public function reccursiverender(Art2 $art)
+ {
+ $relatedarts = array_filter(array_unique(array_merge($art->linkto(), $art->linkfrom())));
+ $relatedarts = array_diff($relatedarts, [$art->id()]);
+ foreach ($relatedarts as $artid ) {
+ $art = $this->artmanager->get($artid);
+ if($art !== false) {
+ $art = $this->renderart($art);
+ $this->artmanager->update($art);
+ }
+ }
+ }
+
public function read($id)
{
@@ -106,10 +125,12 @@ class Controllerart extends Controller
if ($artexist) {
if ($this->art->daterender() < $this->art->datemodif()) {
- $page = $this->renderart();
- } else {
- $page = ['head' => $this->art->renderhead(), 'body' => $this->art->renderbody()];
+ if(Config::reccursiverender()) {
+ $this->reccursiverender($this->art);
+ }
+ $this->art = $this->renderart($this->art);
}
+ $page = ['head' => $this->art->renderhead(), 'body' => $this->art->renderbody()];
if ($canread) {
$this->art->addaffcount();
if ($this->user->level() < 2) {
@@ -122,8 +143,6 @@ class Controllerart extends Controller
$this->showtemplate('read', $data);
-
-
}
public function edit($id)