/** * 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'; }
/** *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.'; }