X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fdoc.php;h=8d6c16c594e3c787c65f7f1f7dc5df0d7d6e1c12;hb=c909f351d07c50c433cd59fef00f41a67767ce9e;hp=20cf9e2810b66c9790f87d95f183bfc0aa98277b;hpb=59a0b2a82da418f688faf182407146d9e7a7af7a;p=quix0rs-gnu-social.git diff --git a/actions/doc.php b/actions/doc.php index 20cf9e2810..8d6c16c594 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -48,7 +48,7 @@ class DocAction extends Action var $filename = null; var $title = null; - function prepare($args) + function prepare(array $args=array()) { parent::prepare($args); @@ -69,7 +69,7 @@ class DocAction extends Action * * @return nothing */ - function handle($args) + function handle(array $args=array()) { parent::handle($args); $this->showPage(); @@ -96,11 +96,11 @@ class DocAction extends Action */ function showContentBlock() { - $this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); + $this->elementStart('div', array('id' => 'content', 'class' => 'h-entry')); $this->showPageTitle(); $this->showPageNoticeBlock(); $this->elementStart('div', array('id' => 'content_inner', - 'class' => 'entry-content')); + 'class' => 'e-content')); // show the actual content (forms, lists, whatever) $this->showContent(); $this->elementEnd('div'); @@ -138,7 +138,7 @@ class DocAction extends Action * * @return boolean read-only flag (false) */ - function isReadOnly($args) + function isReadOnly(array $args=array()) { return true; } @@ -147,80 +147,87 @@ class DocAction extends Action { if (Event::handle('StartLoadDoc', array(&$this->title, &$this->output))) { - $this->filename = $this->getFilename(); + $paths = DocFile::defaultPaths(); - if (empty($this->filename)) { + $docfile = DocFile::forTitle($this->title, $paths); + + if (empty($docfile)) { // TRANS: Client exception thrown when requesting a document from the documentation that does not exist. // TRANS: %s is the non-existing document. throw new ClientException(sprintf(_('No such document "%s".'), $this->title), 404); } - $c = file_get_contents($this->filename); - - $this->output = common_markup_to_html($c); + $this->output = $docfile->toHTML(); Event::handle('EndLoadDoc', array($this->title, &$this->output)); } } - function getFilename() + function showLocalNav() { - $localDef = null; - $local = null; - - $site = StatusNet::currentSite(); - - if (!empty($site) && file_exists(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title)) { - $localDef = INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title; - - $local = glob(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title.'.*'); - if ($local === false) { - // Some systems return false, others array(), if dir didn't exist. - $local = array(); - } - } else { - if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) { - $localDef = INSTALLDIR.'/local/doc-src/'.$this->title; - } - - $local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'); - if ($local === false) { - $local = array(); - } - } - - if (count($local) || isset($localDef)) { - return $this->negotiateLanguage($local, $localDef); - } - - if (file_exists(INSTALLDIR.'/doc-src/'.$this->title)) { - $distDef = INSTALLDIR.'/doc-src/'.$this->title; - } - - $dist = glob(INSTALLDIR.'/doc-src/'.$this->title.'.*'); - if ($dist === false) { - $dist = array(); - } - - if (count($dist) || isset($distDef)) { - return $this->negotiateLanguage($dist, $distDef); - } - - return null; + $menu = new DocNav($this); + $menu->show(); } +} - function negotiateLanguage($filenames, $defaultFilename=null) +class DocNav extends Menu +{ + function show() { - // XXX: do this better + $stub = new HomeStubNav($this->action); + $this->submenu(_m('MENU','Home'), $stub); - $langcode = common_language(); + $docs = new DocListNav($this->action); + $this->submenu(_m('MENU','Docs'), $docs); + } +} - foreach ($filenames as $filename) { - if (preg_match('/\.'.$langcode.'$/', $filename)) { - return $filename; - } +class DocListNav extends Menu +{ + function getItems() + { + $items = array(); + + if (Event::handle('StartDocsMenu', array(&$items))) { + + $items = array(array('doc', + array('title' => 'help'), + _m('MENU', 'Help'), + _('Getting started'), + 'nav_doc_help'), + array('doc', + array('title' => 'about'), + _m('MENU', 'About'), + _('About this site'), + 'nav_doc_about'), + array('doc', + array('title' => 'faq'), + _m('MENU', 'FAQ'), + _('Frequently asked questions'), + 'nav_doc_faq'), + array('doc', + array('title' => 'contact'), + _m('MENU', 'Contact'), + _('Contact info'), + 'nav_doc_contact'), + array('doc', + array('title' => 'tags'), + _m('MENU', 'Tags'), + _('Using tags'), + 'nav_doc_tags'), + array('doc', + array('title' => 'groups'), + _m('MENU', 'Groups'), + _('Using groups'), + 'nav_doc_groups'), + array('doc', + array('title' => 'api'), + _m('MENU', 'API'), + _('RESTful API'), + 'nav_doc_api')); + + Event::handle('EndDocsMenu', array(&$items)); } - - return $defaultFilename; + return $items; } }