it-swarm.com.de

Fügen Sie dem Controller benutzerdefinierten Code von com_weblinks hinzu

Ich möchte Analytics-Tracking-Code hinzufügen, bevor die Komponente com_weblinks mit task = weblink.go zu einer externen Site springt.

Das Problem ist, dass der Sprung in der Datei controller.php ist. Eine Überschreibung hierfür ist nicht möglich.

Wie kann ich dem Controller Code ändern/hinzufügen, der nach dem nächsten Update gespeichert werden soll?

1
Lovntola

Wenn ich mir die Funktionsweise von Weblinks ansehe, kann ich feststellen, dass weblinks.go nur dann involviert ist, wenn Sie eine Option zum Zählen der Treffer für jeden Link ausgewählt haben, wodurch view.html.php diesen Linkstil anzeigt:

$item->link = JRoute::_('index.php?option=com_weblinks&task=weblink.go&id=' . $item->id);

in Zeile 88 von default_items.php

Ich würde vorschlagen, dass Sie diesen Link, der über ein eigenes Plugin oder einen Ersatz erstellt wird, abfangen, um die Options- und Aufgabenwerte oder den gesamten Link zu ändern und auf einen Code zu verweisen, den Sie geschrieben haben fügt Ihren Linknamen zum Analyse-Messprotokoll hinzu. Das Plugin würde wahrscheinlich das Ereignis onContentBefore etwas verwenden, um die Änderung vorzunehmen.

Wenn die Endbenutzer auf einen Link klicken, gehen sie zuerst zu Ihrem Code und dann leiten Sie die Verarbeitung zurück an Weblinks und an weblinks.go, um ihren Beitrag zu leisten, bevor der Endbenutzer auf die verlinkte Site geleitet wird.

Wenn Sie den Prozess über den oben beschriebenen Ansatz abfangen, haben Sie nur eine ID und nicht die tatsächliche URL, wenn Sie in Ihren Code gelangen. Daher müssen Sie einige Schritte ausführen, um die ID abzufragen und die zugehörige URL abzurufen, damit Sie diese an Google weitergeben können.

Alternativ können Sie eine Überschreibungskategorie/view/tmpl/default_item.php erstellen, um den Link anzuzeigen, wie Sie möchten, dass sowohl die ID als auch die URL an Ihren Code übergeben werden, ohne eine Funktion für das Plugin onContentBefore oder einen Ersatztyp zu verwenden. Und wenn Sie keine Treffer in Weblinks zählen möchten, müssen Sie weder zu weblinks.go gehen, noch benötigen Sie die ID.

1
Irata