function &getFields() { return DocumentField::getByFieldset($this); }
function _upgradeSavedSearch($aSearch) { $aMapping = array('-1' => 'ktcore.criteria.name', '-6' => 'ktcore.criteria.id', '-2' => 'ktcore.criteria.title', '-3' => 'ktcore.criteria.creator', '-4' => 'ktcore.criteria.datecreated', '-5' => 'ktcore.criteria.documenttype', '-7' => 'ktcore.criteria.datemodified', '-8' => 'ktcore.criteria.size', '-9' => 'ktcore.criteria.content', '-10' => 'ktcore.criteria.workflowstate', '-13' => 'ktcore.criteria.discussiontext', '-12' => 'ktcore.criteria.searchabletext', '-11' => 'ktcore.criteria.transactiontext'); $aFieldsets =& KTFieldset::getList('disabled != true'); foreach ($aFieldsets as $oFieldset) { $aFields =& DocumentField::getByFieldset($oFieldset); foreach ($aFields as $oField) { $sNamespace = $oFieldset->getNamespace() . '.' . $oField->getName(); $sId = (string) $oField->getId(); $aMapping[$sId] = $sNamespace; } } foreach (array_keys($aSearch['subgroup']) as $sgkey) { $sg =& $aSearch['subgroup'][$sgkey]; foreach (array_keys($sg['values']) as $vkey) { $item =& $sg['values'][$vkey]; $type = $item['type']; $toreplace = 'bmd' . ((int) $type < 0 ? '_' : '') . abs((int) $type); $item['type'] = $aMapping[$type]; $nData = array(); foreach ($item['data'] as $k => $v) { $k = str_replace($toreplace, $aMapping[$type], $k); $nData[$k] = $v; } $item['data'] = $nData; } } return $aSearch; }
function do_changeToSimple() { $this->startTransaction(); $oFieldset =& $this->oValidator->validateFieldset($_REQUEST['fFieldsetId']); $oFieldset->setIsComplex(false); $res = $oFieldset->update(); $this->oValidator->notError($res, array('redirect_to' => array('manageConditional', 'fFieldsetId=' . $oFieldset->getId()), 'message' => _kt('Error changing to simple'))); $aFields = DocumentField::getByFieldset($oFieldset); if (!empty($aFields)) { $aFieldIds = array(); foreach ($aFields as $oField) { $aFieldIds[] = $oField->getId(); } // value instances $sTable = KTUtil::getTableName('field_value_instances'); $aQuery = array("DELETE FROM {$sTable} WHERE field_id IN (" . DBUtil::paramArray($aFieldIds) . ")", $aFieldIds); $res = DBUtil::runQuery($aQuery); //$this->addInfoMessage('value instances: ' . print_r($res, true)); // behaviours $sTable = KTUtil::getTableName('field_behaviours'); $aQuery = array("DELETE FROM {$sTable} WHERE field_id IN (" . DBUtil::paramArray($aFieldIds) . ")", $aFieldIds); $res = DBUtil::runQuery($aQuery); //$this->addInfoMessage('behaviours: ' . print_r($res, true)); } $this->oValidator->notError($res, array('redirect_to' => array('manageConditional', 'fFieldsetId=' . $oFieldset->getId()), 'message' => _kt('Error changing to simple'))); KTEntityUtil::clearAllCaches('KTFieldBehaviour'); KTEntityUtil::clearAllCaches('KTValueInstance'); $this->commitTransaction(); $this->addInfoMessage(_kt('Changed to simple')); redirect($this->sParentUrl); exit(0); }