Eine multidomain Joomla Landingpage ist gar keine so große Herausforderung im Webdesign, wie man vielleicht zuerst vermutet. Für diese Situation muss nur eine eigenständige PHP Datei erstellt werden, die losgelöst von Joomla funktioniert, aber nicht auf das Joomla Framework verzichtet. Damit könnte man auch Inhalte wie Module darstellen oder aber auch die Landingpage.
Multidomain Joomla Landingpage als Fallbeispiel
In unserem Fallbeispiel nutzen wir ein Landingpage-Template für einen E-Commerce Onlineshop auf Basis von VirtueMart. Die Herausforderung: Jede Landingpage soll über eine eigene Domain erreichbar sein.
Da Joomla von Haus aus nicht multidomainfähig ist und die Installation unnötiger Komponenten vermieden werden soll, macht es Sinn, die Implementation über eine externe PHP Datei laufen zu lassen. Da auf dieser Landingpage Inhalte aus Joomla und VirtueMart eingebunden werden sollen, muss die Landingpage an das Framework gekoppelt werden.
Vorbereitungen für die Landingpage
Zunächst muss die Joomla multidomain Landingpage vorbereitet werden. Hierfür wird eine index.php in einem Ordner Ihrer Wahl angelegt. In unserem Fallbeispiel wird diese im aktuellen Template-Ordner angelegt:
templates/mein_template/landingpage
templates/mein_template/landingpage/index.php
Die Ausgangsbasis
Die Ausgangsbasis ist die index.php im Joomla Root Verzeichnis (NICHT des Templates!).
Folgende Zeilen sind für unsere Landingpage von Bedeutung. Diese werden in die index.php kopiert:
define('_JEXEC', 1);
include_once dirname(__FILE__) . '/defines.php';
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE.'/includes/defines.php';
require_once JPATH_BASE.'/includes/framework.php';
$app = JFactory::getApplication('site');
Mit
define('_JEXEC', 1)
starten wir unsere Joomla Sitzung.
define('JPATH_BASE', dirname(__FILE__));
definiert unseren Basis Pfad. Da dieser Pfad nicht mehr passt (je nachdem wo unsere index.php Datei abgelegt ist), muss er angepasst werden. Wir müssen den Pfad von unserer erstellten index.php aus zum Joomla Root Verzeichnis wählen.
Das wären drei Ordner zurück
/../../..
Also:
define( 'JPATH_BASE', dirname(__FILE__).'/../../..' );
require_once JPATH_BASE.'/includes/defines.php';
und
require_once JPATH_BASE.'/includes/framework.php';
können so übernommen werden, sowie
$app = JFactory::getApplication('site');
Damit ist bereits die Basis für die multidomain Landingpage geschaffen.
Module laden
Im nächsten Schritt müssen die Module integriert werden. Dafür fügen wir nachfolgenden Code hinzu und können jetzt einzelne Module oder Modulpositionen laden:
jimport( 'joomla.application.module.helper' );
Der Befehl für eine Modulposition lautet:
$modul = JModuleHelper::getModules('modul-positon');
und für ein Modul:
$modul = JModuleHelper::getModule('modul-name');
Ausgegeben wird anschließend alles über:
JModuleHelper::renderModule($module);
Diese index.php stellt nun eine gute Basis für die Landingpage dar.
<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', dirname(__FILE__).'/../../..' );
require_once JPATH_BASE.'/includes/defines.php';
require_once JPATH_BASE.'/includes/framework.php';
$app = JFactory::getApplication('site');
jimport( 'joomla.application.module.helper' );
?>
Weitere Infos und Hilfe
Bei weiteren Fragen stehen wir Ihnen gern mit Rat und Tat zur Seite. Sprechen Sie uns einfach an!
Gepostet von Lawn Care Tampa
12.10.2016 — 10:43Macht weiter so, gute Arbeit!