Affiliate CTA Plugin mit Custom Fields
Affiliate in CMS ist wichtiger den je geworden, denn das reale Leben verlagert sich mehr und mehr ins Internet - das tun natürlich auch die vielen Unternehmen jetzt erst recht. In diesem Beitrag wähle ich einen bewußt einfachen Ansatz, um auch Einsteigern die Entwicklung solcher kleinen Plugins zu ermöglichen.
Funktionsweise von CTA oder Affiliate
Affiliate-Links sind im wesentlichen Produktempfehlungen die aus dem Content heraus passen können. Diese werden (meist) im Kopfbereich von Webseiten prominent angezeigt. CTA (Call to Action) ist etwas ganz ähnliches. Durch eine Bannereinblendung soll der Leser zu einer Aktion aufgefordert werden - zum Beispiel den Download eines Produktes auslösen. Durch ein Provisionssystem erhält der Webseitenbetreiber einen kleinen Betrag als Dank, wenn der Leser beispielsweise bei Amazon über diesen Link bestellt - für den Besteller ist dies natürlich vollkommen kostenlos.
CTA Affiliate je Beitrag
Damit Sie die Möglichkeit haben für jeden einzelnen Beitrag festzulegen ob er CTA/Affiliate zeigen soll oder nicht, benötigen Sie einen Schalter - also eine kleine Checkbox dessen Wert mit im Beitrag gespeichert wird. Dies lässt sich sehr gut über die so genannten Custom Fields in Bludit lösen.
Bludit CustomFields
Melden Sie sich im Bludit als Admin an und gehen in die Einstellungen unter der Rubrik Allgemein, dort finden Sie die Option Benutzerdefinierte Felder. In dem Eingabefeld sollte nichts bis auf:
[]
Code
enthalten sein. Sie benötigen dort also eine kleine Variable die ein Boolean (An/Aus) speichert. Geben Sie folgendes dort ein (die eckigen Klammern löschen Sie bitte):
{
"ctaEnabled": {
"type": "bool",
"label": "CTA-Aktiv",
"position": "top"
}
}
Code
speichern Sie die Eingaben ab und wenn Sie nun einen Beitrag editieren, sehen über jedem Beitrag fortan das Feld CTA-AKTIV gefolgt von einer Checkbox.
oben links: Checkbox die durch das Bludit CustomField erzeugt wird
Diese Information werden Sie in den folgenden Teilen in Ihr Template einabauen, um die Einblendung von Affiliate und CTA Bannern für einzelne angezeigte Beiträge Ein- oder Ausschalten zu können - denn nicht jeder Beitrag soll auch unbedingt Werbung anzeigen.
In wenigen Tagen folgt der zweite Teil des kleinen Workshops - Sie werden dann ein eigenes Plugin erzeugen und ein wenig Prgrammzeilen hinterlegen. Der Beitrag ist bereits vorbereitet und das Beispiel-Plugin fertig.
Das CTA, Affiliate Plugin
Im zweiten Teil der Reihe werden Sie das eigentliche PHP-Plugin für Bludit schreiben, welches die Affiliate-Links in die einzelnen Webseiten einbinden soll.
Das Affiliate Plugin für Bludit CMS in Aktion
Die Position des Plugins wird über die einzelnen Templates für die Startseite oder der Beitragsseite bestimmt und wird dort fest vorgegeben. Eine dynamische Einblendung an beleibigen Stellen im Text ist mit dieser Variante nicht möglich.
plugin.php
Am besten gehen Sie so vor, das Sie sich ein bestehendes Plugin kopieren und erstellen dann einen neuen Ordner und legen dort die PHP-Datei an oder bennen sie um, beispielsweise so:
...l-pluginsaffiliateplugin.php
Code
In der PHP Datei tragen Sie den folgenden Programmcode ein oder kopieren den folgenden Inhalt:
001 <?php
002
003 class pluginAffiliate extends Plugin {
004
005 public function pageEnd()
006 {
007 global $L;
008
009 $rnd = rand($L->get('start'), $L->get('end'));
010
011 //$html .= '<hr class="mt-5">';
012 $html .= '<div class="row">';
013 $html .= '<div class="col-sm-2 mb-3">';
014 $html .= '<img src="'.$L->get('cta-pict-'.$rnd).'" class="img-fluid" />';
015 $html .= '</div>';
016 $html .= '<div class="col-sm">';
017 $html .= '<p><strong>'.$L->get('cta-titl-'.$rnd).'</strong> - '.$L->get('cta-desc-'.$rnd).' <sup>'.$L->get('cta-note-'.$rnd).'</sup></p>';
018 $html .= '<a href="'.$L->get('cta-link-'.$rnd).'" class="btn btn-danger">'.$L->get('cta-butt-'.$rnd).'</a>';
019 $html .= '</div>';
020 $html .= '</div>';
021
022 return $html;
023 }
024 }
Code
Geen Sie beim Class-Name den Namen pluginAffiliate ein, dieser ist vorgeschrieben und setzt sich aus dem Namen des Ordners und dem Prefix plugin zusammen.
Zeile 009 holt mittels get den start und end Wert aus der de_DE.json Datei (weiter unten) und initialisiert damit den Zufallsgenerator. Die Ziffer des Zufallsgenerators wird an die Präfixe cta-titl-, cta-desc-, cta-link-, cta-pict und cta-butt angehängt und bilden damit die verschiedenen Einträge in der de_DE.json Datei ab. Es wird bei jedem Refresh der Seite ein anderes zufälliges Produkt eingeblendet.
metadata.json
In der Datei Metadata tragen Sie einige Infos für das Plugin ein, zum Beispiel so:
001 {
002 "author": "Lohse",
003 "email": "",
004 "website": "http://Oliver-Lohse.de",
005 "version": "3.13.1",
006 "releaseDate": "2020-07-28",
007 "license": "MIT",
008 "compatible": "3.13.1",
009 "notes": ""
010 }
Code
Die Angaben sind rein obligatorisch und helfen Ihnen später die Bedeutung des Plugins zu beschreiben. Geben Sie auf jeden Fall die Versionsnummer ein, damit Sie wissen mit welcher Bludit Version das Plugin entwickelt wurde.
languages/de_DE.json
Die wichtigste Datei ist die Länder- und Sprachdatei, da diese Inhalte und angeben im Backend bei den Plugins angezeigt werden. Passen Sie die Datei:
...l-pluginsaffiliatelanguagesde_DE.json
Code
wie folgt an:
001 {
002 "plugin-data":
003 {
004 "name": "Affiliate",
005 "description": "Ein einfaches Affiliate und CTA Modul..."
006 },
007 "start": 1,
008 "end": 3,
009
010 "cta-titl-1": "Produkt-Name 1",
011 "cta-desc-1": "Produktbeschreibung",
012 "cta-link-1": "http... (Produkt-Link)",
013 "cta-pict-1": "http... .jpg (Produktfoto)",
014 "cta-note-1": "(* (Hinweis)",
015 "cta-butt-1": "lesen... (Buttonbescriftung)",
016
017 "cta-titl-2": "Produkt-Name 2",
018 "cta-desc-2": "Produktbeschreibung",
019 "cta-link-2": "http... (Produkt-Link)",
020 "cta-pict-2": "http... .jpg",
021 "cta-note-2": "(* (Hinweis)",
022 "cta-butt-2": "lesen...",
023
024 "cta-titl-3": "Produkt-Name 3",
025 "cta-desc-3": "Produktbeschreibung",
026 "cta-link-3": "http...",
027 "cta-pict-3": "http... .jpg",
028 "cta-note-3": "(*",
029 "cta-butt-3": "lesen..."
030 }
Code
In diesem Fall sind drei zufällige Affiliate-Links verfügbar, die über das Plugin (weiter oben im Text) ausgelesen werden können. Die Produktliste kann dann beliebig erweitert werden und der Start- und End-Wert müssen enteprschend angepasst werden. Mit dem Befel global $L steht der Inhalt und die Attribute aus der Länder- und Sprachdatei im Plugin zur Verfügung und kann gelesen werden.
Möchten Sie beispielsweise, das Produkt 1 häufiger angezeigt wird als Produkt 2, dann legen Sie Produkt 1 in der de_DE.json Datei gleich mehrfach an, da dies implizit die Wahrscheinlichkeit für die Anzeige des Produkt 1 vor anderen Affiliate-Links erhöht.