
|
| 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- . All rights reserved.
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/ .
|
|