X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=actions%2Fdoc.php;h=836f039d32128d9696d5bbc07b598155fd803218;hb=de5ff19713a990af197330dd8e4314de465ffe76;hp=0697b25d4f092e224b4ec6a607f1cf6b153b2381;hpb=0cabc70341727a2e017674278a33ddc970e3e2ce;p=quix0rs-gnu-social.git diff --git a/actions/doc.php b/actions/doc.php index 0697b25d4f..836f039d32 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -1,7 +1,19 @@ + * @author Robin Millette + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -17,23 +29,97 @@ * along with this program. If not, see . */ -if (!defined('LACONICA')) { exit(1); } - -require_once('markdown.php'); - -class DocAction extends Action { - - function handle($args) { - parent::handle($args); - $title = $this->trimmed('title'); - $filename = INSTALLDIR.'/doc/'.$title; - if (!file_exists()) { - common_user_error(_t('No such document.')); - return; - } - $output = Markdown(file_get_contents($filename)); - common_show_header(_t(ucfirst($title))); - common_raw($output); - common_show_footer(); - } -} \ No newline at end of file +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Documentation class. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @author Robin Millette + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class DocAction extends Action +{ + var $filename; + var $title; + + /** + * Class handler. + * + * @param array $args array of arguments + * + * @return nothing + */ + function handle($args) + { + parent::handle($args); + + $this->title = $this->trimmed('title'); + $this->output = null; + + if (Event::handle('StartLoadDoc', array(&$this->title, &$this->output))) { + + $this->filename = INSTALLDIR.'/doc-src/'.$this->title; + if (!file_exists($this->filename)) { + $this->clientError(_('No such document.')); + return; + } + + $c = file_get_contents($this->filename); + $this->output = common_markup_to_html($c); + + Event::handle('EndLoadDoc', array($this->title, &$this->output)); + } + + $this->showPage(); + } + + // overrrided to add entry-title class + function showPageTitle() { + $this->element('h1', array('class' => 'entry-title'), $this->title()); + } + + // overrided to add hentry, and content-inner classes + function showContentBlock() + { + $this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); + $this->showPageTitle(); + $this->showPageNoticeBlock(); + $this->elementStart('div', array('id' => 'content_inner', + 'class' => 'entry-content')); + // show the actual content (forms, lists, whatever) + $this->showContent(); + $this->elementEnd('div'); + $this->elementEnd('div'); + } + + /** + * Display content. + * + * @return nothing + */ + function showContent() + { + $this->raw($this->output); + } + + /** + * Page title. + * + * @return page title + */ + function title() + { + return ucfirst($this->title); + } + + function isReadOnly($args) + { + return true; + } +}