home · Automad · Bludit · ChatGPT · CMS · GetSimple · GRAV · Handlebars · htaccess · Java · Jira · PHP · Pico · Smarty · Typemill · WonderCMS · WordPress · Yellow ·
Affiliate Plugin mit Config-File

Affiliate Plugin mit Config-File

So verhindern Sie die Ausgabe von Warnungen und Meldungen in der Template Engine Smarty. Besonder hilfreich während der Entwicklung in kleinen Projekten.

Affiliate

Mit Affiliate oder den so genannten Produktempfehlungen, können Sie viel Geld verdienen. Solche Produktempfehlungen finden Sie auf vielen Webseiten als prominentes Banner oder zufällige Einblendungen. Der Beitrag soll Ihnen den Code eines Plugins zeigen, das im Template der Webseite zufällige Affiliate-Produkte einblendet.

Die Affiliate-Produkte als Config-Datei

Die Sammlung von Produkten die Sie auf Ihrer Seite zufällig empfehlen möchten, befindet sich in einem ganz normalen Config-File im durch Smarty definierten config-Pfad (meist configs).

PRODUCTS = 'HACKING;REACT;GIT;JS;PHP;WORDPRESS'

[HACKING]
Title       = 'Hacking u. Security - Das umfassende Hacking-Handbuch des IT-Standardwerks'
Description = 'Profitieren Sie von der Beschreibung realer Angriffsszenarien und erfahren...'
Logo        = '/img/affiliate-hacking-rheinwerk.png'
URL         = 'https://www.amazon.de/Hacking-Security...'

[REACT]
Title       = 'React: Das umfassende Handbuch für moderne Frontend-Entwicklung.'
Description = 'Welcher Frontendentwickler hat noch nicht von React gehört? Diese ursprünglich...'
Logo        = '/img/affiliate-react-rheinwerk.png'
URL         = 'https://...'

[...]
Title       = ...
...

Beispielprodukte eines Affiliate-Programms

Der Aufbau ist dabei recht simpel. Mit der Variable PRODUCTS wird ein Index von verfügbaren Produktnamen erzeugt. Das Plugin wählt aus diesem Index ein zufälligen Produkt, z.B. HACKING aus und läd dann die entsprechende Region darunter mit Title, Description, Logo und URL.

Leider besitzt das Smarty-Framework keinen Mechanismus, um aus einer Anzahl von [REGIONEN] einen zufälligen Eintrag auszuwählen. Sie müssen einen kleinen Umweg über das Index-Feld PRODUCTS gehen, in dem eine Zufallswahl stattfindet, dessen Regionsname dann geladen wird. Die Einträge dieser Produktnamen muss folglich mit den Region-Namen identisch sein.

Das Affiliate-Plugin

Der Code für das Plugin ist recht simpel aber effektiv gehalten und stammt aus einem individuellem Coding-Projekt - ist also Spezialcode, kann aber an jedes andere System angepasst werden:

function smarty_function_affiliate($params, Smarty_Internal_Template $template)
{
    global $cms;
    $smarty = $cms->smarty;

    $smarty->configLoad('affiliate.conf');

    $products = explode(';', $smarty->getConfigVars('PRODUCTS')); // Die Produkte als Array
    $max      = count($products)-1;                               // Anzahl der Produkte ermitteln
    $dice     = rand(0, $max);                                    // Zufallswert von 0 bis MAX

    $smarty->configLoad('affiliate.conf', $products[$dice]);      // Die REGION laden

    $smarty->assign('title',       $smarty->getConfigVars('Title'));
    $smarty->assign('description', $smarty->getConfigVars('Description'));
    $smarty->assign('logo',        $smarty->getConfigVars('Logo'));
    $smarty->assign('url',         $smarty->getConfigVars('URL'));
    $smarty->assign('position',    $params['position']);

    $smarty->display('plugin-templates/affiliate.html');
}

Code eines Affiliate-Plugins

Zunächst beginnt das Smarty-Plugin damit, die laufende Instanz des Smarty-Objektes zu holen und läd im Anschluss daran die affiliate.conf, eine individuelle Config-Datei im Configs-Ordner. Mit $products = explode() erstellt das Affiliate-Plugin eine iterierbare Liste (Array) und wählt mit $dice einen zufälligen Eintrag aus. Der Zufallsgenerator startet bei 0 bis maximal zur Anzahl der verfügbaren Elemente $max in der $products-Liste.

Mit $smarty->configLoad('affiliate.conf', $products[$dice]); wird dann die ermittelte Region, z.B. HACKING geladen. Mit Hilfe von $smarty->assign('title', ... werden die Attribute des Produktes dem Template zugewiesen und mit $smarty->display('plugin-templates/affiliate.html') angezeigt.

Das Attribut position ist projektspezifisch und nimmt zusätzliche Angaben aus dem Template ala:

...
{affiliate position='top'} 
...

auf, die im Template eine kleine Steuerung auslösen (nichts wildes...).

Bitte bedenken Sie, das der Code des Plugins aus einem bestehenden Projekt stammt und für Ihren konkreten Fall leicht abweichen kann und daher etwas angepasst werden muss.

Smarty: config.conf Smarty: register Plugin

Dieser Leitartikel besitzt keine untergeordneten Beiträge.

Affiliate

WordPress 6 - Das umfassende Handbuch. Fast 1.000 Seiten Wissen zu WordPress inkl. Themes, Plug-ins, WooCommerce, SEO und mehr. Ausgabe 2025

Hinweis: Die Webseite ist Mitglied im Amazon.Partnernet und kann mit Affiliate-Links den Betrieb stützen. Für Sie als Leser ist das natürlich vollkommen kostenlos.

(c) by CMSWorkbench.de