function &getHardCodedMetadataFromLabel($label, $value = null)
 {
     $md = null;
     switch ($label) {
         case 'title':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_title_name'));
             $md->setLabel('title');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_title_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_STRING);
             $md->setIsRequired(true);
             $md->setIsEmptyAllowed(false);
             $md->setKeepHistory(false);
             $md->setUseIt(true);
             $md->setCanChangeValue(true);
             break;
         case 'description':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_desc_name'));
             $md->setLabel('description');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_desc_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_TEXT);
             $md->setIsRequired(true);
             $md->setIsEmptyAllowed(true);
             $md->setKeepHistory(false);
             $md->setUseIt(true);
             $md->setCanChangeValue(true);
             break;
         case 'owner':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_owner_name'));
             $md->setLabel('owner');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_owner_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_STRING);
             $md->setIsRequired(true);
             $md->setIsEmptyAllowed(true);
             $md->setKeepHistory(true);
             $md->setUseIt(true);
             $md->setCanChangeValue(true);
             break;
         case 'create_date':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_cdate_name'));
             $md->setLabel('create_date');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_cdate_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_DATE);
             $md->setIsRequired(true);
             $md->setIsEmptyAllowed(false);
             $md->setKeepHistory(true);
             $md->setUseIt(true);
             $md->setCanChangeValue(false);
             break;
         case 'update_date':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_udate_name'));
             $md->setLabel('update_date');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_udate_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_DATE);
             $md->setIsRequired(true);
             $md->setIsEmptyAllowed(false);
             $md->setKeepHistory(true);
             $md->setUseIt(true);
             $md->setCanChangeValue(false);
             break;
         case 'status':
             $md = new Docman_ListMetadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_status_name'));
             $md->setLabel('status');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_status_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_LIST);
             $md->setIsRequired(false);
             $md->setIsEmptyAllowed(true);
             $md->setKeepHistory(true);
             $md->setCanChangeValue(true);
             $md->setDefaultValue(PLUGIN_DOCMAN_ITEM_STATUS_NONE);
             break;
         case 'obsolescence_date':
             $md = new Docman_Metadata();
             $md->setName($GLOBALS['Language']->getText('plugin_docman', 'md_odate_name'));
             $md->setLabel('obsolescence_date');
             $md->setDescription($GLOBALS['Language']->getText('plugin_docman', 'md_odate_desc'));
             $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_DATE);
             $md->setIsRequired(false);
             $md->setIsEmptyAllowed(true);
             $md->setKeepHistory(false);
             $md->setCanChangeValue(true);
             $md->setDefaultValue(0);
             break;
     }
     if ($md !== null) {
         $md->setValue($value);
         $md->setSpecial(true);
         $md->setCanChangeName(false);
         $md->setCanChangeIsEmptyAllowed(false);
         $md->setCanChangeDescription(false);
         $md->setGroupId($this->groupId);
     }
     return $md;
 }
 function getItemTypeSearchMetadata()
 {
     // Special case for a fake metadata: item type search
     $md = new Docman_ListMetadata();
     $md->setGroupId($this->groupId);
     $md->setName($GLOBALS['Language']->getText('plugin_docman', 'filters_item_type'));
     $md->setType(PLUGIN_DOCMAN_METADATA_TYPE_LIST);
     $md->setUseIt(PLUGIN_DOCMAN_METADATA_USED);
     $md->setLabel('item_type');
     $md->setIsMultipleValuesAllowed(true);
     $row = array();
     $values = array();
     foreach (array('file', 'wiki', 'embeddedfile', 'empty', 'link', 'folder') as $type) {
         $row['value_id'] = constant('PLUGIN_DOCMAN_ITEM_TYPE_' . strtoupper($type));
         $row['name'] = $GLOBALS['Language']->getText('plugin_docman', 'filters_item_type_' . $type);
         $row['status'] = 'A';
         $love = new Docman_MetadataListOfValuesElement();
         $love->initFromRow($row);
         $values[] = $love;
     }
     $md->setListOfValueElements($values);
     return $md;
 }