/**
  * Maps Zotero fields to Omeka elements.
  * 
  * @param Zend_Feed_Element $tr
  */
 protected function _mapFields(Zend_Feed_Element $tr)
 {
     // Only map those field nodes that exist in the mapping array.
     if (!array_key_exists($tr['class'], ZoteroImportPlugin::$zoteroFields)) {
         return;
     }
     $fieldName = $tr['class'];
     $fieldNameLocale = $tr->th();
     $fieldMap = ZoteroImportPlugin::$zoteroFields[$fieldName];
     $elementText = $tr->td();
     // Get the element name.
     if ('creator' == $fieldName) {
         foreach ($fieldMap as $zoteroCreatorName => $creatorMap) {
             if (is_array($creatorMap) && $fieldNameLocale == $creatorMap[1]) {
                 $elementName = $creatorMap[0];
                 break;
             } else {
                 if ($fieldNameLocale == $creatorMap) {
                     $elementName = $creatorMap;
                     break;
                 }
             }
         }
         // Only map those creators that exist in the mapping array.
         if (!isset($elementName)) {
             return;
         }
     } else {
         if (is_array($fieldMap) && $fieldNameLocale == $fieldMap[1]) {
             $elementName = $fieldMap[0];
         } else {
             $elementName = $fieldMap;
         }
     }
     // Map to the Zotero element set. Set HTML to true if this is a Note.
     $this->_elementTexts['Zotero'][$elementName][] = array('text' => $elementText, 'html' => 'Note' == $elementName ? true : false);
     // Map unambiguous fields to the Dublin Core element set.
     switch ($elementName) {
         case 'Subject':
             $this->_elementTexts['Dublin Core']['Subject'][] = array('text' => $elementText, 'html' => false);
             break;
         case 'Publisher':
             $this->_elementTexts['Dublin Core']['Publisher'][] = array('text' => $elementText, 'html' => false);
             break;
         case 'Date':
             $this->_elementTexts['Dublin Core']['Date'][] = array('text' => $elementText, 'html' => false);
             break;
         case 'Rights':
             $this->_elementTexts['Dublin Core']['Rights'][] = array('text' => $elementText, 'html' => false);
             break;
         case 'Language':
             $this->_elementTexts['Dublin Core']['Language'][] = array('text' => $elementText, 'html' => false);
             break;
         case 'Contributor':
             $this->_elementTexts['Dublin Core']['Contributor'][] = array('text' => $elementText, 'html' => false);
             break;
             // Map all the Creator types to DC:Creator (except for Contributor).
         // Map all the Creator types to DC:Creator (except for Contributor).
         case 'Creator':
         case 'Attorney Agent':
         case 'Author':
         case 'Book Author':
         case 'Cartographer':
         case 'Cast Member':
         case 'Commenter':
         case 'Composer':
         case 'Contributor':
         case 'Cosponsor':
         case 'Counsel':
         case 'Director':
         case 'Editor':
         case 'Guest':
         case 'Interviewee':
         case 'Interviewer':
         case 'Inventor':
         case 'Performer':
         case 'Podcaster':
         case 'Presenter':
         case 'Producer':
         case 'Programmer':
         case 'Recipient':
         case 'Reviewed Author':
         case 'Scriptwriter':
         case 'Series Editor':
         case 'Sponsor':
         case 'Translator':
         case 'Words By':
             $this->_elementTexts['Dublin Core']['Creator'][] = array('text' => $elementText, 'html' => false);
             break;
             // Map all the Item types to DC:Type.
         // Map all the Item types to DC:Type.
         case 'Item Type':
         case 'Audio File Type':
         case 'Letter Type':
         case 'Manuscript Type':
         case 'Map Type':
         case 'Post Type':
         case 'Presentation Type':
         case 'Report Type':
         case 'Thesis Type':
         case 'Website Type':
             $this->_elementTexts['Dublin Core']['Type'][] = array('text' => $elementText, 'html' => false);
             break;
         default:
             break;
     }
 }