Mehrere Domains - ein Joomla!
Inhaltsverzeichnis |
[Bearbeiten] Ausgangslage
Eine Joomla!-Installation soll das Frontend für drei Firmen/Domains mit unterschiedlichem Inhalt und Layout verwalten.
Für jede Firma wurde ein eigener Bereich eingerichtet und ein eigenes Template entworfen. Die Templates wurden dem jeweiligen Menü der Firma zugewiesen:
- Firma 1 - firma1.de -
DeinJoomla!\templates\firma1 - Startseite ist Id 1
- Firma 2 - firma2.de -
DeinJoomla!\templates\firma2 - Home der Firma 2 ist Id 20
- Firma 3 - firma3.de -
DeinJoomla!\templates\firma3 - Home der Firma 3 ist Id 30
[Bearbeiten] Lösung 1: Drei Unterverzeichnisse mit je einer
index.html
Die Verzeichnisse
DeinJoomla!\firma1,
DeinJoomla!\firma2 und
DeinJoomla!\firma3 erstellen.
In jedem Verzeichnis eine index.html erstellen, die außer dem Head mit den Meta-Tags und einen leeren body-Bereich nichts enthalten muss. Dem Link des Menü-Items kann dann der Code für die Weiterleitung entnommen werden.
Für die Firma 1 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma1.de/index.php?option=com_content&view=article&id=1">Für die Firma 2 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma2.de/index.php?option=com_content&view=category&layout=blog&id=4">Für die Firma 3 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma3.de/index.php?option=index.php?Itemid=11">[Bearbeiten] Lösung 2: Plugin Multidomain
[Bearbeiten] für Joomla!1.5.xx
Gefunden http://www.joomlaportal.de/beta-howtos/58249-joomla-multi-domain-f-hig-21.html
Eine
multidomain.php erstellen:
/* SVN: $Id$ */ /** * @package joomla.plugin * @subpackage system.multidomain * @copyright Copyright (c) 2008 art-two [creative development] * @author Guido Essing [ecomeback] <ecomeback@os-development.de> * @version * 0.1 - 04.01.2009 - pre alpha<br /> */ // check global access point defined('_JEXEC') or exit( 'forbidden' ); $mainframe->registerEvent( 'onAfterInitialise', 'plgSystemMultiDomain' ); /** * MultiDomain Switcher * @return void */ function plgSystemMultiDomain() { $application =& JFactory::getApplication(); // frontend check if (!$application->isSite()) { return true; } $config = JFactory::getConfig(); $uri = JFactory::getURI(); $menu = JSite::getMenu(); //echo 'URI:'.$uri->getHost(); switch(strtolower($uri->getHost())) { case "firma1.de"; // set default menu id - home $menu->setDefault(1); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template // firma1 heißt das Verzeichnis, das das Templates für firma1.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma1'); break; case "www.firma1.de"; // set default menu id - home $menu->setDefault(1); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template // firma1 heißt das Verzeichnis, das das Templates für firma1.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma1'); break; case "firma2.de"; // set default menu id - home $menu->setDefault(20); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma2.de'); // set template // firma2 heißt das Verzeichnis, das das Templates für firma2.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma2'); break; case "www.firma2.de"; // set default menu id - home $menu->setDefault(20); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma2.de'); // set template // firma2 heißt das Verzeichnis, das das Templates für firma2.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma2'); break; case "firma3.de"; // set default menu id - home $menu->setDefault(30); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma3.de'); // set template // firma3 heißt das Verzeichnis, das das Templates für firma3.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma3'); break; case "www.firma3.de"; // set default menu id - home $menu->setDefault(30); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma3.de'); // set template // firma3 heißt das Verzeichnis, das das Templates für firma3.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma3'); break; default: // set default menu id - home $menu->setDefault(1); // id have to exists in #__menu // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template JRequest::setVar('template', 'firma1'); break; } } ?>
Eine
multidomain.xml erstellen:
<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="system"> <name>System - MultiDomain</name> <author>Guido Essing [ecomeback]</author> <creationDate>January 2009</creationDate> <copyright>(c) 2009 - art-two [creative development]</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <authorEmail>development@art-two.de</authorEmail> <authorUrl>www.art-two.de</authorUrl> <version>0.1</version> <description><![CDATA[MultiDomain Plugin]]></description> <files> <filename plugin="multidomain">multidomain.php</filename> </files> <params/> </install>
Diese zwei Dateien in das Verzeichnis
\DeinJoomla!\plugins\system stellen.
[Bearbeiten] für Joomla!1.7.xx
Gefunden bei http://www.joomlaportal.de/beta-howtos/58249-joomla-multi-domain-f-hig-24.html der Beitrag von CirTap (ein herzliches Dankeschön!) und dazu komfortabler als das Plugin für Joomla!1.5.xx.
Nach der Installation und dem Aufruf des Plugins stehen diese Optionen zur Verfügung. Sie sind so gut kommentiert, dass keine weitere Beschreibung notwendig ist.
[Bearbeiten] Download
Das Plugin ist auf joomlacode.org erhältlich.
