Derive parts (title, body) from full contents instead of reading piecemeal.
Assume most pages are small enough so added overhead should be minimal,
adding support for titles after the first line.
+ public $raw, $preface, $title, $body;
+
function __construct($path)
{
$this->page = $path;
$this->link = preg_replace('{(?:/index)?\.html$}', '', $path);
function __construct($path)
{
$this->page = $path;
$this->link = preg_replace('{(?:/index)?\.html$}', '', $path);
+ if (file_exists($this->page)) {
+ $this->raw = file_get_contents($this->page);
+ @list ($this->preface, $this->title, $this->body) =
+ preg_split('{<h2>(.*?)</h2>\s*}', $this->raw, 2, PREG_SPLIT_DELIM_CAPTURE);
+ }
return $this->$col = $this->$col(); # run method and cache
}
return $this->$col = $this->$col(); # run method and cache
}
- function file()
- {
- if (!file_exists($this->page)) return;
- return fopen($this->page, 'r');
- }
-
- function rawtitle()
- {
- return fgets($this->file);
- }
- function title()
- {
- return preg_replace('{<h2>(.*)</h2>\s*}', '\1', $this->rawtitle);
- }
function safetitle()
{
return trim(strip_tags($this->title));
function safetitle()
{
return trim(strip_tags($this->title));
return showdate($this->dateparts);
}
return showdate($this->dateparts);
}
- function body()
- {
- if (!$this->file) return;
- $this->rawtitle;
- return fread($this->file, filesize($this->page) ?: 1);
- }
function story()
{
if ( preg_match('{
function story()
{
if ( preg_match('{
-
- function raw()
- {
- return $this->rawtitle . $this->body;
- }
function teaser()
{
if (preg_match('{<p>(.*?)</p>}s', $this->story, $bodyp)) {
function teaser()
{
if (preg_match('{<p>(.*?)</p>}s', $this->story, $bodyp)) {
if (isset($_REQUEST['goto'])) {
$target = ltrim($_REQUEST['goto'], '/');
$target = new ArchiveArticle("$target.html");
if (isset($_REQUEST['goto'])) {
$target = ltrim($_REQUEST['goto'], '/');
$target = new ArchiveArticle("$target.html");
- if ($target->file) {
- if ($target->title) {
- $Article->title .= ' voor ' . $target->title;
- }
+ if ($target->title) {
+ $Article->title .= ' voor ' . $target->title;
if ($edit) {
$Article->title = $edit;
}
if ($edit) {
$Article->title = $edit;
}
+ if (isset($Article->raw)) {
$Place['description'] = $Article->teaser;
}
$Place[1] = ' <small class="date">'.$Article->date.'</small>';
$Place['description'] = $Article->teaser;
}
$Place[1] = ' <small class="date">'.$Article->date.'</small>';
print '<div class="static">'."\n\n";
$found = FALSE;
print '<div class="static">'."\n\n";
$found = FALSE;
+if (isset($Article->raw)) {
print $Article->raw;
$found = 1;
}
print $Article->raw;
$found = 1;
}