119 lines
3.5 KiB
PHP
119 lines
3.5 KiB
PHP
<?php
|
|
require_once dirname(__FILE__) . '/../CommandImpl.php';
|
|
class FileMaker_Command_Edit_Implementation extends FileMaker_Command_Implementation {
|
|
var $_fields = array ();
|
|
var $_modificationId = null;
|
|
var $V6d6e1fd2;
|
|
function FileMaker_Command_Edit_Implementation($V0ab34ca9, $Vc6140495, $Va6ec9c02, $Va0af1e2b = array ()) {
|
|
FileMaker_Command_Implementation::FileMaker_Command_Implementation($V0ab34ca9, $Vc6140495);
|
|
$this->_recordId = $Va6ec9c02;
|
|
$this->V6d6e1fd2= null;
|
|
foreach ($Va0af1e2b as $V06e3d36f => $V2063c160) {
|
|
if (!is_array($V2063c160)) {
|
|
$V2063c160 = array (
|
|
$V2063c160
|
|
);
|
|
}
|
|
$this->_fields[$V06e3d36f] = $V2063c160;
|
|
}
|
|
}
|
|
function & execute() {
|
|
$V21ffce5b = $this->_getCommandParams();
|
|
if (empty ($this->_recordId)) {
|
|
$Vcb5e100e = new FileMaker_Error($this->_fm, 'Edit commands require a record id.');
|
|
return $Vcb5e100e;
|
|
}
|
|
if (!count($this->_fields)) {
|
|
if ($this->V6d6e1fd2== null) {
|
|
$Vcb5e100e = new FileMaker_Error($this->_fm, 'There are no changes to make.');
|
|
return $Vcb5e100e;
|
|
}
|
|
}
|
|
|
|
if ($this->_fm->getProperty('prevalidate')) {
|
|
$Vcb5e111f = & $this->_fm->getLayout($this->_layout);
|
|
$Vb0689411 = new FileMaker_Error_Validation($this->_fm);
|
|
foreach ($Vcb5e111f->getFields() as $V9f7d0ff7 => $Vc6140945) {
|
|
if (isset ($this->_fields[$V9f7d0ff7])) {
|
|
$V6d6e1ff1 = $this->_fields[$V9f7d0ff7];
|
|
foreach ($V6d6e1ff1 as $V6d6e1ff2) {
|
|
$Vb0689411 = $Vc6140945->validate($V6d6e1ff2);
|
|
if (FileMaker :: isError($Vb0689411)) {
|
|
return $Vb0689411;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$Vc6140495 = & $this->_fm->getLayout($this->_layout);
|
|
if (FileMaker :: isError($Vc6140495)) {
|
|
return $Vc6140495;
|
|
}
|
|
$V21ffce5b['-edit'] = true;
|
|
if ($this->V6d6e1fd2== null) {
|
|
foreach ($this->_fields as $V972bf3f0 => $Vee0525e4) {
|
|
if (strpos($V972bf3f0, '.') !== false) {
|
|
list ($Vb068931c, $V11e868ac) = explode('.', $V972bf3f0, 2);
|
|
$V11e868ac = '.' . $V11e868ac;
|
|
} else {
|
|
$Vb068931c = $V972bf3f0;
|
|
$V06e3d36f = $Vc6140495->getField($V972bf3f0);
|
|
if (FileMaker :: isError($V06e3d36f)) {
|
|
return $V06e3d36f;
|
|
}
|
|
if ($V06e3d36f->isGlobal()) {
|
|
$V11e868ac = '.global';
|
|
} else {
|
|
$V11e868ac = '';
|
|
}
|
|
}
|
|
foreach ($Vee0525e4 as $V6a992d55 => $V3a6d0284) {
|
|
$V21ffce5b[$Vb068931c . '(' . ($V6a992d55 +1) . ')' . $V11e868ac] = $V3a6d0284;
|
|
}
|
|
}
|
|
}
|
|
if ($this->V6d6e1fd2!= null) {
|
|
$V21ffce5b['-delete.related'] = $this->V6d6e1fd2;
|
|
}
|
|
$V21ffce5b['-recid'] = $this->_recordId;
|
|
if ($this->_modificationId) {
|
|
$V21ffce5b['-modid'] = $this->_modificationId;
|
|
}
|
|
$V0f635d0e = $this->_fm->_execute($V21ffce5b);
|
|
if (FileMaker :: isError($V0f635d0e)) {
|
|
return $V0f635d0e;
|
|
}
|
|
return $this->_getResult($V0f635d0e);
|
|
}
|
|
function setField($V06e3d36f, $V2063c160, $V6d786dc7 = 0) {
|
|
$this->_fields[$V06e3d36f][$V6d786dc7] = $V2063c160;
|
|
return $V2063c160;
|
|
}
|
|
function setFieldFromTimestamp($V06e3d36f, $Vd7e6d55b, $V6d786dc7 = 0) {
|
|
$Vc6140495 = & $this->_fm->getLayout($this->_layout);
|
|
if (FileMaker :: isError($Vc6140495)) {
|
|
return $Vc6140495;
|
|
}
|
|
$V06e3d36f = & $Vc6140495->getField($V06e3d36f);
|
|
if (FileMaker :: isError($V06e3d36f)) {
|
|
return $V06e3d36f;
|
|
}
|
|
switch ($V06e3d36f->getResult()) {
|
|
case 'date' :
|
|
return $this->setField($V972bf3f0, date('m/d/Y', $Vd7e6d55b), $V6d786dc7);
|
|
case 'time' :
|
|
return $this->setField($V972bf3f0, date('H:i:s', $Vd7e6d55b), $V6d786dc7);
|
|
case 'timestamp' :
|
|
return $this->setField($V972bf3f0, date('m/d/Y H:i:s', $Vd7e6d55b), $V6d786dc7);
|
|
}
|
|
return new FileMaker_Error($this->_fm, 'Only time, date, and timestamp fields can be set to the value of a timestamp.');
|
|
}
|
|
function setModificationId($Vf048d909) {
|
|
$this->_modificationId = $Vf048d909;
|
|
}
|
|
function _setdeleteRelated($V2063c160) {
|
|
$this->V6d6e1fd2= $V2063c160;
|
|
}
|
|
}
|