[TASK] Add hashcolumn to field configuration of sys_file_processedfile
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Resource / ProcessedFileRepository.php
index f91f35c..e3d5b99 100644 (file)
@@ -5,7 +5,7 @@ use \TYPO3\CMS\Core\Utility;
 /***************************************************************
  *  Copyright notice
  *
- *  (c) 2012 Benjamin Mack <benni@typo3.org>
+ *  (c) 2012-2013 Benjamin Mack <benni@typo3.org>
  *  All rights reserved
  *
  *  This script is part of the TYPO3 project. The TYPO3 project is
@@ -154,7 +154,7 @@ class ProcessedFileRepository extends AbstractRepository {
                        $this->table,
                        'original=' . intval($file->getUid()) .
                                ' AND task_type=' . $this->databaseConnection->fullQuoteStr($taskType, $this->table) .
-                               ' AND configuration=' . $this->databaseConnection->fullQuoteStr(serialize($configuration), $this->table)
+                               ' AND configurationsha1=' . $this->databaseConnection->fullQuoteStr(sha1(serialize($configuration)), $this->table)
                );
 
                if (is_array($databaseRow)) {
@@ -166,6 +166,29 @@ class ProcessedFileRepository extends AbstractRepository {
        }
 
        /**
+        * @param FileInterface $file
+        * @return array<ProcessedFile>
+        * @throws \InvalidArgumentException
+        */
+       public function findAllByOriginalFile(FileInterface $file) {
+               if (!$file instanceof File) {
+                       throw new \InvalidArgumentException('Parameter is no File object but got type "'
+                               . (is_object($file) ? get_class($file) : gettype($file)) . '"', 1382006142);
+               }
+               $whereClause = 'original=' . intval($file->getUid()) . $this->getWhereClauseForEnabledFields();
+               $rows = $this->databaseConnection->exec_SELECTgetRows('*', $this->table, $whereClause);
+
+               $itemList = array();
+               if ($rows !== NULL) {
+                       foreach ($rows as $row) {
+                               $itemList[] = $this->createDomainObject($row);
+                       }
+               }
+               return $itemList;
+       }
+
+
+       /**
         * Removes all array keys which cannot be persisted
         *
         * @param array $data
@@ -176,6 +199,3 @@ class ProcessedFileRepository extends AbstractRepository {
                return array_intersect_key($data, $this->databaseConnection->admin_get_fields($this->table));
        }
 }
-
-
-?>
\ No newline at end of file