/** * Used as a helper function in simple conditional fieldset * administration, this function either returns the existing value * instance for a lookup, or creates a new value instance and * returns that. */ function &getOrCreateValueInstanceForLookup(&$oLookup) { $oLookup =& KTUtil::getObject('MetaData', $oLookup); $oValueInstance =& KTValueInstance::getByLookupSingle($oLookup); if (PEAR::isError($oValueInstance)) { return $oValueInstance; } // If we got a value instance, return it. if (!is_null($oValueInstance)) { return $oValueInstance; } // Else create one and return it. return KTValueInstance::createFromArray(array('fieldid' => $oLookup->getDocFieldId(), 'fieldvalueid' => $oLookup->getId())); }
function do_useBehaviourAndAssign() { $parent_behaviour = KTUtil::arrayGet($_REQUEST, 'parent_behaviour'); $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id'); $field_id = KTUtil::arrayGet($_REQUEST, 'field_id'); $behaviour_id = KTUtil::arrayGet($_REQUEST, 'behaviour_id'); $lookups_to_assign = KTUtil::arrayGet($_REQUEST, 'lookups_to_assign'); // array $oBehaviour =& $this->oValidator->validateBehaviour($behaviour_id); $aValueInstanceIds = array(); foreach ($lookups_to_assign as $iLookupId) { $res = $oValueInstance =& KTValueInstance::createFromArray(array('fieldid' => $field_id, 'behaviourid' => $oBehaviour->getId(), 'fieldvalueid' => abs($iLookupId))); $aValueInstanceIds[] = $res->getId(); } if ($parent_behaviour) { $oParentBehaviour =& $this->oValidator->validateBehaviour($parent_behaviour); $sTable = KTUtil::getTableName('field_behaviour_options'); $aOptions = array('noid' => true); foreach ($aValueInstanceIds as $iId) { $res = DBUtil::autoInsert($sTable, array('behaviour_id' => $oParentBehaviour->getId(), 'field_id' => $field_id, 'instance_id' => $iId), $aOptions); } } header('Content-type: application/xml'); $oTemplating =& KTTemplating::getSingleton(); $oTemplate =& $oTemplating->loadTemplate('ktcore/metadata/conditional/ajax_complex_use_behaviour_and_assign'); return $oTemplate->render(); }