Skip to content

Instantly share code, notes, and snippets.


Torben Hansen derhansen

View GitHub Profile
derhansen / CropVariantUtility.php
Created December 24, 2021 12:10
TYPO3 CMS CropVariantUtility to manually calculate the default crop variant string for a given image
View CropVariantUtility.php
namespace Derhansen\Typo3Dev\Utility;
use TYPO3\CMS\Core\Imaging\ImageManipulation\Area;
use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariantCollection;
use TYPO3\CMS\Core\Imaging\ImageManipulation\InvalidConfigurationException;
use TYPO3\CMS\Core\Resource\File;
derhansen / SwitchableControllerActionsPluginUpdater.php
Created March 20, 2021 11:23
SwitchableControllerActionsPluginUpdater for TYPO3 extension "Plain FAQ"
View SwitchableControllerActionsPluginUpdater.php
* This file is part of the Extension "plain_faq" for TYPO3 CMS.
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
derhansen / gist:c56ff4df72d6b83121bea99bd83271cd
Created March 9, 2019 06:39
TYPO3 - Extbase stream file from resourceStorage using streamFile PSR-7 Response
View gist:c56ff4df72d6b83121bea99bd83271cd
public function downloadAction()
$storage = $this->resourceFactory->getDefaultStorage();
$file = $storage->getFile('test.jpg');
$response = $storage->streamFile($file, true, 'test-filename.jpg');
protected function sendResponse($response)
derhansen / InlineReadOnly
Last active July 24, 2019 17:13
TYPO3 InlineReadOnly FormDataProvider
View InlineReadOnly
namespace Vendor\Extension\Backend\Form\FormDataProvider;
use TYPO3\CMS\Backend\Form\FormDataProviderInterface;
* Disables all IRRE Controls and sets fields of IRRE records to readonly
* Note: Depending on the TYPO3 backend user permissions, a user may still be able to edit record content
* (e.g. if table is available in record list and user has sufficient rights to edit data). But for inline integration,
derhansen / gist:1eee357e472be595692bf655a28a1557
Created February 4, 2018 18:48
Extended LocalizationUtility for TYPO3
View gist:1eee357e472be595692bf655a28a1557
namespace Vendor\Namespace\Utility;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility as LocalizationUtilityExtbase;
* Class LocalizationUtility
class LocalizationUtility extends LocalizationUtilityExtbase
View gist:735520628bc2a2e103d9d0dfa8ca3723
### Keybase proof
I hereby claim:
* I am derhansen on github.
* I am derhansen ( on keybase.
* I have a public key ASC1s3gh8BEHLu7mPaudKjFkQNCPbDlV4u0ty5tpMyf9lwo
To claim this, I am signing this object:
View rootpage.php
protected function getRootPage($uid)
/** @var PageRepository $pageRepository */
$pageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(PageRepository::class);
$rootLinePages = $pageRepository->getRootLine($uid);
$rootPage = null;
foreach ($rootLinePages as $page) {
if ($page['is_siteroot'] === '1') {
$rootPage = $page;
View ExtbaseMySQLOrderFunction.php
// The use statements for the fileheader
use MyVendor\MyExtension\Domain\Model\Mymodel;
use TYPO3\CMS\Core\Database\ConnectionPool;
use TYPO3\CMS\Core\Database\Query\QueryBuilder;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper;
* Returns all matching records for the given list of uids and applies the uidList sorting for the result
View setup.txt
plugin.tx_myext_myplugin {
persistence {
storagePid = {$plugin.tx_myext_myplugin.persistence.storagePid}