From 7571cef86ee48c928e615bc0822c8ab7e4eb2fd3 Mon Sep 17 00:00:00 2001
From: Silvio <silvio@devlet.com.br>
Date: Mon, 7 Jun 2010 17:19:43 -0300
Subject: BiblioIsisDb: changes in the tag scheme to deal with undefined
 subfields

---
 classes/BiblioIsisDb.php | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

(limited to 'classes/BiblioIsisDb.php')

diff --git a/classes/BiblioIsisDb.php b/classes/BiblioIsisDb.php
index e902a93..6ae5827 100644
--- a/classes/BiblioIsisDb.php
+++ b/classes/BiblioIsisDb.php
@@ -155,9 +155,17 @@ class BiblioIsisDb implements IsisDb {
         // Subfield handling.
         if (isset($this->format['fields'][$key]['subfields']) && is_array($data[$name])) {
           foreach ($data[$name] as $subkey => $subvalue) {
-            $subname               = $this->format['fields'][$key]['subfields'][$subkey];
+            if (isset($this->format['fields'][$key]['subfields'][$subkey])) {
+              $subname = $this->format['fields'][$key]['subfields'][$subkey];
+            } else {
+              $subname = $subkey;
+            }
+
             $data[$name][$subname] = $subvalue;
-            unset($data[$name][$subkey]);
+
+            if ($subkey != $subname) {
+              unset($data[$name][$subkey]);
+            }
           }
         }
       }
@@ -187,6 +195,7 @@ class BiblioIsisDb implements IsisDb {
       $this->format['fields'][$key]['repeat'] == FALSE   && is_array($value)) {
         return $value[0];
       }
+
     return $value;
   }
 
-- 
cgit v1.2.3