TYPO3 Plugin:
linkhandler
Linkhandler
Diese Erweiterungen nutzen die TYPO3 CMS Core API, um die Möglichkeit zu bieten, die um zusätzliche Registerkarten im Link-Browser zu definieren, um Links direkt zu erstellen zu bestimmten Datensätzen.
Ursprünglich wurde die "linkhandler" von der AOE GmbH entwickelt. Diese Gabel wird schrittweise weiterentwickelt vom Original abgewichen und wurde nun fast vollständig neu geschrieben für TYPO3 CMS 7 LTS mit seiner neuen API.
Standardkonfigurationen sind sowohl für "news" als auch für "tt_news" verfügbar. erweiterungen.
Für eine mit TYPO3 CMS 6.2 kompatible Version verwenden Sie bitte den Zweig TYPO3_6-2.
Konfiguration
Die Konfiguration besteht aus zwei Teilen. TSconfig dient zur Definition der tabs für den Link-Browser und TypoScript wird verwendet, um zu definieren, wie man baut die Typolinks beim Rendern der Links.
TSconfig
Standardkonfigurationen können auf jeder Seite mit Hilfe der Option neue Funktion "Seite TSConfig einbinden (von Erweiterungen):" wenn bearbeiten der Registerkarte "Ressourcen" einer Seite.
Dies ist der TSconfig, der für die Verknüpfung mit Nachrichtenaufzeichnungen der Erweiterung "news" verwendet wird:
// Seite TSconfig zur Registrierung der linkhandler für "News"-Aufzeichnungen
TCEMAIN.linkHandler.tx_news {
handler = Spinnennetz\Linkhandler\RecordLinkHandler
label = LLL:EXT:linkhandler/Ressourcen/Private/Language/locallang.xlf:tab.news
konfiguration {
tabelle = tx_news_domain_model_news
}
scanBefore = Seite
}
Wenn Sie auf eine andere Art von Datensatz verweisen möchten, duplizieren Sie diese einfach
konfiguration und ändern Sie die Optionen Label
und configuration.table
.
Sie müssen auch den in der Definition verwendeten Schlüssel ändern, d.h.
tx_news
im obigen Beispiel. Achten Sie darauf, dass Sie einen eindeutigen Schlüssel verwenden,
andernfalls wird Ihre neue Konfiguration eine andere überschreiben.
Lassen Sie die anderen Optionen unberührt.
Es gibt weitere Optionen, die im Folgenden beschrieben werden:
configuration.storagePid
Zwingt den Link-Browser, sich direkt auf der Seite mit der angegebenen ID zu öffnen.
configuration.hidePageTree ausblenden
Auf 1 setzen, um den Seitenbaum auszublenden. Dies ist besonders nützlich
in Verbindung mit der obigen Option storagePid
, da sie es ermöglicht
ist es möglich, nur mit einer Liste von Datensätzen zu arbeiten, ohne auf die Schaltfläche klicken zu müssen
um den Seitenbaum herum.
configuration.pageBaumMontagePunkte
Nummeriertes Array von Seiten-Uid's, das anstelle des gesamten Seitenbaums verwendet wird.
Die Syntax ist ein nummeriertes Array:
pageTreeMountPoints {
1 = 18
2 = 91
}
TypoScript
Fügen Sie bei Bedarf statische TS-Vorlagen ein.
Betrachten wir noch einmal die Konfiguration für "news" als Beispiel
plugin.tx_linkhandler.tx_news {
// Erzwingen Sie keine Linkgenerierung, wenn die Nachrichtensätze versteckt oder gelöscht werden.
forceLink = 0
typolink {
parameter = {$plugin.tx_linkhandler.news.singlePid}
additionalParams = &tx_news_pi1[news]={field:uid}&tx_news_pi1[controller]=News&tx_news_pi1[action]=detail
zusätzlicheParams.insertData = 1
useCacheHash = 1
}
}
Beachten Sie, dass der Konfigurationsschlüssel (z.B. tx_news
) derselbe sein muss wie derjenige
die für den TSconfig-Teil verwendet wird. Die Konfiguration ist gerade TS mit dem
"Typolink"-Funktion.
Spezielle Konfigurationsmöglichkeiten
forceLink
Auf 1 gesetzt, um die Linkerzeugung zu erzwingen, auch wenn der Datensatz ausgeblendet ist, gelöscht oder der Benutzer darf nicht darauf zugreifen.
typolink.mergeWithLinkhandlerKonfiguration
Diese Konfiguration wird benötigt, wenn eine Verknüpfung direkt mit TypoScript erstellt werden soll und nicht mit einem in einem Inhaltselement. Zum Beispiel mit einem solchen Code:
lib.foo {
10 = TEXT
10 {
typolink {
mergeWithLinkhandlerKonfiguration = 1
parameter = record:tx_news:tx_news_domain_model_news:11 - foo "Link aus TS-Menü"
returnLast = url
}
}
}
In diesem Fall soll der Parameter returnLast = url
mit dem Standard zusammengeführt werden
rendering-Konfiguration. Mit der mergeWithLinkhandlerConfiguration = 1
sagen wir
"linkhandler", um genau das zu tun.
Haken
Ein einzelner Haken ist vorgesehen. Es kann verwendet werden, um die meisten Daten aus den folgenden Bereichen zu manipulieren
die \Cobweb\Linkhandler\TypolinkHandler
Klasse vor dem Typolink ist tatsächlich
generiert. Eine exemplarische Verwendung könnte sein, das Linkziel pid dynamisch zu ändern
basierend auf einigen Werten aus dem Datensatz, mit dem verknüpft ist.
Die Verwendung des Hook sollte in der Datei ext_localconf.php
einer Erweiterung angegeben werden:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['linkhandler']['generateLink'][] ='Foo\Bar\MyParameterProcessor';
Die deklarierte Klasse muss die Schnittstelle \Cobweb\Linkhandler\ProcessLinkParametersInterface
implementieren.
Es kann die vielen Getter und Setter von \Cobweb\Linkhandler\TypolinkHandler
verwenden
um Daten zu lesen und zu schreiben.
Soft-Referenz-Handhabung
Die Erweiterung "linkhandler" bietet einen Soft-Referenz-Parser, der jede beliebige datensatz, der mit dem System verknüpft ist, und aktualisieren die Systemreferenzen entsprechend.
Linkvalidator-Unterstützung
Diese Erweiterung wird in den Linkvalidator eingehängt, um Datensatzlinks zu überprüfen. Sie wird automatisch aktiviert. Falls Sie es deaktivieren möchten, können Sie die folgende Seite TSconfig verwenden:
Um es zu nutzen, musst du deinen Linkvalidator TSConfig anpassen:
mod.linkvalidator.linktypes := removeFromList(tx_linkhandler)
}
Es gibt eine zusätzliche Konfigurationsoption, die es ermöglicht, Links zu melden, die auf Folgendes verweisen deaktivierte Datensätze (versteckt, Startbindung noch nicht erfüllt, etc.):
mod.linkvalidator {
tx_linkhandler.reportHiddenRecords = 1
}
Migration
Die Erweiterung bietet ein Befehlszeilen-Tool für migrierte alte Datensatzverweise
zu neuen. Ältere Versionen von "linkhandler" verwendeten eine 3-teilige Syntax, um auf Folgendes zu verweisen
eine aufgezeichnete, d.h. record:table:uid
. Die aktuelle Version verwendet eine 4-teilige Syntax
(record:key:table:uid
), die es ermöglicht, mehrere Registerkarten/Konfigurationen zu haben
für die gleiche Tabelle.
Um alte Links zu migrieren, rufen Sie Folgendes auf:
/path/to/php typo3/cli_dispatch.phpsh extbase linkmigration:migrate
Dadurch werden Links aus den Feldern "tt_content.header_link", "tt_content.bodytext" migriert. und "sys_file_reference.link". Um Daten in andere Felder zu migrieren, verwenden Sie die Option "--felder":
/path/to/php typo3/cli_dispatch.phpsh extbase linkmigration:migrate --fields=tx_foo.bar,tx_foo.baz
Für jede Tabelle, zu der Sie alte Links hatten, werden Sie vom Migrationstool aufgefordert, eine konfigurationsschlüssel, der den von Ihnen angegebenen Konfigurationsschlüsseln entsprechen sollte in Ihren TSconfig- und TypoScripts-Konfigurationen. Dieser Schlüssel wird zu den bestehenden Links hinzugefügt um sie wieder syntaktisch korrekt zu machen.
Beachten Sie, dass 4-teilige Links von diesem Tool unberührt bleiben, so dass es in Ordnung ist, sie auszuführen mehrmals auf den gleichen Feldern (sollte das aus irgendeinem Grund passieren).
Wie bei allen Tools, die Ihre Datenbank verändern, sollten Sie vor der Ausführung ein Backup erstellen!
Tipps & Tricks
Link-Browser-Breite
Sie können TSConfig verwenden, um das With der Link-Browser-Fenster im Backend zu erhöhen. Die Standardgröße ist etwas zu klein, besonders wenn man diese zusätzlichen Tabs hat.
RTE {
standard {
tasten {
link {
dialogWindow {
breite = 800
}
}
}
}
}
Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.
Verteilung:LINKHANDLER ist auf
4.62 % aller TYPO3 installiert.
- 8.89 % aller TYPO3 9.5.x Installationen installiert
- 3.24 % aller TYPO3 8.7.x Installationen installiert
- 6.84 % aller TYPO3 7.6.x Installationen installiert
- 25 % aller TYPO3 7.2.x Installationen installiert
- 5.34 % aller TYPO3 6.2.x Installationen installiert
- 2.07 % aller TYPO3 6.1.x Installationen installiert
- 1.2 % aller TYPO3 6.0.x Installationen installiert
- 4.3 % aller TYPO3 4.7.x Installationen installiert
- 4.13 % aller TYPO3 4.6.x Installationen installiert
- 5 % aller TYPO3 4.5.x Installationen installiert
- 2.15 % aller TYPO3 4.4.x Installationen installiert
- 3.8 % aller TYPO3 4.3.x Installationen installiert
- 1.88 % aller TYPO3 4.2.x Installationen installiert
- 2.54 % aller TYPO3 4.1.x Installationen installiert
LINKHANDLER Version:Verteilung nach installierten Versionen
- 69.96 % LINKHANDLER v.3.1.3
- 2.31 % LINKHANDLER v.3.1.1
- 3.57 % LINKHANDLER v.3.0.0
- 24.16 % LINKHANDLER v.2.0.0
PHP Version:LINKHANDLER wird benutzt mit
- 0.23 % PHP/7.2
- 7.26 % PHP/7.1
- 4.68 % PHP/7.0
- 19.91 % PHP/5.6
- 30.56 % PHP/5.5
- 9.13 % PHP/5.4
- 22.01 % PHP/5.3
- 6.21 % PHP/5.2
- 0.23 % PHP/4.4
Gosign-Responsive Index: TYPO3 Installationen nutzen LINKHANDLER zu
- 22 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
- 13 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
- 21 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
- 43 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist
Pagespeed: TYPO3 Installationen nutzen LINKHANDLER zu
- 24 % wenn der Pagespeed zwischen 80 % und 100 % ist
- 41 % wenn der Pagespeed zwischen 60 % und 80 % ist
- 23 % wenn der Pagespeed zwischen 40 % und 60 % ist
- 8 % wenn der Pagespeed zwischen 20 % und 40 % ist
- 9 % wenn der Pagespeed zwischen 0 % und 20 % ist
[DependciesAndConflicts]