Remove lines matching pattern

dieses mal hier einen super Tipp gefunden https://vimtricks.com/p/vimtrick-remove-lines-matching-pattern/

Using Vim’s powerful “global” command, :g for short. To remove lines matching a pattern, simply use the /d flag to the command. Here are some examples:

:g/pattern/d – Remove lines matching pattern
:g!/pattern/d – Remove lines that do NOT match the pattern

DNS/MX Einträge von Domains abfragen

Immer wieder kommt es vor, das man sich DNS Einträge von Domains einsehen bzw kontrollieren muss. Bisher bin ich immer über google und habe was wie mx record online/ dns checker online oder ähnlich Kram gegoogelt und bin zum Teil auf sehr dubiosen Seiten gelandet. Ab und an noch ein Captcha ausfüllen, CookieBanner wegklicken, nein ich möchte kein Newsletter anklicken, nein ich möchte keine Website Benachrichtigungen 😩😩😩 NUR die Information bitte …. NEIN, diese Services interessieren mich auch nicht *wegklicken* 🤬🤬🤬 ….
Ihr kennt es wahrscheinlich auch …

Zur Rettung kommt wie so oft, das Terminal/CMD/ITerm2 ….
die CommandLine:

In diesem Fall ist es das Tool „host – DNS lookup utility

Beispiel:

host -t TXT blue-side.de

The -t option is used to select the query type. type can be any recognized query type: CNAME, NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified, host automatically selects an appropriate query type. By default, it looks for A, AAAA, and MX records, but if the -C option was given, queries will be made for SOA records, and if name is a dotted-decimal IPv4 address or colon-delimited IPv6 address, host will query for PTR records. If a query type of IXFR is chosen the starting serial number can be specified by appending an equal followed by the starting serial number (e.g. -t IXFR=12345678).

Ausgabe Beispiel

Ein kleines simples Tool, but it made my day:

PHP Warning: gzuncompress(): need dictionary in /var/www/html/public/typo3/sysext/core/Classes/Cache/Backend/Typo3DatabaseBackend.php line 158

Auch Ich bin über dieses Problem im Zusammenhang mit TYPO3 und ddev 1.19 gestossen und habe dann den Artikel von Sven Wappler gefunden, in dem Stefan Frömken die Lösung in den Kommentaren erläutert. Vielen Dank an euch beide 🙂

In der von ddev erstellten AdditionalConfiguration.php muss folgendes ergänzt werden:

            'DB' => [
                'Connections' => [
                    'Default' => [
                        ....
                        'charset' => 'utf8mb4',
                         ...
                    ],
                ],
            ],

Danach caches leeren und es läuft wieder.

TYPO3 11.5 Update Backend nicht erreichbar -> notwendiges htaccess Update

Für die Integration der #93048 – Backend URL rewrites muss die htaccess angepasst werden. Eigentlich sollte es automatisch passieren, doch wenn die .htaccess zu sehr angepasst wurde funktioniert der Automatismus nicht mehr.

Apache config before:

RewriteRule ^(?:typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/) - [L]

Apache config after:

RewriteRule ^(?:fileadmin/|typo3conf/|typo3temp/|uploads/) - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^typo3/(.*)$ %{ENV:CWD}typo3/index.php [QSA,L]



Quelle:
https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/11.0/Breaking-93048-BackendURLRewrites.html

TYPO3 Urls erstellen, in FE, BE oder CLI

Als Entwickler hat man immer wieder mal die Aufgabe Links zu generieren, wenn man im Backend oder mit der CLI/Scheduler unterwegs ist um. Wenn die Links ins Frontend führen sollten, musste man immer erst das TSFE erzeugen um dann über typolink alles zu erzeugen.

Früher…., *ich werf mal einen Stein*…. (ja soviel früher), konnte man dafür die TYPO3 Erweiterung PagePath nutzen, ursprünglich von Dmitry Dulepov geschrieben und dann von Sebastian Michaelsen übernommen und für eine weitere TYPO3 Version geupdatet. …. Wenn man die Erweiterung selbst geupdatet hat, dann kann man sie auch noch in TYPO3 9 nutzen.

Doch man will ja nicht ständig patchen sondern irgendwann einfach mit dem Core Links erzeugen, von daher GoodBye PagePath and Hello PageRouter

Nach einer kurzen Suche zu dem Thema landet man natürlich auf …. genau Stackoverflow (wahrscheinlich die zweit häufigste Seite, nach Google, eines jeden Developers) und hier dann genau auf bei einer Erklärung von Mathias Brodala

Ich denke mal jeder der im TYPO3 im Slack Channel oder auf Stackoverflow was TYPO3 spezifisches gefragt hat, bekam von Ihm schon mal eine schnelle, freundliche fundierte Antwort 🙂 Man kann daher davon ausgehen, wenn er das empfiehlt dann passt das.

