From ebf65d37ec50cce097ad8cddfb43acc5ea5aea21 Mon Sep 17 00:00:00 2001
From: Adrian Lang <lang@cosmocode.de>
Date: Wed, 17 Mar 2010 16:40:36 +0100
Subject: [PATCH] Rewrite p_get_metadata to not issue a E_Notice

---
 inc/parserutils.php | 20 +++++++++-----------
 1 file 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;
 }
 
 /**
-- 
GitLab