Skip to content

Instantly share code, notes, and snippets.

View kitzberger's full-sized avatar

Philipp Kitzberger kitzberger

View GitHub Profile
@kitzberger
kitzberger / .bashrc
Created March 28, 2023 10:58
Scan for LLL keys that are not being directly accessed (anymore)
# Scan for LLL keys that are not being directly accessed (anymore)
# Called like this: t3-lll-scan packages/my_ext/*.xlf
t3-lll-scan() {
files=$(git ls-files $1)
for file in $files
do
echo "Processing file: $file"
labels=$(sed -n -e 's/^\s\+<trans-unit id="\([^"]\+\)".\+$/\1/p' $file)
for label in $labels
do
@kitzberger
kitzberger / Default.yaml
Last active July 1, 2026 08:16
TYPO3 CKEditor 4: Disallow justify plugin for certain elements
editor:
config:
disallowedContent: {
'h3 h4 h5': {
classes: 'ce-align-left,ce-align-right,ce-align-center'
}
}
@kitzberger
kitzberger / Dockerfile
Last active March 2, 2023 16:57
TYPO3 and webp
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libwebp-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
RUN apt-get install -y \
graphicsmagick \
webp
@kitzberger
kitzberger / CategoryRepository.php
Last active May 19, 2022 15:29
Repositories for sys_category don't respect storage pids by default. See https://forge.typo3.org/issues/89295#note-10
<?php
namespace Me\MyExtension\Domain\Repository;
use TYPO3\CMS\Extbase\Persistence\Repository;
class CategoryRepository extends Repository
{
public function createQuery()
{
SELECT
uid, pid, list_type,
ExtractValue(`tt_content`.`pi_flexform`, '//T3FlexForms/data/sheet[@index="sDEF"]/language/field[@index="settings.category"]/value') category,
ExtractValue(`tt_content`.`pi_flexform`, '//T3FlexForms/data/sheet[@index="sDEF"]/language/field[@index="settings.special"]/value') special
FROM tt_content
WHERE
CType='list' AND
list_type='xxx' AND
ExtractValue(`tt_content`.`pi_flexform`, '//T3FlexForms/data/sheet[@index="sDEF"]/language/field[@index="settings.category"]/value') = '';
@kitzberger
kitzberger / Current Version 5 Backend.css
Last active July 1, 2026 09:33
TYPO3 CKeditor: Disable certain fields in table/cell dialogs
/* Hide all cell properties fields except 'width' */
.ck-table-cell-properties-form .ck-table-form__border-row,
.ck-table-cell-properties-form .ck-table-form__background-row,
.ck-table-cell-properties-form .ck-table-form__alignment-row,
.ck-table-cell-properties-form .ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,
.ck-table-cell-properties-form .ck-table-form__dimensions-row .ck-table-form__dimension-operator,
.ck-table-cell-properties-form .ck-table-cell-properties-form__padding-row,
.ck-table-cell-properties-form .ck-table-cell-properties-form__alignment-row
{
display: none !important;
@kitzberger
kitzberger / PopulateProjectSlugs.php
Created March 29, 2022 08:57
Populate slugs for a custom table (TYPO3 10+)
<?php
declare(strict_types=1);
namespace Vendor\MyExtension\Updates;
use TYPO3\CMS\Install\Updates\PopulatePageSlugs;
use TYPO3\CMS\Install\Updates\RepeatableInterface;
class PopulateProjectSlugs extends PopulatePageSlugs implements RepeatableInterface
@kitzberger
kitzberger / FormSetup.yaml
Last active November 7, 2023 10:48
TYPO3 form with dynamic recipients
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
renderingOptions:
translation:
translationFiles:
@kitzberger
kitzberger / Fluid.html
Created January 20, 2022 15:04
Allow &shy; and <br> in TYPO3 headlines
<h2>{header -> f:format.html(parseFuncTSPath:'lib.parseFunc_header')}</h2>
@kitzberger
kitzberger / TYPO3-10-beuser-Groupname.html.patch
Created December 10, 2021 16:22
Patch for TYPO3 10 EXT:beuser to increase displayed length of be groupname
--- Resources/Private/Partials/Permission/Groupname.html 2021-12-10 17:15:46.000000000 +0100
+++ Resources/Private/Partials/Permission/Groupname.html 2021-12-10 17:16:52.000000000 +0100
@@ -21,7 +21,7 @@
<f:comment>
A group name can be resolved
</f:comment>
- {groupname -> f:format.crop(maxCharacters:20)}
+ {groupname -> f:format.crop(maxCharacters:40)}
</f:then>
<f:else>