diff options
author | Daniel Baumann <mail@daniel-baumann.ch> | 2024-12-12 19:12:35 +0100 |
---|---|---|
committer | Daniel Baumann <mail@daniel-baumann.ch> | 2024-12-12 19:47:48 +0100 |
commit | 5f2a14189a67184d00fcf600b2302466edc44221 (patch) | |
tree | 8262b7f7ddb87da2b1f6c2db04b00bf173553d38 /templates/55/ad-hominem/rest/pageinfo.php | |
parent | Initial commit. (diff) | |
download | dokuwiki-templates-extra-upstream.tar.xz dokuwiki-templates-extra-upstream.zip |
Adding upstream version 20241201.upstream/20241201upstream
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
Diffstat (limited to 'templates/55/ad-hominem/rest/pageinfo.php')
-rw-r--r-- | templates/55/ad-hominem/rest/pageinfo.php | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/templates/55/ad-hominem/rest/pageinfo.php b/templates/55/ad-hominem/rest/pageinfo.php new file mode 100644 index 0000000..2280181 --- /dev/null +++ b/templates/55/ad-hominem/rest/pageinfo.php @@ -0,0 +1,84 @@ +<?php +/** + * DokuWiki Information about a page in JSON format + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Sascha Leib <sascha.leib (at) kolmio.com> + */ + +header('Content-Type: application/json'); +header('Access-Control-Allow-Origin: *'); + +//ini_set('display_errors', '1'); + +/* connect to DokuWiki: */ +if(!defined('NOSESSION')) define('NOSESSION',true); // we do not use a session or authentication here (better caching) +if (!defined('DOKU_INC')) { define('DOKU_INC', __DIR__ . '/../../../../'); } +require_once(DOKU_INC . 'inc/init.php'); + +/* get the output style (can be 'preview' or 'all') */ +$style = strtolower($_GET['v']); +if ($style !== 'preview') { $style = 'all'; } + +/* initialize the storage: */ +$result = [ + 'type' => 'error' +]; + +/* find the page ID */ +$id = $_GET['id']; + +if ($id !== null) { + + /* get all metadata; */ + $meta = p_get_metadata($id); + + if ($meta['title'] && $meta['title'] !== null) { + + if ($style == 'preview') { + $result['type'] = 'preview'; + } else { + $result['type'] = 'standard'; + $result['pageid'] = $id; + $result['lang'] = $conf['lang']; + } + + $result['title'] = $meta['title']; + + /* The page URL(s) */ + $url = wl($id); + + if ($style == 'preview') { + $result['content_urls'] = [ + 'desktop' => [ + 'page' => wl($id) + ] + ]; + } else { + $url = $conf['baseurl'] . wl($id); + $set = [ + 'page' => $url, + 'revisions' => $url . '?do=revisions', + 'edit' => $url . '?do=edit' + ]; + $result['content_urls'] = [ + 'desktop' => $set, + 'mobile' => $set + ]; + } + + /* extract the first paragraph:*/ + $parts = explode("\n", $meta['description']['abstract']); + $result['extract'] = $parts[2]; + $result['extract_html'] = '<p>'.$parts[2].'</p>'; + + } else { + $result['extract'] = 'Error: page does not exist.'; + $result['extract_html'] = '<p><strong>' . $result['extract'] . '</strong></p>'; + } + // $result['conf'] = $conf; /* WARNING: this may expose your configuration to the Internet. Use only for debugging! */ + // $result['meta'] = $meta; /* uncomment if you need additional meta information */ +} + +/* output the result: */ +echo json_encode($result);
\ No newline at end of file |