From 8bda3d90f6cd7d0f47b8ffa1e919cf2f3b2bd40d Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sat, 14 Jun 2014 10:19:19 +0200 Subject: [PATCH 1/4] Generate the title for the page. --- .../dokuwiki/objectrepresentation/DokuWikiChangeset.php | 8 +++++++- lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/enko/dokuwiki/objectrepresentation/DokuWikiChangeset.php b/lib/enko/dokuwiki/objectrepresentation/DokuWikiChangeset.php index 97b10bc..67451a4 100755 --- a/lib/enko/dokuwiki/objectrepresentation/DokuWikiChangeset.php +++ b/lib/enko/dokuwiki/objectrepresentation/DokuWikiChangeset.php @@ -18,6 +18,7 @@ class DokuWikiChangeset { private $sum; private $extra; private $content; + private $page; /** * @return mixed @@ -75,6 +76,10 @@ class DokuWikiChangeset { return $this->type; } + public function getPage() { + return $this->page; + } + /** * @return mixed */ @@ -83,7 +88,7 @@ class DokuWikiChangeset { return $this->user; } - function __construct($date,$extra, $id, $ip, $sum, $type, $user) + function __construct($date,$extra, $id, $ip, $sum, $type, $user, DokuWikiPage $page) { $this->date = new \DateTime(); $this->date->setTimestamp($date); @@ -94,6 +99,7 @@ class DokuWikiChangeset { $this->type = $type; $this->user = $user; $this->content = rawWiki($id,$this->date->format('U')); + $this->page = $page; } diff --git a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php index fdffa68..c78dad3 100755 --- a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php +++ b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php @@ -35,10 +35,14 @@ class DokuWikiPage extends DokuWikiNode $changelog_entries = explode("\n", file_get_contents($file)); foreach ($changelog_entries as $raw_entry) { $entry = parseChangelogLine($raw_entry); - $changelog = new DokuWikiChangeset($entry['date'], $entry['extra'], $entry['id'], $entry['ip'], $entry['sum'], $entry['type'], $entry['user']); + $changelog = new DokuWikiChangeset($entry['date'], $entry['extra'], $entry['id'], $entry['ip'], $entry['sum'], $entry['type'], $entry['user'],$this); $this->ChangeLog->append($changelog); } } } + + public function getTitle() { + return strlen($this->getMetaData('title')) > 0 ? $this->getMetaData('title') : $this->getName(); + } } \ No newline at end of file From 040a3fbd8af686f440ac30eff1451be0218bc8d3 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sat, 14 Jun 2014 10:24:20 +0200 Subject: [PATCH 2/4] fix typo --- lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php index eca314d..caf5f5c 100755 --- a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php +++ b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php @@ -38,7 +38,7 @@ class DokuWikiPage extends DokuWikiNode $entry = parseChangelogLine($raw_entry); if ((!is_null($this->maxChangeSetAge)) && ($this->maxChangeSetAge->format('U') > $entry['date'])) continue; - $changelog = new DokuWikiChangeset($entry['date'], $entry['extra'], $entry['id'], $entry['ip'], $entry['sum'], $entry['type'], $entry['user'],$page); + $changelog = new DokuWikiChangeset($entry['date'], $entry['extra'], $entry['id'], $entry['ip'], $entry['sum'], $entry['type'], $entry['user'],$this); $this->ChangeLog->append($changelog); } } From 56ce743994220670647387f59d6a004b25a49b28 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sun, 15 Jun 2014 16:39:47 +0200 Subject: [PATCH 3/4] Suply a getter for the node parent. --- lib/enko/dokuwiki/objectrepresentation/DokuWikiNode.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/enko/dokuwiki/objectrepresentation/DokuWikiNode.php b/lib/enko/dokuwiki/objectrepresentation/DokuWikiNode.php index 138f805..b49bce2 100755 --- a/lib/enko/dokuwiki/objectrepresentation/DokuWikiNode.php +++ b/lib/enko/dokuwiki/objectrepresentation/DokuWikiNode.php @@ -83,6 +83,13 @@ abstract class DokuWikiNode return $this->name; } + /** + * @return DokuWikiNameSpace + */ + public function getParent() { + return $this->parent; + } + /** * @param $filename * @param null $parent From 174d217f1145164578cd55f5d46aa08055354b59 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sun, 15 Jun 2014 16:40:08 +0200 Subject: [PATCH 4/4] Sort the changelog. --- lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php index caf5f5c..eacc13a 100755 --- a/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php +++ b/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php @@ -42,6 +42,14 @@ class DokuWikiPage extends DokuWikiNode $this->ChangeLog->append($changelog); } } + if ($this->ChangeLog->count() > 0) { + $this->ChangeLog->uasort(function(DokuWikiChangeset $a, DokuWikiChangeset $b){ + if ($a->getDate() == $b->getDate()) { + return 0; + } + return ($a->getDate() > $b->getDate()) ? -1 : 1; + }); + } } }