Mehrere Domains - ein Joomla!

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

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 - Folder blue.png DeinJoomla!\templates\firma1 - Startseite ist Id 1
  • Firma 2 - firma2.de - Folder blue.png DeinJoomla!\templates\firma2 - Home der Firma 2 ist Id 20
  • Firma 3 - firma3.de - Folder blue.png DeinJoomla!\templates\firma3 - Home der Firma 3 ist Id 30

[Bearbeiten] Lösung 1: Drei Unterverzeichnisse mit je einer File html.png index.html

Die Verzeichnisse Folder blue.png DeinJoomla!\firma1, Folder blue.png DeinJoomla!\firma2 und Folder blue.png 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 File php.png 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 File xml.png 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 Folder blue.png \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.

Multidomain basisoptionen.png
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.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge