mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
Removed relational CTFs reliance on DataObject->ClassName
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@63820 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
51447b89ab
commit
1b1751457e
@ -25,13 +25,25 @@ class HasManyComplexTableField extends ComplexTableField {
|
||||
parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin);
|
||||
|
||||
$this->Markable = true;
|
||||
|
||||
$this->joinField = $this->getParentIdName($this->controller->ClassName, $this->sourceClass);
|
||||
|
||||
if($controllerClass = $this->controllerClass()) {
|
||||
$this->joinField = $this->getParentIdName($controllerClass, $this->sourceClass);
|
||||
} else {
|
||||
user_error("Can't figure out the data class of $controller", E_USER_WARNING);
|
||||
}
|
||||
|
||||
Requirements::javascript(SAPPHIRE_DIR . "/javascript/i18n.js");
|
||||
Requirements::javascript(SAPPHIRE_DIR . "/javascript/HasManyFileField.js");
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to determine the DataObject that this field is built on top of
|
||||
*/
|
||||
function controllerClass() {
|
||||
if($this->controller instanceof DataObject) return $this->controller->class;
|
||||
elseif($this->controller instanceof ContentController) return $this->controller->data()->class;
|
||||
}
|
||||
|
||||
function getQuery($limitClause = null) {
|
||||
if($this->customQuery) {
|
||||
$query = $this->customQuery;
|
||||
|
@ -36,7 +36,7 @@ class HasOneComplexTableField extends HasManyComplexTableField {
|
||||
}
|
||||
|
||||
function isChildSet($childID) {
|
||||
return DataObject::get($this->controller->ClassName, '`' . $this->joinField . "` = '$childID'");
|
||||
return DataObject::get($this->controllerClass(), '`' . $this->joinField . "` = '$childID'");
|
||||
}
|
||||
|
||||
function ExtraData() {
|
||||
|
@ -14,7 +14,7 @@ class ManyManyComplexTableField extends HasManyComplexTableField {
|
||||
|
||||
parent::__construct($controller, $name, $sourceClass, $fieldList, $detailFormFields, $sourceFilter, $sourceSort, $sourceJoin);
|
||||
|
||||
$classes = array_reverse(ClassInfo::ancestry($this->controller->ClassName));
|
||||
$classes = array_reverse(ClassInfo::ancestry($this->controllerClass()));
|
||||
foreach($classes as $class) {
|
||||
$singleton = singleton($class);
|
||||
$manyManyRelations = $singleton->uninherited('many_many', true);
|
||||
@ -59,7 +59,7 @@ class ManyManyComplexTableField extends HasManyComplexTableField {
|
||||
if(! $SNG->hasField($k) && ! $SNG->hasMethod('get' . $k))
|
||||
$query->select[] = $k;
|
||||
}
|
||||
$parent = $this->controller->ClassName;
|
||||
$parent = $this->controllerClass();
|
||||
$query->select[] = "IF(`{$this->manyManyParentClass}ID` IS NULL, '0', '1') AS Checked";
|
||||
}
|
||||
return clone $query;
|
||||
|
Loading…
x
Reference in New Issue
Block a user