|
PntDatabaseConnection |
PntDbClassDescriptor |
PntDbError |
PntDbObject |
PntQueryHandler |
Template |
|
getDeleteErrorMessages |
__construct |
addDbFieldProps |
addVerifyOnDeleteValues |
checkValueInOptions |
copyValuesOf |
delete |
getClassDescriptorClass |
getFilters |
getLabel |
getLabelSeparator |
getLabelSort |
getOnDeleteErrorMessage |
getOnDeleteProps |
getPropsForCheckOptions |
getPropsForRecurseCopy |
getSaveErrorMessages |
getTableName |
getValueNoOptionErrorMessage |
getValueWithIdNoOptionErrorMessage |
initFromData |
initMissingFields |
initPropertyDescriptors |
isNew |
isPersistent |
loadData |
newQueryHandler |
pntDelete |
pntSacve. If you need to
* do aditional work that ::save normally does, you need to override this |
recurseCopyFrom |
recurseDelete |
registerCopyFrom |
save |
|
/** This method is called by ObjectDeleteAction before delete() is called.
* If the result of this method is not empty,
* delete() is not called and the error messages are set to the page forwarded to.
* As of version 2.0.alpha this method adds error messages for
* multi value properties onDelete = 'c' and recurses for multi value properties
* onDelete is set
* @return arrray of String with error messages, or empty array if none
* @param array of PntObjects $cascading from which the caller is cascading by the paths from each
* @throws PntErorr
*/
function ()) {
$result = array();
forEach ($this->($cascading) as $propName => $prop) {
$values = $prop->($this, false); //do not use global filter
if ($prop->() == 'c') {
if (count($values) > 0)
$result[] = $this->($prop, $values);
} else {
if (empty($cascading)) {
$nextPath = $propName;
} else {
end($cascading);
$nextPath = key($cascading).'.'.$propName;
}
$nextCascading = $cascading; //copy
$nextCascading[$nextPath]=$this;
forEach(array_keys($values) as $key)
$result = array_merge($result, $values[$key]->($nextCascading));
}
}
return $result;
}
|
Copyright (c) MetaClass, 2003-
This code is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
Click here for a copy of the license or see http://www.gnu.org/licenses/ .
|
|