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.

Affiliate Plugin 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:

...\bl-plugins\affiliate\plugin.php

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  }

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  }

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:

...\bl-plugins\affiliate\languages\de_DE.json

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  }

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.


von Oliver Lohse