/**
  * Install default profile
  *
  * Install default item types, elements, and profiles for easy setup
  *
  * @param array An array of parameters with names and descriptions
  *  of the default values we are setting up
  * @return void
  */
 public function installDefaults($params)
 {
     if (!($itemType = get_db()->getTable('ItemType')->findByName($params['typeName']))) {
         $itemType = new ItemType();
         $itemType->name = $params['typeName'];
         $itemType->description = $params['typeDesc'];
         $id = $itemType->save();
     }
     require_once dirname(dirname(dirname(__FILE__))) . '/models/MmdProfile.php';
     $profile = new MmdProfile();
     $profile->setViewer($this);
     $profile->name = $params['profileName'];
     $profile->viewer = $this->name;
     foreach ($this->_paramInfo as $param) {
         //$element = new Element();
         //check if element exists in Dublin Core
         $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Dublin Core', $param['name']);
         if (empty($element)) {
             $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Dublin Core', ucfirst($param['name']));
         }
         if (empty($element)) {
             $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Dublin Core', strtoupper($param['name']));
         }
         if (empty($element)) {
             $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Item Type Metadata', $param['name']);
         }
         if (empty($element)) {
             $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Item Type Metadata', ucfirst($param['name']));
         }
         if (empty($element)) {
             $element = get_db()->getTable('Element')->findByElementSetNameAndElementName('Item Type Metadata', strtoupper($param['name']));
         }
         if (empty($element)) {
             $element = new Element();
             $element->setElementSet('Item Type Metadata');
             $element->setName($param['name']);
             $element->setDescription($param['description']);
             try {
                 $element->save();
             } catch (Exception $e) {
                 print_r($e);
                 die;
             }
         }
         $itemType->addElementById($element->id);
         if (isset($param['default']) && $param['default'] !== '') {
             $profile->setAuxParam($param['name'], $param['default'], 1);
         }
         if (isset($param['files'])) {
             $multiple = isset($param['multiple']) && $param['multiple'] != 'single' && $param['multiple'] ? 1 : 0;
             $fileparam = array('multiple' => isset($param['multiple']) && $param['multiple'] != 'single' && $param['multiple'] ? 1 : 0, 'extensions' => $param['files']);
             $profile->setAuxParam($param['name'], $fileparam, 2);
         }
         $profile->setAuxParam($param['name'], $element->id, 0);
     }
     $itemType->save();
     $item_type_id = $itemType->id;
     $profile->save();
     $profile_id = $profile->id;
     require_once dirname(dirname(dirname(__FILE__))) . '/models/MmdAssign.php';
     $assign = new MmdAssign();
     $assign->item_type_id = $item_type_id;
     $assign->profile_id = $profile_id;
     $assign->filetypes = $this->_allowedFiletypes;
     $assign->save();
     return 'Defaults installed successfully';
 }
Esempio n. 2
0
 /**
  *Process the form data and execute actions as necessary
  *
  *@return bool $success true if successful 
  */
 public static function ProcessPost()
 {
     if (!isset($_REQUEST['mmdProfileId'])) {
         return;
     }
     $profile_id = $_REQUEST['mmdProfileId'];
     if ($profile_id > 0) {
         $profile = get_record_by_id('MmdProfile', $profile_id);
     } else {
         $profile = new MmdProfile();
     }
     $profile->name = $_REQUEST['mmdProfileName'];
     $profile->description = $_REQUEST['mmdProfileDesc'];
     $profile->viewer = $_REQUEST['mmdProfileViewer'];
     if (isset($_REQUEST['MmdParamElement']) && is_array($_REQUEST['MmdParamElement'])) {
         $files = isset($_REQUEST['MmdParamFiles']) ? $_REQUEST['MmdParamFiles'] : array();
         foreach ($_REQUEST['MmdParamElement'] as $paramName => $elementId) {
             if ($elementId > 0) {
                 $profile->setAuxParam($paramName, $elementId, 0);
             }
             if (isset($_REQUEST[$profile->viewer . '_' . $paramName]) && $_REQUEST[$profile->viewer . '_' . $paramName] != '') {
                 $profile->setAuxParam($paramName, $_REQUEST[$profile->viewer . '_' . $paramName], 1);
             }
             if (isset($files[$paramName])) {
                 //		  die($_REQUEST['extensions_'.$paramName]);
                 $profile->setAuxParam($paramName, array('extensions' => $_REQUEST['extensions_' . $paramName]), 2);
             }
         }
     }
     $profile->save();
     return 'Display Profile saved successfully.';
 }