private function createNewRecord($dataObjectClassName, $dataObjectFieldName, $fileClassName, $connectionType) { //exceptions.... if (in_array($dataObjectClassName, $this->Config()->get("excluded_classes")) || in_array($fileClassName, $this->Config()->get("excluded_classes"))) { return; } if ($dataObjectFieldName == "ImageTracking" || $dataObjectFieldName == "BackLinkTracking") { return; } //at least one of them is a file... if (in_array($dataObjectClassName, $this->Config()->get("file_classes")) || in_array($fileClassName, $this->Config()->get("file_classes"))) { if (!DB::query("\n\t\t\t\tSELECT COUNT(*)\n\t\t\t\tFROM \"MetaTagCMSControlFileUse\"\n\t\t\t\tWHERE \"DataObjectClassName\" = '{$dataObjectClassName}' AND \"DataObjectFieldName\" = '{$dataObjectFieldName}' AND \"FileClassName\" = '{$fileClassName}'\n\t\t\t")->value()) { $dataObjectIsFile = in_array($dataObjectClassName, $this->Config()->get("file_classes")) ? 1 : 0; $fileIsFile = in_array($fileClassName, $this->Config()->get("file_classes")) ? 1 : 0; for ($i = 0; $i < $dataObjectIsFile + $fileIsFile; $i++) { $computedDataObjectIsFile = false; $computedFileIsFile = false; if ($i == 0 && $dataObjectIsFile) { $computedDataObjectIsFile = true; } if ($i == 1 && $fileIsFile || !$dataObjectIsFile) { $computedFileIsFile = true; } $bothAreFiles = false; if ($dataObjectIsFile && $fileIsFile) { $bothAreFiles = true; } $obj = new MetaTagCMSControlFileUse(); $obj->DataObjectClassName = $dataObjectClassName; $obj->DataObjectFieldName = $dataObjectFieldName; $obj->FileClassName = $fileClassName; $obj->ConnectionType = $connectionType; $obj->DataObjectIsFile = $computedDataObjectIsFile; $obj->FileIsFile = $computedFileIsFile; $obj->BothAreFiles = $bothAreFiles; $obj->IsLiveVersion = 0; $obj->write(); if (is_subclass_of($dataObjectClassName, "SiteTree")) { $obj = new MetaTagCMSControlFileUse(); $obj->DataObjectClassName = $dataObjectClassName . "_Live"; $obj->DataObjectFieldName = $dataObjectFieldName; $obj->FileClassName = $fileClassName; $obj->ConnectionType = $connectionType; $obj->DataObjectIsFile = $computedDataObjectIsFile; $obj->FileIsFile = $computedFileIsFile; $obj->BothAreFiles = $bothAreFiles; $obj->IsLiveVersion = 1; $obj->write(); } } DB::alteration_message("creating new MetaTagCMSControlFileUse: {$dataObjectClassName}, {$dataObjectFieldName}, {$fileClassName}, {$connectionType}"); } } }