getParentIdNameRelation($parentClass, $childClass, 'has_one'); } function getControllerJoinID() { return $this->controller->{$this->joinField}; } function saveInto(DataObject $record) { $fieldName = $this->name; $fieldNameID = $fieldName . 'ID'; $record->$fieldNameID = 0; if($val = $this->value[ $this->htmlListField ]) { if($val != 'undefined') $record->$fieldNameID = trim($val,","); } $record->write(); } function setOneToOne() { $this->isOneToOne = true; } function isChildSet($childID) { return DataObject::get($this->controllerClass(), '`' . $this->joinField . "` = '$childID'"); } function ExtraData() { $val = $this->getControllerJoinID() ? ','.$this->getControllerJoinID().',' : ''; $inputId = $this->id() . '_' . $this->htmlListEndName; return << HTML; } } class HasOneDataObjectManager_Item extends DataObjectManager_Item { function MarkingCheckbox() { $name = $this->parent->Name() . '[]'; $isOneToOne = $this->parent->isOneToOne; $joinVal = $this->parent->getControllerJoinID(); $childID = $this->item->ID; $disabled = $this->parent->hasMarkingPermission() ? "" : "disabled='disabled'"; if($this->parent->IsReadOnly || ($isOneToOne && $joinVal != $childID && $this->parent->isChildSet($childID))) return "item->ID}\" disabled=\"disabled\"/>"; else if($joinVal == $childID) return "item->ID}\" checked=\"checked\" $disabled />"; else return "item->ID}\" $disabled />"; } } ?>