58 lines
1.5 KiB
PHP
58 lines
1.5 KiB
PHP
<?php
|
|
|
|
class Workflowitem extends mfBaseModel {
|
|
private $value;
|
|
private $object_id;
|
|
|
|
public function setObjectId($object_id) {
|
|
if(!is_numeric($object_id)) {
|
|
return false;
|
|
}
|
|
$this->object_id = $object_id;
|
|
return true;
|
|
}
|
|
|
|
public function setValue(Workflowvalue $value) {
|
|
$this->value = $value;
|
|
}
|
|
|
|
public function getProperty($name) {
|
|
if($this->$name == null) {
|
|
|
|
if($name == "value") {
|
|
if(!$this->object_id) {
|
|
$this->log->warn(__CLASS__."::getProperty('value'): Object ID not set");
|
|
return null;
|
|
}
|
|
$value = mfValuecache::singleton()->get("wfItemvalue-item-".$this->id."-object-".$this->object_id);
|
|
if($value) {
|
|
$this->value = $value;
|
|
return $value;
|
|
}
|
|
$value = WorkflowvalueModel::getFirst(['item_id' => $this->id, "object_id" => $this->object_id]);
|
|
// explicitly cache empty value
|
|
mfValuecache::singleton()->set("wfItemvalue-item-".$this->id."-object-".$this->object_id, $value);
|
|
if(!$value) {
|
|
$vdata['item_id'] = $this->id;
|
|
$vdata['object_id'] = $this->object_id;
|
|
$value = WorkflowvalueModel::create($vdata);
|
|
|
|
}
|
|
$this->value = $value;
|
|
return $this->value;
|
|
}
|
|
|
|
$classname = ucfirst($name);
|
|
$idfield = $name."_id";
|
|
$this->$name = new $classname($this->$idfield);
|
|
|
|
if($this->$name->id) {
|
|
return $this->$name;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
return $this->$name;
|
|
}
|
|
} |