summaryrefslogtreecommitdiff
path: root/inc/parserutils.php
diff options
context:
space:
mode:
authorAdrian Lang <lang@cosmocode.de>2010-03-17 16:40:36 +0100
committerAdrian Lang <lang@cosmocode.de>2010-03-23 13:06:20 +0100
commitebf65d37ec50cce097ad8cddfb43acc5ea5aea21 (patch)
treefc43c124c5876e711e8a7e2025102466ff1f7fa7 /inc/parserutils.php
parent12c96ace70f7a177cc40000f905fa3cab633c04a (diff)
downloadrpg-ebf65d37ec50cce097ad8cddfb43acc5ea5aea21.tar.gz
rpg-ebf65d37ec50cce097ad8cddfb43acc5ea5aea21.tar.bz2
Rewrite p_get_metadata to not issue a E_Notice
Diffstat (limited to 'inc/parserutils.php')
-rw-r--r--inc/parserutils.php20
1 files changed, 9 insertions, 11 deletions
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 4102ee711..cb8bc079d 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -222,7 +222,7 @@ function p_get_instructions($text){
*
* @author Esther Brunner <esther@kaffeehaus.ch>
*/
-function p_get_metadata($id, $key=false, $render=false){
+function p_get_metadata($id, $key='', $render=false){
global $ID, $INFO, $cache_metadata;
// cache the current page
@@ -241,19 +241,17 @@ function p_get_metadata($id, $key=false, $render=false){
if (!empty($INFO) && ($id == $INFO['id'])) { $INFO['meta'] = $meta['current']; }
}
- // filter by $key
- if ($key){
- list($key, $subkey) = explode(' ', $key, 2);
- $subkey = trim($subkey);
+ $val = $meta['current'];
- if ($subkey) {
- return isset($meta['current'][$key][$subkey]) ? $meta['current'][$key][$subkey] : null;
+ // filter by $key
+ foreach(explode(' ', trim($key), 2) as $cur_key) {
+ $cur_key = trim($cur_key);
+ if (!isset($val[$cur_key])) {
+ return null;
}
-
- return isset($meta['current'][$key]) ? $meta['current'][$key] : null;
+ $val = $val[$cur_key];
}
-
- return $meta['current'];
+ return $val;
}
/**