Hier noch mal kurz in Code :

Für die Linkerzeugung, tauschen wir hier nun den alten PagePath Code aus:

$arguments = '&tx_nimeinenAltePiBaseExtension_pi1[showUid]=' . (int)$record['uid'];
$singleViewPageUid = '100';
$singleViewLink =  \tx_pagepath_api::getPagePath($singleViewPageUid, $arguments);
 

und nutzen dann wie auf dem StackOverflow Beitrag den Code von Mathias.

use TYPO3\CMS\Core\Site\SiteFinder;
use TYPO3\CMS\Core\Utility\GeneralUtility;

....


$arguments = [
 'tx_nimeinenAltePiBaseExtension_pi1' => ['showUid' => (int)$record['uid']],
];
$singleViewPageUid = '100';
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($singleViewPageUid);

$singleViewLink = (string)$site->getRouter()->generateUri((string)$singleViewPageUid, $arguments);

Kleine Anpassung noch von mir, sofern es keine Multidomain TYPO3 Installation ist kann man das „suchen“ nach der richtigen $site etwas vereinfachen wenn man statt wie oben die SiteConfiguration per $singleViewPageUid sucht, direkt den Namen der Configuration nutzt, also

$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByIdentifier('test');

Den Namen kann man im Modul Sites auslesen, das ist dann auf der Übersichtsseite der „Configuration Folder“

Für alle die Wissen wollen warum es einfacher wäre, ein Blick in den Code verrät warum es.
->getSiteByPageId vs ->getSiteByIdentifier

getSiteByPageId() ist aber einfacher (und damit auch sicherer) in der Handhabung, je nach Umgebung, Konfigurationen der Systeme und im Einsatz in verschiedenen Erweiterungen.

Benutzung von .env in TYPO3

Das ist eine 1 zu 1 Kopie, von diesem Snippet https://gitlab.apfelkiste.eu/snippets/1
da ich mir den Link nicht merken kann, das ganze hier noch mal gespeichert 🙂

Mit Hilfe einer .env-File können empfindliche Einstellungen wie Passwörter bzw. Einstellungen, die sich je System ändern zentral und außerhalb des Repositories abgelegt werden.

Composer-Install

composer req helhum/dotenv-connector 

.env-File

TYPO3_CONTEXT="Development"
TYPO3__DB__database="base9"
TYPO3__DB__host="127.0.0.1"
TYPO3__DB__password="geheim"
TYPO3__DB__port="3306" 
TYPO3__DB__username="root" 
SOLR_PASSWORD="psst!geheim" 

public/typo3conf/LocalConfiguration.php

...
'DB' => [
    'Connections' => [
        'Default' => [
            'charset' => 'utf8mb4',
            'dbname' => '<set by dotenv>',
            'driver' => 'mysqli',
            'host' => '<set by dotenv>',
            'password' => '<set by dotenv>',
            'port' => '<set by dotenv>',
            'tableoptions' => [
                'charset' => 'utf8mb4',
                'collate' => 'utf8mb4_unicode_ci',
            ],
            'user' => '<set by dotenv>',
        ],
    ],
],

public/typo3conf/AdditionalConfiguration.php

<?php
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['dbname'] = getenv('TYPO3_DB_NAME');
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['host'] = getenv('TYPO3_DB_HOST');
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['password'] = getenv('TYPO3_DB_PASSWORD');
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['user'] = getenv('TYPO3_DB_USER');

Benutzung in Site-Config

rootPageId: 1
base: 'https://%env(SAAROBERMOSEL_DOMAIN)%/'

Benutzung von TYPO3_CONTEXT in typoscript

# Einstellungen für Entwicklunssysteme
[applicationContext = Development]
  config.absRefPrefix = http://projekt.dev/
  config.admPanel = 1
  [...]
[end]

Benutzung im Typoscript (Werte)

plugin.tx_solr.solr {
	read {
		password = TEXT
		password {
			data = getenv:SOLR_PASSWORD
		}
	}
}

composer – good to know

Bei mir entstehen immer wieder Fragen rund um TYPO3, einige Fragen und die Antworten dazu:

Diese Fragen kommen aus dem Slack Channel #typo3-cms-composer
die Fragen habe nicht ich geschrieben, jedoch mir selbst gestellt 🙂

how do i see which dependencies are currently active on my packages in composer?
composer depends <package-name>

he problem is that i get TYPO3 10.4.9 instead of the latest. 
composer why-not typo3/cms-core 10.4.11

Update den TYPO3 Core mit allen Abhängigkeiten:
composer update typo3/* --with-all-dependencies

Zeige installierte Versionen:
composer show