Вы можете сделать это так, подробности внизу:
- Получить все ссылки на файлы.
- Просмотрите их, извлеките ссылочный файл для каждого из них и сохраните только те, в которых поле
mime_type
начинается с image/
.
Есть две вещи, на которые вам, вероятно, следует обратить внимание:
- Поле
mime_type
должно быть обновлено. Для этого проверьте задачу индексации планировщика FAL.
- Представление. В зависимости от количества файлов, которые у вас есть, это может быть намного быстрее сделать с помощью пользовательского оператора SQL, который использует JOIN. Но вы должны делать это только в том случае, если производительность является проблемой.
Как получить все ссылки на файлы:
Во-первых, создайте свой собственный пустой класс ссылки на файл:
namespace Vendor/Extkey/Domain/Model;
class FileReference extends \TYPO3\CMS\Extbase\Domain\Model\FileReference {}
Обязательно сконфигурируйте его в TypoScript для сериализации в таблицу sys_file_reference
:
config.tx_extbase.persistence {
classes {
Vendor\Extkey\Domain\Model\FileReference {
mapping {
tableName = sys_file_reference
}
}
}
}
Добавьте репозиторий для ссылок:
namespace Vendor/Extkey/Domain/Repository;
class FileReferenceRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
public function initializeObject() {
/** @var \TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface */
$defaultQuerySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\QuerySettingsInterface');
$defaultQuerySettings->setRespectStoragePage(FALSE);
$this->setDefaultQuerySettings($defaultQuerySettings);
}
}
Ссылочный класс может быть пустым, но он нужен репозиторию для корректной работы. Убедитесь, что вы добавили настройки запроса по умолчанию для игнорирования идентификатора страницы, чтобы вы получали все не скрытые и не удаленные ссылки на файлы, вызывая $fileReferenceRepository->findAll()
.
Как проверить MIME-тип каждого связанного файла:
Вы можете получить MIME-тип каждой ссылки, позвонив
$fileReference->getOriginalResource()->getMimeType()
Это должно автоматически извлечь исходный файл из хранилища и прочитать его MIME-тип.
person
Jost
schedule
04.03.2015