[TASK] New FAL Indexer Scheduler-Tasks 72/25372/5
authorSteffen Ritter <info@rs-websystems.de>
Wed, 13 Nov 2013 12:14:42 +0000 (13:14 +0100)
committerErnesto Baschny <ernst@cron-it.de>
Sat, 16 Nov 2013 02:53:59 +0000 (03:53 +0100)
This patch adds the indexing scheduler tasks

See: http://wiki.typo3.org/Blueprints/FAL-IndexerRework

Releases: 6.2
Resolves: #53601
Change-Id: I276bc9e02adcb5b4835fdfa80b1171b1bb21ec9f
Reviewed-on: https://review.typo3.org/25372
Reviewed-by: Ernesto Baschny
Tested-by: Ernesto Baschny
typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php
typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php [new file with mode: 0644]
typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php [new file with mode: 0644]
typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php [new file with mode: 0644]
typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php [new file with mode: 0644]
typo3/sysext/scheduler/ext_localconf.php
typo3/sysext/scheduler/locallang.xlf
typo3/sysext/scheduler/mod1/locallang.xlf

index 8485a04..1f47d6d 100644 (file)
@@ -27,6 +27,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  * This class provides Scheduler plugin implementation
  *
  * @author Lorenz Ulrich <lorenz.ulrich@visol.ch>
+ * @deprecated since TYPO3 CMS 6.2 LTS - will be removed 2 versions later
  */
 class FileIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
 
@@ -78,27 +79,22 @@ class FileIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
                $this->paths = $paths;
        }
 
+       /**
+        * Hardcode disabled state
+        *
+        * @return boolean TRUE if task is disabled, FALSE otherwise
+        */
+       public function isDisabled() {
+               return TRUE;
+       }
+
        /**
         * Function execute from the Scheduler
         *
         * @return boolean TRUE on successful execution, FALSE on error
         */
        public function execute() {
-               $successfullyExecuted = TRUE;
-
-               /** @var $fileFactory \TYPO3\CMS\Core\Resource\ResourceFactory */
-               $fileFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory');
-               /** @var $indexerService \TYPO3\CMS\Core\Resource\Service\IndexerService */
-               $indexerService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService');
-
-               // run indexing of every storage
-               $storageRecords = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'sys_file_storage', 'deleted = 0');
-               foreach ($storageRecords as $storageRecord) {
-                       $storageObject = $fileFactory->getStorageObject($storageRecord['uid'], $storageRecord);
-                       $folder = $storageObject->getRootLevelFolder();
-                       $indexerService->indexFilesInFolder($folder);
-               }
-               return $successfullyExecuted;
+               return FALSE;
        }
 
 }
diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php
new file mode 100644 (file)
index 0000000..98727a9
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+namespace TYPO3\CMS\Scheduler\Task;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013 Steffen Ritter <steffen.ritter@typo3.org>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+use TYPO3\CMS\Core\Utility\MathUtility;
+
+/**
+ * Additional BE fields for task which extracts metadata from storage
+ *
+ */
+class FileStorageExtractionAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
+
+       /**
+        * Add additional fields
+        *
+        * @param array $taskInfo Reference to the array containing the info used in the add/edit form
+        * @param object $task When editing, reference to the current task object. Null when adding.
+        * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module)
+        * @return array Array containing all the information pertaining to the additional fields
+        * @throws \InvalidArgumentException
+        */
+       public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
+               if ($task !== NULL && !$task instanceof FileStorageExtractionTask) {
+                       throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275695);
+               }
+               $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task);
+               $additionalFields['scheduler_fileStorageIndexing_fileCount'] = $this->getFileCountField($task);
+               return $additionalFields;
+       }
+
+       /**
+        * Returns a field configuration including a selectbox for available storages
+        *
+        * @param FileStorageExtractionTask $task When editing, reference to the current task object. NULL when adding.
+        * @return array Array containing all the information pertaining to the additional fields
+        */
+       protected function getAllStoragesField(FileStorageExtractionTask $task = NULL) {
+               /** @var \TYPO3\CMS\Core\Resource\ResourceStorage[] $storages */
+               $storages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Resource\StorageRepository')->findAll();
+               $options = array();
+               foreach ($storages as $storage) {
+                       if ($task !== NULL && $task->storageUid === $storage->getUid()) {
+                               $options[] = '<option value="' . $storage->getUid() . '" selected="selected">' . $storage->getName() . '</option>';
+                       } else {
+                               $options[] = '<option value="' . $storage->getUid() . '">' . $storage->getName() . '</option>';
+                       }
+               }
+
+               $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_storage]';
+               $fieldId = 'scheduler_fileStorageIndexing_storage';
+               $fieldHtml = '<select name="' . $fieldName . '" id="' . $fieldId . '">' . implode("\n", $options) . '</select>';
+
+               $fieldConfiguration = array(
+                       'code' => $fieldHtml,
+                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage',
+                       'cshKey' => '_MOD_system_txschedulerM1',
+                       'cshLabel' => $fieldId
+               );
+               return $fieldConfiguration;
+       }
+
+       /**
+        * Returns a field configuration including a input field for the file count
+        *
+        * @param FileStorageExtractionTask $task When editing, reference to the current task object. NULL when adding.
+        * @return array Array containing all the information pertaining to the additional fields
+        */
+       protected function getFileCountField(FileStorageExtractionTask $task = NULL) {
+               $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_fileCount]';
+               $fieldId = 'scheduler_fileStorageIndexing_fileCount';
+               $fieldValue = $task !== NULL ? intval($task->maxFileCount) : 100;
+               $fieldHtml = '<input type="text" name="' . $fieldName . '" id="' . $fieldId . '" value="' . htmlspecialchars($fieldValue) . '" />';
+
+               $fieldConfiguration = array(
+                       'code' => $fieldHtml,
+                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageExtraction.fileCount',
+                       'cshKey' => '_MOD_system_txschedulerM1',
+                       'cshLabel' => $fieldId
+               );
+               return $fieldConfiguration;
+       }
+
+       /**
+        * Validate additional fields
+        *
+        * @param array $submittedData Reference to the array containing the data submitted by the user
+        * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module)
+        * @return boolean True if validation was ok (or selected class is not relevant), false otherwise
+        */
+       public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
+               if (!MathUtility::canBeInterpretedAsInteger($submittedData['scheduler_fileStorageIndexing_storage']) ||
+                       !MathUtility::canBeInterpretedAsInteger($submittedData['scheduler_fileStorageIndexing_fileCount'])) {
+                       return FALSE;
+               } elseif(\TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($submittedData['scheduler_fileStorageIndexing_storage']) === NULL) {
+                       return FALSE;
+               } elseif (!MathUtility::isIntegerInRange($submittedData['scheduler_fileStorageIndexing_fileCount'], 1, 9999)) {
+                       return FALSE;
+               }
+               return TRUE;
+       }
+
+       /**
+        * Save additional field in task
+        *
+        * @param array $submittedData Contains data submitted by the user
+        * @param \TYPO3\CMS\Scheduler\Task\AbstractTask $task Reference to the current task object
+        * @return void
+        * @throws \InvalidArgumentException
+        */
+       public function saveAdditionalFields(array $submittedData, \TYPO3\CMS\Scheduler\Task\AbstractTask $task) {
+               if ($task !== NULL && !$task instanceof FileStorageExtractionTask) {
+                       throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275695);
+               }
+               $task->storageUid = intval($submittedData['scheduler_fileStorageIndexing_storage']);
+               $task->maxFileCount = intval($submittedData['scheduler_fileStorageIndexing_fileCount']);
+       }
+
+}
diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php
new file mode 100644 (file)
index 0000000..54ff3b2
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+namespace TYPO3\CMS\Scheduler\Task;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013 Steffen Ritter <steffen.ritter@typo3.org>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * This task which indexes files in storage
+ *
+ */
+class FileStorageExtractionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
+
+       /**
+        * Storage Uid
+        *
+        * @var integer
+        */
+       public $storageUid = -1;
+
+       /**
+        * FileCount
+        * @var integer
+        */
+       public $maxFileCount = 100;
+
+       /**
+        * Function execute from the Scheduler
+        *
+        * @return boolean TRUE on successful execution, FALSE on error
+        */
+       public function execute() {
+               $success = FALSE;
+               if (intval($this->storageUid) > 0) {
+                       $storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($this->storageUid);
+                       $storage->setEvaluatePermissions(FALSE);
+                       $indexer = $this->getIndexer($storage);
+                       try {
+                               $indexer->runMetaDataExtraction(intval($this->maxFileCount));
+                               $success = TRUE;
+                       } catch (\Exception $e) {
+                               $success = FALSE;
+                       }
+                       $storage->setEvaluatePermissions(TRUE);
+               }
+               return $success;
+       }
+
+       /**
+        * Gets the indexer
+        *
+        * @param \TYPO3\CMS\Core\Resource\ResourceStorage $storage
+        * @return \TYPO3\CMS\Core\Resource\Index\Indexer
+        */
+       protected function getIndexer(\TYPO3\CMS\Core\Resource\ResourceStorage $storage) {
+               return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\Indexer', $storage);
+       }
+
+}
diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php
new file mode 100644 (file)
index 0000000..299f360
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+namespace TYPO3\CMS\Scheduler\Task;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013 Steffen Ritter <steffen.ritter@typo3.org>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * Additional BE fields for tasks which indexes files in a storage
+ *
+ */
+class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
+
+       /**
+        * Add additional fields
+        *
+        * @param array $taskInfo Reference to the array containing the info used in the add/edit form
+        * @param object $task When editing, reference to the current task object. Null when adding.
+        * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module)
+        * @return array Array containing all the information pertaining to the additional fields
+        * @throws \InvalidArgumentException
+        */
+       public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
+               if ($task !== NULL && !$task instanceof FileStorageIndexingTask) {
+                       throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275696);
+               }
+               $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task);
+               return $additionalFields;
+       }
+
+       /**
+        * Add a select field of available storages.
+        *
+        * @param FileStorageIndexingTask $task When editing, reference to the current task object. NULL when adding.
+        * @return array Array containing all the information pertaining to the additional fields
+        */
+       protected function getAllStoragesField(FileStorageIndexingTask $task = NULL) {
+               /** @var \TYPO3\CMS\Core\Resource\ResourceStorage[] $storages */
+               $storages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Resource\StorageRepository')->findAll();
+               $options = array();
+               foreach ($storages as $storage) {
+                       if ($task != NULL && $task->storageUid === $storage->getUid()) {
+                               $options[] = '<option value="' . $storage->getUid() . '" selected="selected">' . $storage->getName() . '</option>';
+                       } else {
+                               $options[] = '<option value="' . $storage->getUid() . '">' . $storage->getName() . '</option>';
+                       }
+               }
+
+               $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_storage]';
+               $fieldId = 'scheduler_fileStorageIndexing_storage';
+               $fieldHtml = '<select name="' . $fieldName . '" id="' . $fieldId . '">' . implode("\n", $options) . '</select>';
+
+               $fieldConfiguration = array(
+                       'code' => $fieldHtml,
+                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage',
+                       'cshKey' => '_MOD_system_txschedulerM1',
+                       'cshLabel' => $fieldId
+               );
+               return $fieldConfiguration;
+       }
+
+       /**
+        * Validate additional fields
+        *
+        * @param array $submittedData Reference to the array containing the data submitted by the user
+        * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module)
+        * @return boolean True if validation was ok (or selected class is not relevant), false otherwise
+        */
+       public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
+               $value = $submittedData['scheduler_fileStorageIndexing_storage'];
+               if (!\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($value)) {
+                       return FALSE;
+               } elseif(\TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($submittedData['scheduler_fileStorageIndexing_storage']) !== NULL) {
+                       return TRUE;
+               }
+               return FALSE;
+       }
+
+       /**
+        * Save additional field in task
+        *
+        * @param array $submittedData Contains data submitted by the user
+        * @param \TYPO3\CMS\Scheduler\Task\AbstractTask $task Reference to the current task object
+        * @return void
+        * @throws \InvalidArgumentException
+        */
+       public function saveAdditionalFields(array $submittedData, \TYPO3\CMS\Scheduler\Task\AbstractTask $task) {
+               if (!$task instanceof FileStorageIndexingTask) {
+                       throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275696);
+               }
+               $task->storageUid = intval($submittedData['scheduler_fileStorageIndexing_storage']);
+       }
+
+}
diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php
new file mode 100644 (file)
index 0000000..c2da3f6
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+namespace TYPO3\CMS\Scheduler\Task;
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2013 Steffen Ritter <steffen.ritter@typo3.org>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * This task tries to find changes in storage and writes them back to DB
+ *
+ */
+class FileStorageIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
+
+       /**
+        * Storage Uid
+        *
+        * @var integer
+        */
+       public $storageUid = -1;
+
+       /**
+        * Function execute from the Scheduler
+        *
+        * @return boolean TRUE on successful execution, FALSE on error
+        */
+       public function execute() {
+               $success = FALSE;
+               if (intval($this->storageUid) > 0) {
+                       $storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($this->storageUid);
+                       $storage->setEvaluatePermissions(FALSE);
+                       $indexer = $this->getIndexer($storage);
+                       try {
+                               $indexer->processChangesInStorages();
+                               $success = TRUE;
+                       } catch (\Exception $e) {
+                               $success = FALSE;
+                       }
+                       $storage->setEvaluatePermissions(TRUE);
+               }
+               return $success;
+       }
+
+       /**
+        * Gets the indexer
+        *
+        * @param \TYPO3\CMS\Core\Resource\ResourceStorage $storage
+        * @return \TYPO3\CMS\Core\Resource\Index\Indexer
+        */
+       protected function getIndexer(\TYPO3\CMS\Core\Resource\ResourceStorage $storage) {
+               return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\Indexer', $storage);
+       }
+
+
+}
index f710a64..87930a1 100644 (file)
@@ -38,6 +38,24 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Sch
        'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.name',
        'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.description'
 );
