From 7c97fe9f6ac712faba8dac4ecf0e2c127038b5d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20W=C3=B6hlken?= <woehlken@quadracom.de>
Date: Fri, 5 Jul 2013 18:23:58 +0200
Subject: [PATCH] [BUGFIX] Category API does not consider multiple tables

Using the Category API with multiple tables, leads to wrong
results due to a missing check for the correct table.

Resolves: #45332
Releases: 6.2, 6.1, 6.0
Change-Id: Iaf5b453acd434ab8d8f58932a2c96385a66abf37
Reviewed-on: https://review.typo3.org/21963
Reviewed-by: Wouter Wolters
Tested-by: Wouter Wolters
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
---
 .../Classes/Category/Collection/CategoryCollection.php   | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/typo3/sysext/core/Classes/Category/Collection/CategoryCollection.php b/typo3/sysext/core/Classes/Category/Collection/CategoryCollection.php
index 2bfe1a05871c..3e16daa870fb 100644
--- a/typo3/sysext/core/Classes/Category/Collection/CategoryCollection.php
+++ b/typo3/sysext/core/Classes/Category/Collection/CategoryCollection.php
@@ -100,7 +100,14 @@ class CategoryCollection extends \TYPO3\CMS\Core\Collection\AbstractRecordCollec
 	protected function getCollectedRecords() {
 		$relatedRecords = array();
 		/** @var $GLOBALS['TYPO3_DB'] \TYPO3\CMS\Core\Database\DatabaseConnection */
-		$resource = $this->getDatabase()->exec_SELECT_mm_query($this->getItemTableName() . '.*', self::$storageTableName, 'sys_category_record_mm', $this->getItemTableName(), 'AND ' . self::$storageTableName . '.uid=' . intval($this->getIdentifier()));
+		$resource = $this->getDatabase()->exec_SELECT_mm_query(
+			$this->getItemTableName() . '.*',
+			self::$storageTableName,
+			'sys_category_record_mm',
+			$this->getItemTableName(),
+			'AND ' . self::$storageTableName . '.uid=' . intval($this->getIdentifier())
+				. ' AND sys_category_record_mm.tablenames = "' . $this->getItemTableName() . '"'
+		);
 		if ($resource) {
 			while ($record = $this->getDatabase()->sql_fetch_assoc($resource)) {
 				$relatedRecords[] = $record;
-- 
GitLab