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


Stichprobe n=36680 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>