123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- /**
- * Define a page.
- * @author Valentin CARRUESCO
- * @category Plugin
- * @license copyright
- */
- class WikiPage extends Entity{
- public $id,$label,$content,$state,$path,$category,$slug;
- const PUBLISHED = 'published';
- const DRAFT = 'draft';
- protected $TABLE_NAME = 'wiki_page';
- public $links = array(
- 'category' => 'WikiCategory'
- );
- public $fields =
- array(
- 'id' => 'key',
- 'label' => 'string',
- 'state' => 'string',
- 'category' => 'int',
- 'slug' => 'string',
- 'path' => 'string'
- );
- public static function workspace(){
- return File::dir().'wiki'.SLASH.'pages';
- }
- public static function uploads(){
- return File::dir().'wiki'.SLASH.'uploads';
- }
- public static function path_from_label($label){
- return preg_replace('|[\?\\\/\*\:\|\<\>]|i', '-',$label);
- }
- public function author(){
- return User::byLogin($this->creator)->fullName();
- }
- public function created(){
- return relative_time($this->created);
- }
- public function updater(){
- return User::byLogin($this->updater)->fullName();
- }
- public function updated(){
- return relative_time($this->updated);
- }
- public function html(){
- require_once(__DIR__.SLASH.'lib'.SLASH.'Parsedown.php');
- $markdown = new Parsedown();
- return $markdown->text($this->content);
- }
- public function content(){
- $this->content = file_get_contents(self::workspace().SLASH.wiki_os_encode($this->path));
- }
- }
- ?>
|