+
+// Add task to index file in a storage
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\FileStorageIndexingTask'] = array(
+       'extension' => $_EXTKEY,
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageIndexing.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageIndexing.description',
+       'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\FileStorageIndexingAdditionalFieldProvider'
+);
+
+// Add task for extracting metadata from files in a storage
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\FileStorageExtractionTask'] = array(
+       'extension' => $_EXTKEY,
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageExtraction.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageExtraction.description',
+       'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\FileStorageExtractionAdditionalFieldProvider'
+
+);
+
 // Add recycler directory cleanup task. Windows is not supported
 // because "filectime" does not change after moving a file
 if (TYPO3_OS != 'WIN') {
@@ -48,6 +66,7 @@ if (TYPO3_OS != 'WIN') {
                'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\RecyclerGarbageCollectionAdditionalFieldProvider'
        );
 }
+
 // Add table garbage collection task
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask'] = array(
        'extension' => $_EXTKEY,
index 40f11ce..e07e61f 100644 (file)
                                <source>This task calls the garbage collection of configured caching framework caches which use one of the selected backends. This will free some space in cache backends which do not have an internal garbage collection. In case of the default database backend it is advisable to run this task once a day when the database is mostly idle.</source>
                        </trans-unit>
                        <trans-unit id="fileIndexing.name" xml:space="preserve">
