2 namespace TYPO3\CMS\Frontend\Category\Collection;
35 public static function create(array $collectionRecord, $fillItems =
false)
39 $collectionRecord[
'table_name'],
40 $collectionRecord[
'field_name']
42 $collection->fromArray($collectionRecord);
44 $collection->loadContents();
63 public static function load($id, $fillItems =
false, $tableName =
'', $fieldName =
'')
65 $collectionRecord = self::getDatabaseConnection()->exec_SELECTgetSingleRow(
67 static::$storageTableName,
68 'uid = ' . (
int)$id . self::getTypoScriptFrontendController()->sys_page->enableFields(static::$storageTableName)
70 $collectionRecord[
'table_name'] = $tableName;
71 $collectionRecord[
'field_name'] = $fieldName;
72 return self::create($collectionRecord, $fillItems);
87 $db = self::getDatabaseConnection();
89 $relatedRecords = array();
91 $where =
'AND ' . self::$storageTableName .
'.uid = ' . (int)$this->
getIdentifier();
93 $where .=
' AND sys_category_record_mm.tablenames = ' . $db->fullQuoteStr(
95 'sys_category_record_mm'
98 $where .=
' AND sys_category_record_mm.fieldname = ' . $db->fullQuoteStr(
100 'sys_category_record_mm'
103 $tsfe = self::getTypoScriptFrontendController();
109 $languageCondition = $languageField .
' IN (0, -1)';
111 if ($tsfe->sys_language_content > 0) {
112 $languageCondition .=
'
113 OR (' . $languageField .
' = ' . (int)$tsfe->sys_language_content .
'
114 AND ' . $this->getItemTableName() .
'.' .
118 $where .=
' AND (' . $languageCondition .
')';
121 $resource = $db->exec_SELECT_mm_query(
123 self::$storageTableName,
124 'sys_category_record_mm',
130 while ($record = $db->sql_fetch_assoc($resource)) {
132 $tsfe->sys_page->versionOL(
137 if (is_array($record) && $tsfe->sys_language_contentOL) {
139 $record = $tsfe->sys_page->getPageOverlay($record);
141 $record = $tsfe->sys_page->getRecordOverlay(
144 $tsfe->sys_language_content,
145 $tsfe->sys_language_contentOL
150 if (is_array($record)) {
151 $relatedRecords[] = $record;
154 $db->sql_free_result($resource);
156 return $relatedRecords;