mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
BUGFIX Don't call LinkTracking/ImageTracking relationships in HTMLEditorField->saveInto() unless we have internal links/files to save. This helps to improve CMS saving times on records with many HTMLEditorField instances
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@114139 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
19f7484144
commit
eeed9ce189
@ -138,24 +138,31 @@ class HtmlEditorField extends TextareaField {
|
||||
}
|
||||
|
||||
// Save file & link tracking data.
|
||||
if($record->ID && $record->many_many('LinkTracking') && $tracker = $record->LinkTracking()) {
|
||||
|
||||
if($record->ID && $record->many_many('LinkTracking')) {
|
||||
$filter = sprintf('"FieldName" = \'%s\' AND "SiteTreeID" = %d', $this->name, $record->ID);
|
||||
DB::query("DELETE FROM \"$tracker->tableName\" WHERE $filter");
|
||||
DB::query("DELETE FROM \"SiteTree_LinkTracking\" WHERE $filter");
|
||||
|
||||
if($linkedPages) foreach($linkedPages as $item) {
|
||||
$SQL_fieldName = Convert::raw2sql($this->name);
|
||||
DB::query("INSERT INTO \"SiteTree_LinkTracking\" (\"SiteTreeID\",\"ChildID\", \"FieldName\")
|
||||
VALUES ($record->ID, $item, '$SQL_fieldName')");
|
||||
if($linkedPages) {
|
||||
$tracker = $record->LinkTracking();
|
||||
foreach($linkedPages as $item) {
|
||||
$SQL_fieldName = Convert::raw2sql($this->name);
|
||||
DB::query("INSERT INTO \"SiteTree_LinkTracking\" (\"SiteTreeID\",\"ChildID\", \"FieldName\")
|
||||
VALUES ($record->ID, $item, '$SQL_fieldName')");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($record->ID && $record->many_many('ImageTracking') && $tracker = $record->ImageTracking()) {
|
||||
if($record->ID && $record->many_many('ImageTracking')) {
|
||||
$filter = sprintf('"FieldName" = \'%s\' AND "SiteTreeID" = %d', $this->name, $record->ID);
|
||||
DB::query("DELETE FROM \"$tracker->tableName\" WHERE $filter");
|
||||
DB::query("DELETE FROM \"SiteTree_ImageTracking\" WHERE $filter");
|
||||
|
||||
$fieldName = $this->name;
|
||||
if($linkedFiles) foreach($linkedFiles as $item) {
|
||||
$tracker->add($item, array('FieldName' => $this->name));
|
||||
if($linkedFiles) {
|
||||
$tracker = $record->ImageTracking();
|
||||
foreach($linkedFiles as $item) {
|
||||
$tracker->add($item, array('FieldName' => $this->name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user