mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-02 22:28:37 +02:00
BUGFIX: Fixed the code for the unused file list, although the feature is still disabled.
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@99816 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
6be8d8b56b
commit
1c5dc228a7
@ -372,10 +372,10 @@ class Folder extends File {
|
|||||||
new LiteralField("UploadIframe",
|
new LiteralField("UploadIframe",
|
||||||
$this->getUploadIframe()
|
$this->getUploadIframe()
|
||||||
)
|
)
|
||||||
)/*,
|
),
|
||||||
new Tab("UnusedFiles", _t('Folder.UNUSEDFILESTAB', "Unused files"),
|
new Tab("UnusedFiles", _t('Folder.UNUSEDFILESTAB', "Unused files"),
|
||||||
new Folder_UnusedAssetsField($this)
|
new Folder_UnusedAssetsField($this)
|
||||||
)*/
|
)
|
||||||
),
|
),
|
||||||
new HiddenField("ID")
|
new HiddenField("ID")
|
||||||
);
|
);
|
||||||
@ -394,7 +394,7 @@ class Folder extends File {
|
|||||||
*
|
*
|
||||||
* @returns String where clause which will work as filter.
|
* @returns String where clause which will work as filter.
|
||||||
*/
|
*/
|
||||||
public function getUsedFilesList() {
|
public function getUnusedFilesListFilter() {
|
||||||
$result = DB::query("SELECT DISTINCT \"FileID\" FROM \"SiteTree_ImageTracking\"");
|
$result = DB::query("SELECT DISTINCT \"FileID\" FROM \"SiteTree_ImageTracking\"");
|
||||||
$usedFiles = array();
|
$usedFiles = array();
|
||||||
$where = '';
|
$where = '';
|
||||||
@ -403,7 +403,7 @@ class Folder extends File {
|
|||||||
if($result->numRecords() > 0) {
|
if($result->numRecords() > 0) {
|
||||||
while($nextResult = $result->next()) {
|
while($nextResult = $result->next()) {
|
||||||
$where .= $nextResult['FileID'] . ',';
|
$where .= $nextResult['FileID'] . ',';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($classes as $className) {
|
foreach($classes as $className) {
|
||||||
@ -411,26 +411,26 @@ class Folder extends File {
|
|||||||
$ids = $query->execute()->column();
|
$ids = $query->execute()->column();
|
||||||
if(!count($ids)) continue;
|
if(!count($ids)) continue;
|
||||||
|
|
||||||
foreach(singleton($className)->has_one() as $fieldName => $joinClass) {
|
foreach(singleton($className)->has_one() as $relName => $joinClass) {
|
||||||
if($joinClass == 'Image' || $joinClass == 'File') {
|
if($joinClass == 'Image' || $joinClass == 'File') {
|
||||||
foreach($ids as $id) {
|
$fieldName = $relName .'ID';
|
||||||
$object = DataObject::get_by_id($className, (int) $id);
|
$query = singleton($className)->extendedSQL("$fieldName > 0");
|
||||||
if($object && $object->$fieldName != NULL) $usedFiles[] = $object->$fieldName;
|
$query->distinct = true;
|
||||||
unset($object);
|
$query->select = array($fieldName);
|
||||||
}
|
$usedFiles = array_merge($usedFiles, $query->execute()->column());
|
||||||
|
|
||||||
} elseif($joinClass == 'Folder') {
|
} elseif($joinClass == 'Folder') {
|
||||||
// @todo
|
// @todo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($usedFiles as $file) {
|
if($usedFiles) {
|
||||||
$where .= $file->ID . ',';
|
return "\"File\".\"ID\" NOT IN (" . implode(', ', $usedFiles) . ") AND (\"ClassName\" = 'File' OR \"ClassName\" = 'Image')";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return "(\"ClassName\" = 'File' OR \"ClassName\" = 'Image')";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($where == "") return "(\"ClassName\" = 'File' OR \"ClassName\" = 'Image')";
|
|
||||||
$where = substr($where, 0, strlen($where) - 1);
|
|
||||||
$where = "\"File\".\"ID\" NOT IN (" . $where . ") AND (\"ClassName\" = 'File' OR \"ClassName\" = 'Image')";
|
|
||||||
return $where;
|
return $where;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -493,7 +493,7 @@ class Folder_UnusedAssetsField extends CompositeField {
|
|||||||
* @returns AssetTableField
|
* @returns AssetTableField
|
||||||
*/
|
*/
|
||||||
protected function getAssetList() {
|
protected function getAssetList() {
|
||||||
$where = $this->folder->getUsedFilesList();
|
$where = $this->folder->getUnusedFilesListFilter();
|
||||||
$assetList = new AssetTableField(
|
$assetList = new AssetTableField(
|
||||||
$this->folder,
|
$this->folder,
|
||||||
"AssetList",
|
"AssetList",
|
||||||
|
Loading…
Reference in New Issue
Block a user