-                               <source>File Abstraction Layer: Indexing job</source>
+                               <source>[OBSOLETE] File Abstraction Layer: Indexing job</source>
                        </trans-unit>
                        <trans-unit id="fileIndexing.description" xml:space="preserve">
                                <source>Runs indexing tasks based on an indexing configuration and a storage/folder information.</source>
                        </trans-unit>
+                       <trans-unit id="fileStorageIndexing.name" xml:space="preserve">
+                               <source>File Abstraction Layer: Update storage index</source>
+                       </trans-unit>
+                       <trans-unit id="fileStorageIndexing.description" xml:space="preserve">
+                               <source>Updates the Index/Cache Data of a Storage; only needed if changes to the storage are possible outside the backend (FTP, RemoteStorages).</source>
+                       </trans-unit>
+                       <trans-unit id="fileStorageExtraction.name" xml:space="preserve">
+                               <source>File Abstraction Layer: Extract metadata in storage</source>
+                       </trans-unit>
+                       <trans-unit id="fileStorageExtraction.description" xml:space="preserve">
+                               <source>Extracts metadata for all files in storage which have been changed since last run.</source>
+                       </trans-unit>
                        <trans-unit id="tableGarbageCollection.name" xml:space="preserve">
                                <source>Table garbage collection</source>
                        </trans-unit>
index 5f4fa35..e50c2d6 100644 (file)
                        <trans-unit id="label.start" xml:space="preserve">
                                <source>Start (HH:MM DD-MM-YYYY)</source>
                        </trans-unit>
+                       <trans-unit id="label.fileStorageIndexing.storage" xml:space="preserve">
+                               <source>Storage to index</source>
+                       </trans-unit>
+                       <trans-unit id="label.fileStorageExtraction.fileCount" xml:space="preserve">
+                               <source>Number of files per run</source>
+                       </trans-unit>
                        <trans-unit id="label.tableGarbageCollection.allTables" xml:space="preserve">
                                <source>Clean all available tables</source>
                        </trans-unit>