Mehrere Domains - ein Joomla!

Aus Joomla! Dokumentation

Wechseln zu: Navigation, Suche

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

Lösung 1: Drei Unterverzeichnisse mit je einer Datei:file_html.png index.html

Die Verzeichnisse Datei:folder_blue.png DeinJoomla!\firma1, Datei:folder_blue.png DeinJoomla!\firma2 und Datei: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">

Lösung 2: Plugin Multidomain

Gefunden http://www.joomlaportal.de/beta-howtos/58249-joomla-multi-domain-f-hig-21.html

Eine Datei: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 Datei: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 Datei:folder_blue.png \DeinJoomla!\plugins\system stellen.

Team Navigation