Merged from branches/2.3

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@78410 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sean Harvey 2009-06-04 06:20:32 +00:00
parent 99d12ac936
commit 11d6f3c0b0
2 changed files with 12 additions and 8 deletions

View File

@ -83,11 +83,13 @@ class XMLDataFormatter extends DataFormatter {
$xml .= "<$relName linktype=\"has_many\" href=\"$objHref/$relName.xml\">\n"; $xml .= "<$relName linktype=\"has_many\" href=\"$objHref/$relName.xml\">\n";
$items = $obj->$relName(); $items = $obj->$relName();
if ($items) {
foreach($items as $item) { foreach($items as $item) {
//$href = Director::absoluteURL(self::$api_base . "$className/$id/$relName/$item->ID"); //$href = Director::absoluteURL(self::$api_base . "$className/$id/$relName/$item->ID");
$href = Director::absoluteURL(self::$api_base . "$relClass/$item->ID"); $href = Director::absoluteURL(self::$api_base . "$relClass/$item->ID");
$xml .= "<$relClass href=\"$href.xml\" id=\"{$item->ID}\"></$relClass>\n"; $xml .= "<$relClass href=\"$href.xml\" id=\"{$item->ID}\"></$relClass>\n";
} }
}
$xml .= "</$relName>\n"; $xml .= "</$relName>\n";
} }
@ -100,10 +102,12 @@ class XMLDataFormatter extends DataFormatter {
$xml .= "<$relName linktype=\"many_many\" href=\"$objHref/$relName.xml\">\n"; $xml .= "<$relName linktype=\"many_many\" href=\"$objHref/$relName.xml\">\n";
$items = $obj->$relName(); $items = $obj->$relName();
if ($items) {
foreach($items as $item) { foreach($items as $item) {
$href = Director::absoluteURL(self::$api_base . "$relClass/$item->ID"); $href = Director::absoluteURL(self::$api_base . "$relClass/$item->ID");
$xml .= "<$relClass href=\"$href.xml\" id=\"{$item->ID}\"></$relClass>\n"; $xml .= "<$relClass href=\"$href.xml\" id=\"{$item->ID}\"></$relClass>\n";
} }
}
$xml .= "</$relName>\n"; $xml .= "</$relName>\n";
} }
} }

View File

@ -1943,7 +1943,7 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
// At the very least, the type has changed // At the very least, the type has changed
$this->changed[$fieldName] = 1; $this->changed[$fieldName] = 1;
if(!isset($this->record[$fieldName]) || $this->record[$fieldName] != $val) { if((!isset($this->record[$fieldName]) && $val) || (isset($this->record[$fieldName]) && $this->record[$fieldName] != $val)) {
// Value has changed as well, not just the type // Value has changed as well, not just the type
$this->changed[$fieldName] = 2; $this->changed[$fieldName] = 2;
} }