- $html = ob_get_clean();
- $date = shownewsdate($url);
- ob_start();
- print $title ?: '\1';
- print '[[1]]';
-
- $title = sprintf(
- $link ? '<h3><a href="/%2$s">%s</a></h3>' : '<h2>%s</h2>',
- getoutput([1 => ' <small class="date">'.$date.'</small>']),
- preg_replace('/\.html$/', '', $url)
- );
- return preg_replace('{<h2>(.*?)</h2>}', $title, $html);
+ function __construct($path)
+ {
+ $this->page = $path;
+ $this->link = preg_replace('/\.html$/', '', $path);
+ }
+
+ function __get($col)
+ {
+ return $this->$col = $this->$col(); # run method and cache
+ }
+
+ function file()
+ {
+ return fopen($this->page, 'r');
+ }
+
+ function title()
+ {
+ return preg_replace('{<h2>(.*)</h2>\s*}', '\1', fgets($this->file));
+ }
+
+ function safetitle()
+ {
+ return strip_tags($this->title);
+ }
+
+ function last()
+ {
+ return filemtime($this->page);
+ }
+
+ function lastiso()
+ {
+ return date(DATE_ATOM, $this->last);
+ }
+
+ function dateparts()
+ {
+ preg_match('</(\d{4})/(\d{2})-(\d{2})->', $this->page, $ymd);
+ return $ymd;
+ }
+
+ function dateiso()
+ {
+ return implode('-', $this->dateparts());
+ }
+
+ function date()
+ {
+ return showdate($this->dateparts);
+ }
+
+ function body()
+ {
+ return fread($this->file, filesize($this->page));
+ }
+
+ function image()
+ {
+ foreach (['jpg', 'png'] as $ext) {
+ if (file_exists("{$this->link}.$ext")) {
+ return "{$this->link}.$ext";
+ }
+ }
+ }
+
+ function thumb($size = '300x')
+ {
+ if ($this->image)
+ return "thumb/$size/{$this->image}";
+ }