]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/doc.php
isReadOnly() now takes arguments
[quix0rs-gnu-social.git] / actions / doc.php
index 0697b25d4f092e224b4ec6a607f1cf6b153b2381..e6508030b658770e3009df0d47959886d4b89d52 100644 (file)
@@ -1,5 +1,17 @@
 <?php
-/*
+
+/**
+ * Documentation action.
+ *
+ * PHP version 5
+ *
+ * @category Action
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @author   Robin Millette <millette@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link     http://laconi.ca/
+ *
  * Laconica - a distributed open-source microblogging tool
  * Copyright (C) 2008, Controlez-Vous, Inc.
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-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('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Documentation class.
+ *
+ * @category Action
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @author   Robin Millette <millette@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link     http://laconi.ca/
+ */
+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->filename = INSTALLDIR.'/doc-src/'.$this->title;
+        if (!file_exists($this->filename)) {
+            $this->clientError(_('No such document.'));
+            return;
+        }
+        $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()
+    {
+        $c      = file_get_contents($this->filename);
+        $output = common_markup_to_html($c);
+        $this->raw($output);
+    }
+
+    /**
+     * Page title.
+     *
+     * @return page title
+     */
+    function title()
+    {
+        return ucfirst($this->title);
+    }
+
+    function isReadOnly($args)
+    {
+        return true;
+    }
+}