X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fdoc.php;h=95f76fb9dd94e3cbbe15b066f18e8d6e8d996f29;hb=25198a8d4cee5b2182f1ecb99192a4108a01afa4;hp=459f5f09683ca013af2ffa7335fd06b4fb7a9f4c;hpb=6781f95c733ed4d678fc4c09926efe195e590359;p=quix0rs-gnu-social.git diff --git a/actions/doc.php b/actions/doc.php index 459f5f0968..95f76fb9dd 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -1,5 +1,4 @@ element('h1', array('class' => 'entry-title'), $this->title()); @@ -96,7 +94,6 @@ class DocAction extends Action * * @return void. */ - function showContentBlock() { $this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); @@ -117,7 +114,6 @@ class DocAction extends Action * * @return void */ - function showContent() { $this->raw($this->output); @@ -142,7 +138,6 @@ class DocAction extends Action * * @return boolean read-only flag (false) */ - function isReadOnly($args) { return true; @@ -152,64 +147,19 @@ class DocAction extends Action { if (Event::handle('StartLoadDoc', array(&$this->title, &$this->output))) { - $this->filename = $this->getFilename(); + $paths = DocFile::defaultPaths(); - if (empty($this->filename)) { - throw new ClientException(sprintf(_('No such document "%s"'), $this->title), 404); - } + $docfile = DocFile::forTitle($this->title, $paths); - $c = file_get_contents($this->filename); + 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); + } - $this->output = common_markup_to_html($c); + $this->output = $docfile->toHTML(); Event::handle('EndLoadDoc', array($this->title, &$this->output)); } } - - function getFilename() - { - 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) { - // Some systems return false, others array(), if dir didn't exist. - $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; - } - - function negotiateLanguage($filenames, $defaultFilename=null) - { - // XXX: do this better - - $langcode = common_language(); - - foreach ($filenames as $filename) { - if (preg_match('/\.'.$langcode.'$/', $filename)) { - return $filename; - } - } - - return $defaultFilename; - } }