public function UpdateObjectFromPostedForm($sFormPrefix = '', $sAttList = null, $sTargetState = '') { parent::UpdateObjectFromPostedForm($sFormPrefix, $sAttList, $sTargetState); // And now read the other post parameters... $oAttributeSet = $this->Get('attribute_list'); $aAttributes = array(); while ($oAttribute = $oAttributeSet->Fetch()) { $aAttributes[$oAttribute->Get('attcode')] = $oAttribute; } $aReconcile = utils::ReadPostedParam('reconciliation', array()); $aUpdate = utils::ReadPostedParam('update', array()); $aUpdatePolicy = utils::ReadPostedParam('attr_update_policy', array()); $aReconciliation = utils::ReadPostedParam('attr_reconciliation_attcode', array()); // update_policy cannot be empty, so there is one entry per attribute, use this to iterate // through all the writable attributes foreach ($aUpdatePolicy as $sAttCode => $sValue) { if (!isset($aAttributes[$sAttCode])) { $oAttribute = $this->CreateSynchroAtt($sAttCode); } else { $oAttribute = $aAttributes[$sAttCode]; } $bReconcile = 0; if (isset($aReconcile[$sAttCode])) { $bReconcile = $aReconcile[$sAttCode] == 'on' ? 1 : 0; } $bUpdate = 0; // Default / initial value if (isset($aUpdate[$sAttCode])) { $bUpdate = $aUpdate[$sAttCode] == 'on' ? 1 : 0; } $oAttribute->Set('reconcile', $bReconcile); $oAttribute->Set('update', $bUpdate); $oAttribute->Set('update_policy', $sValue); if ($oAttribute instanceof SynchroAttExtKey) { $oAttribute->Set('reconciliation_attcode', $aReconciliation[$sAttCode]); } elseif ($oAttribute instanceof SynchroAttLinkSet) { } $oAttributeSet->AddObject($oAttribute); } $this->Set('attribute_list', $oAttributeSet); }