Sequenzia/app/models/WikiPageVersion.php
2013-10-26 18:06:58 -05:00

47 lines
1.6 KiB
PHP
Executable File

<?php
class WikiPageVersion extends Rails\ActiveRecord\Base
{
public function author()
{
return User::find_name($this->user_id);
}
public function diff($target)
{
$what = [];
if ($target) {
if ($this->body != $target->body)
$what[] = 'body';
if ($this->title != $target->title)
$what[] = 'title';
if ($this->is_locked != $target->is_locked)
$what[] = 'is_locked';
}
if ($this->version == 1)
$what[] = 'initial';
return $what;
}
public function prev()
{
WikiPageVersion::where('wiki_page_id = ? AND version = ?', $this->wiki_page_id, $this->version - 1)->first();
}
public function pretty_title()
{
return str_replace('_', ' ', $this->title);
}
public function toXml(array $options = array())
{
$options = array_flip($options);
$options['wiki_page_version'] = 'root';
return toXml(array('id' => $this->$this->id, 'created_at' => $this->$this->created_at, 'updated_at' => $this->updated_at, 'title' => $this->title, 'body' => $this->body, 'updater_id' => $this->user_id, 'locked' => $this->is_locked, 'version' => $this->version, 'post_id' => $this->post_id), $options);
}
public function asJson(array $args = array())
{
return array('id' => $this->id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'title' => $this->title, 'body' => $this->body, 'updater_id' => $this->user_id, 'locked' => $this->is_locked, 'version' => $this->version, 'post_id' => $this->post_id);
}
}