diff options
author | chris <chris@jalakai.co.uk> | 2007-01-26 21:41:45 +0100 |
---|---|---|
committer | chris <chris@jalakai.co.uk> | 2007-01-26 21:41:45 +0100 |
commit | fc18c0fbae82b1bd3d6b74b486798753afea2c73 (patch) | |
tree | 85e5dc8591713b49288184c02917eecd7e52c5cd /inc/parserutils.php | |
parent | b243dd2716602bb66b5e4377c4fd7c1b6e710058 (diff) | |
download | rpg-fc18c0fbae82b1bd3d6b74b486798753afea2c73.tar.gz rpg-fc18c0fbae82b1bd3d6b74b486798753afea2c73.tar.bz2 |
fix FS#1010
darcs-hash:20070126204145-9b6ab-db7eba9c6045584a381eb83ae48787627973532b.gz
Diffstat (limited to 'inc/parserutils.php')
-rw-r--r-- | inc/parserutils.php | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/inc/parserutils.php b/inc/parserutils.php index b5dbce4dd..68ccd3231 100644 --- a/inc/parserutils.php +++ b/inc/parserutils.php @@ -229,15 +229,14 @@ function p_get_metadata($id, $key=false, $render=false){ // accessed several times. This may catch a few other pages, but that shouldn't be an issue. $cache = ($ID == $id); $meta = p_read_metadata($id, $cache); - $file = metaFN($id, '.meta'); // metadata has never been rendered before - do it! - if ((!file_exists($file) && file_exists(wikiFN($id))) || ($render && !$meta['description']['abstract'])){ + if ($render && !$meta['description']['abstract']){ $meta = p_render_metadata($id, $meta); - io_saveFile($file, serialize($meta)); + io_saveFile(metaFN($id, '.meta'), serialize($meta)); // sync cached copies, including $INFO metadata - if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta; + if (!empty($cache_metadata[$id])) $cache_metadata[$id] = $meta; if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; } } @@ -559,11 +558,19 @@ function p_render($mode,$instructions,& $info){ /** * Gets the first heading from a file * + * @param string $id dokuwiki page id + * @param bool $render rerender if first heading not known + * default: false -- this protects against loops where $id requires a + * first heading further pages which eventually result + * in a request for a first heading from a page already + * in the chain (FS#1010) + * + * * @author Andreas Gohr <andi@splitbrain.org> */ -function p_get_first_heading($id){ +function p_get_first_heading($id, $render=false){ global $conf; - return $conf['useheading'] ? p_get_metadata($id,'title') : null; + return $conf['useheading'] ? p_get_metadata($id,'title',$render) : null; } /** |