This repository has been archived on 2024-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
dokuwiki-objectrepresentation/lib/enko/dokuwiki/objectrepresentation/DokuWikiPage.php

60 lines
2.2 KiB
PHP
Raw Normal View History

<?php
/**
* Created by PhpStorm.
* User: tim
* Date: 12.06.14
* Time: 21:55
*/
namespace enko\dokuwiki\objectrepresentation;
class DokuWikiPage extends DokuWikiNode
{
public $ChangeLog;
/**
* @param $filename
* @param null $parent
*/
public function __construct($filename, $parent = null,$loadChangesets = false, \DateTime $maxChangeSetAge = null)
{
parent::__construct($filename, $parent,$loadChangesets,$maxChangeSetAge);
$this->content = file_get_contents($this->filename);
if (($this->name == 'start') && ($this->parent->name != 'root')) {
$this->parent->content = $this->content;
}
$metadata = p_get_metadata($this->getFullID());
foreach ($metadata as $key => $value) {
$this->setMetaData($key, $value);
}
$this->ChangeLog = new \ArrayObject();
if ($this->loadChangesets) {
// extract changelog
$file = metaFN($this->getFullID(), '.changes');
if (file_exists($file)) {
$changelog_entries = explode("\n", file_get_contents($file));
foreach ($changelog_entries as $raw_entry) {
$entry = parseChangelogLine($raw_entry);
if ((!is_null($this->maxChangeSetAge)) && ($this->maxChangeSetAge->format('U') > $entry['date']))
continue;
2014-06-14 10:24:20 +02:00
$changelog = new DokuWikiChangeset($entry['date'], $entry['extra'], $entry['id'], $entry['ip'], $entry['sum'], $entry['type'], $entry['user'],$this);
$this->ChangeLog->append($changelog);
}
}
2014-06-15 16:40:08 +02:00
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;
});
}
}
}
2014-06-14 10:19:19 +02:00
public function getTitle() {
return strlen($this->getMetaData('title')) > 0 ? $this->getMetaData('title') : $this->getName();
}
}