+ Antworten
Seite 1 von 25 1 2 3 4 5 11 ... LetzteLetzte
Ergebnis 1 bis 10 von 249

Thema: JOOMLA! Multi-Domain fähig

  1. #1
    Verbringt hier viel Zeit
    Registriert seit
    07.01.2006
    Beiträge
    574
    Bedankte sich
    18
    Erhielt 60 Danksagungen
    in 43 Beiträgen

    Standard JOOMLA! Multi-Domain fähig bzw. mehrere Webseiten mit einer Installation

    Servus an alle interessierten,
    heute machen wir unser JOOMLA! Multi-domainfähig bzw. wir betreiben mehrer verschiedene Seiten mit einer Installation…

    Als erstes möchte ich mal sagen, das diese Lösung nicht von mir stammt, ich habe hier nur zwei Lösungen zusammen getragen.

    Wer also die Suche verwendet hat, kennt die Lösung schon….
    Mein DANK für diese Lösung gilt „CirTap“ und „Lemm“

    So, nun zum Thema:

    Dieser „hack“ ermöglicht es eine JOOMLA! Installation für mehrere Domains die sich bestimmte Inhalte teilen zu verwenden.

    Bei Komponenten wie z. B. einem Gästebuch gilt zu beachten, das diesen auf allen Seiten gleich ist, außer man installiert es unter einem anderen Namen erneut (Namen einer Komponente ändern).

    Jede Domain kann ein eigenes Template (mit verschiedenen modulpositionen haben, also z. B. „left1“ left2“ usw.) haben, dies bietet sich an um jeder Domain (bzw. Seite) eine individuelle Navigation zu verpassen (das braucht man, wenn man bestimmte Inhalte nur auf einer Seite haben möchte). Es kann im prinzip jeder Wert der config.php für jede Domain angepasst werden.

    Bei der Navigation sollte man das „mainmenu“ nur für interne Zwecke verwenden, es wird also auf keiner der Domains veröffentlicht. Für jede Domian wir eine neue Navigation angelegt (sofern jede Domain eine eigene Navigation erhalten soll).

    Probleme gibt es, wenn man bestimmte Inhalte nur auf einer Domain haben will und die „suche“ anbietet. Die suche findet alle Inhalte, hier könnte man aber einen „hack“ des searchmoduls schreiben, der es erlaubt die Bereiche und oder Kategorien zu wählen, welche durchsucht werden sollen. (Falls das jemand machen kann und will, würd ich mich freuen ;-) )

    Was ist zu tun???
    - Erstellen einer Datei, die die Domainspezifischen-Änderungen definiert, die Datei (config-domains.php) muss im Hauptverzeichnis von Joomla liegen, also "neben" configuration.php

    - Einzeiliger Patch der "admin.config.php" damit die Datei automagisch von configuration.php geladen wird. Nach dem "Patch" am besten einmal in "Global Configuration" und die Einstellungen neu abspeichern, damit ist der ****** eingebunden

    - Einzeiliger Patch der "joomla.php", damit der Cache pro Domain getrennt generiert wird

    - Patch der index.php damit jede domain eine eigene Startseite hat.
    Und damit

    Das sind also drei Zeilen Code, die eingefügt werden müssen aber mit viel Wirkung. Welche Zeilen dies sind und wo sie genau hinkommen ist in den Kommentaren am Anfang des Skripts beschrieben.

    Wenn man den Namen "config-domains.php" nicht mag, kann man diesen auch ändern, man muss aber diesen auch im Patch von "admin.config.php" entsprechend anpassen.

    Hier folgen die Änderungen am Code:
    UND GANZ GANZ WICHTIG VORGER ein B A C K U P machen...
    Weil keine Garantie !!!!!
    Code:
    in der joomla.php
    wird:
    
    $options = array(
        'cacheDir'         => $mosConfig_cachepath . '/',
        'caching'         => $mosConfig_caching,
        'defaultGroup'     => $group,
        'lifeTime'         => $mosConfig_cachetime
        ); 
    
    
    
    wird zu:
    
    $options = array(
        'cacheDir'         => $mosConfig_cachepath . '/',
        'caching'         => $mosConfig_caching,
        'defaultGroup'     => preg_replace("/[^a-zA-Z0-9]/", '', $group . $GLOBALS['mosConfig_live_site']),
        'lifeTime'         => $mosConfig_cachetime
        ); 
    
    
    
    
    
    in /administrator/components/com_config/admin.config.php
    
    wird:
    
    $config = "<?php n";
      $config .= $row->getVarText();
      $config .= "setlocale (LC_TIME, $mosConfig_locale);n";
      $config .= '?>'; 
    
    
    zu:
    
    $config = "<?php n";
      $config .= $row->getVarText();
      /* Domainspezifische Aenderungen */
      $config .= "require ('config-domains.php');n";
      $config .= "setlocale (LC_TIME, $mosConfig_locale);n";
      $config .= '?>'; 
    
    
    
    
    
    in der index.php (joomla nicht template) ca. Zeile 53 muss dann so aussehen (DOMAIN1.de ist eure domain...) bei den ItemIDs träg man dann die ID des links ein, der startseite sein soll
    
    // retrieve some expected url (or form) arguments
    $option = strval( strtolower( mosGetParam( $_REQUEST, 'option' ) ) );
    $Itemid = intval( mosGetParam( $_REQUEST, 'Itemid', null ) );
    
    if ($option == '') {
    
    switch ($_SERVER['HTTP_HOST']) { 
        case "DOMAIN1.de":            		$Itemid="361"; break; 
        case "DOMAIN2.de":              		$Itemid="383"; break; 
    
        default: $Itemid=""; 
        }
    Kritik, bedenken, Anregungen??
    Dann her damit.... Und wer den "hack" für die suche-schreiben kann oder will... Bitte hier Posten....

    UND GANZ GANZ WICHTIG VORGER ein B A C K U P machen...
    Weil keine Garantie !!!!!

    Beste Grüße
    floxworld

    dereventstylist.de - the art of marketing & communication
    Geändert von cybergurk (11.07.2007 um 23:37 Uhr) Grund: link zur umbenennung einer Komponente aktualisiert^^

  2. Erhielt Danksagungen von:


  3. #2
    Verbringt hier viel Zeit
    Registriert seit
    07.01.2006
    Beiträge
    574
    Bedankte sich
    18
    Erhielt 60 Danksagungen
    in 43 Beiträgen

    Standard

    Ach ja,
    hier der Code für die "domain-config.php"

    Code:
    <?php
    // no direct access
    defined( '_VALID_MOS' ) or die( 'Restricted access' );
    /**
     * WebMechanic Joomla Tuneup Utility "Dynamic Host Configuration"
     *
     * This library is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     *
     * This work is licensed under a Creative Commons License.
     * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/2.0/de/
     * or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
     *
     * @version 0.0.2 $Id$
     * @package JoomlaTuneups
     * @license http://creativecommons.org/licenses/by-nc/2.0/de/
     * @author  CirTap <ct@webmechanic.biz>
     */
    
    /**
     * Anpassen von Joomla! Konfigurations-Variablen in Abhaengigkeit
     * der aktuellen Sub-Domain fuer zeemes.de
     * Datei speichern als 'config-domains.php' im Joomla-Root.
     *
     * Im Administrator, Global Configuration ist eine der Domains als Vorgabe
     * einzutragen sowie das hierzu passende Template als Standard festzulegen.
    
     Damit dieser Skript automatisch geladen wird muss
       /administrator/components/com_config/admin.config.php
     modifiziert werden.
     Als Vorgabe wird der Dateiname 'config-domains.php' genommen.
     Diese Änderung sorgt dafür, dass die Datei automatisch geladen
     wird und die Änderungen allen Skripten im Frontend bekannt sind.
    
    		$config .= $row->getVarText();
    		$config .= "setlocale (LC_TIME, \$mosConfig_locale);\n";
    zu
    		$config .= $row->getVarText();
    		// Domainspezifische Aenderungen
    		$config .= "@include('config-domains.php');\n";
    		$config .= "setlocale (LC_TIME, \$mosConfig_locale);\n";
    
     Verwenden des Cache.
     Werden verschiedene Domains/Templates aber eine Datenbank verwendet UND
     der Joomla-Cache aktiviert, ist eine weitere Änderung an der Datei
       /includes/joomla.php
     erforderlich. Die Änderung sorgt für eindeutige Cache-Dateien.
     Hierfür ist zu ändern: class mosCache, function &getCache(), ca. Zeile 324
    
    		$options = array(
    			'cacheDir' 		=> $mosConfig_cachepath . '/',
    			'caching' 		=> $mosConfig_caching,
    			'defaultGroup' 	=> $group . $GLOBALS['mosConfig_live_site'],
    			'lifeTime' 		=> $mosConfig_cachetime
    		);
    
    
     Viel Spaß,
     CirTap
    
     */
    
    // Einfacher Test ob der Joomla! Administrator am Start ist.
    // Wenn ja, wird der Script hier beendet
    if (strstr($_SERVER['REQUEST_URI'], '/administrator') !== false) {
    	return;
    }
    // NICHT ÄNDERN!
    // Arbeitskopie von $mosConfig_live_site
    $jos_url = parse_url($mosConfig_live_site);
    
    // NICHT ÄNDERN!
    // Berechnen des Host- bzw. Domain-Namen.
    // Alte Browser und HTTP 1.0 "user agents" senden HTTP_HOST nicht.
    // $jos_host wird hier als Vorgabe aus den Vorgabewerten ermittelt.
    // 1. $_SERVER['HTTP_HOST']   entspricht dem vom Browser gesendeten Domain-Namen
    // 2. $jos_url['host']        Domainname aus $mosConfig_live_site
    // 3. $_SERVER['SERVER_NAME'] ist der "echte" Name des Web-Servers.
    if (isset($_SERVER['HTTP_HOST'])) {
    	$jos_host = strtolower($_SERVER['HTTP_HOST']);
    } else {
    	$jos_host = isset($jos_url['host']) ? $jos_url['host'] : $_SERVER['SERVER_NAME'];
    }
    
    /**
     * Basis-Konfiguration
     *
     * Pro (Sub-)Domain (Hostname) entsprechende "case" Blöcke anlegen.
     * WICHTIG! Wenn eine Webseite sowohl über 'domain1.de' als auch
     *          ueber 'www.domain1.de' erreichbar ist müssen BEIDE Namen
     *          eingetragen werden.
     *
     * Hier können (theoretisch) alle Variable aus configuration.php zur
     * Laufzeit umgestellt bzw. anpasst werden.
     *
     * BESONDERE VARIABLEN:
     * - $jos_template = Name des Unterordners in /templates/ fuer das zu verwendende
     *                   Template einer Domain. Die Umschaltung erfolgt automatische
     *                   durch den integrierten "Template-Wechsler" von Joomla.
     */
    
    switch ($jos_host) {
    case "domain1.de":
    case "www.domain1.de":
    	$jos_template = 'template1';
    	break;
    
    case "domain2.de":
    case "www.domain2.de":
    	$jos_template = 'template2';
    	break;
    
    case "shop.domain1.de":
    	$jos_template = 'shop-template';
    	break;
    
    default:
    	$jos_template = '';
    	/* andere werte behalten ihre Vorgaben aus configuration.php */
    }
    
    /* ENDE DER Basis-Konfiguration */
    
    
    // "Dynamic Web-Site"
    // Der Wert von $mosConfig_live_site wird dynamisch an die aktive (Sub-)Domain
    // angepasst unter Beruecksichtigung von SSL- und Proxy-Verbindungen.
    // Protokoll-Art
    if ( isset($_SERVER["SSL_PROTOCOL"]) ) {
    	$mosConfig_live_site = 'https://';
    } else {
    	$mosConfig_live_site = 'http://';
    }
    // Hostname:
    $mosConfig_live_site .= $jos_host;
    // IP-Port z.B. via Proxies
    if ($_SERVER["SERVER_PORT"] !=80 && $_SERVER["SERVER_PORT"] != 443) {
    	$mosConfig_live_site .= ':' . $_SERVER["SERVER_PORT"];
    }
    // ggf. Pfadname dahinter:
    $mosConfig_live_site .= @$jos_url['path'];
    
    // Simuliert das Formular des Template-Wechsler
    if (!empty($jos_template)) $_REQUEST['jos_change_template'] = $jos_template;
    
    ?>
    also viel spass....

    beste grüße floxworld

    dereventstylist.de - the art of marketing & communication
    Geändert von floxworld (08.09.2006 um 20:24 Uhr)

  4. Erhielt Danksagungen von:


  5. #3
    War schon öfter hier Avatar von Holli
    Registriert seit
    27.08.2005
    Beiträge
    150
    Bedankte sich
    4
    Erhielt 22 Danksagungen
    in 22 Beiträgen

    Standard

    Hi!

    Ich kann nur bestätigen, dass die Variante erstklassig funktioniert.
    Sie lässt sich sogar noch dadurch erweitern, dass man jeder Domain für automatische Benachrichtigungen, z.B. bei Neuregistrierungen, eine eigene Mailadresse zuordnen kann.

    Einziger Nachteil: Pagerank-verifier melden die Domains zwar mit richtigem PR aber als evtl. gespiegelt.

    LG Holli

  6. #4
    Verbringt hier viel Zeit
    Registriert seit
    07.01.2006
    Beiträge
    574
    Bedankte sich
    18
    Erhielt 60 Danksagungen
    in 43 Beiträgen

    Standard

    servus,
    wie gesagt, man kann jeden wert der config.php für jede domain ändern...

    das mit dem spiegeln stimt, wen man immer die gleichen menüs hat...

    es dient ja eher dazu mehrer unterschiedliche seiten mit einer joomla-installation zu haben...

    beste grüße
    floxworld

  7. #5
    War schon öfter hier Avatar von Holli
    Registriert seit
    27.08.2005
    Beiträge
    150
    Bedankte sich
    4
    Erhielt 22 Danksagungen
    in 22 Beiträgen

    Standard

    Zitat Zitat von floxworld Beitrag anzeigen
    servus,
    es dient ja eher dazu mehrer unterschiedliche seiten mit einer joomla-installation zu haben...
    Hast schon recht.
    In meinem Falle lege ich aber zur Zeit noch mehr Wert auf unterschiedliche templates, header, footer und Modul-Positionen.
    Die Menüs kommen bestimmt später dran.

    Lg Holli

  8. #6
    Verbringt hier viel Zeit
    Registriert seit
    07.01.2006
    Beiträge
    574
    Bedankte sich
    18
    Erhielt 60 Danksagungen
    in 43 Beiträgen

    Standard

    servus,
    nur template wechseln würd ich aber nicht unbedingt machen, weil du dann echt das googel spiegelungsproblem hast...

    beste grüße
    floxworld

  9. #7
    Neu an Board
    Registriert seit
    09.04.2006
    Beiträge
    14
    Bedankte sich
    2
    1 Danksagung in 1 Beitrag

    Standard

    Wie schaut es mit den Usern auf diesen verschiedenen Domains aus? Sind die auch überall gleich?

  10. #8
    Verbringt hier viel Zeit
    Registriert seit
    07.01.2006
    Beiträge
    574
    Bedankte sich
    18
    Erhielt 60 Danksagungen
    in 43 Beiträgen

    Standard

    servus...
    ja die user sind auch alle gleich....

  11. #9
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.267 Danksagungen
    in 1.935 Beiträgen

    Standard

    Kleine Anmerkung:
    Itemids sind Integer, warum machst du nen String draus?

    PHP-Code:
    $Itemid="361" 
    Gruß
    ec

  12. #10
    Verbringt hier viel Zeit Avatar von Lemm
    Registriert seit
    01.03.2005
    Ort
    Berlin
    Beiträge
    640
    Bedankte sich
    13
    Erhielt 85 Danksagungen
    in 83 Beiträgen

    Standard

    den patch der index.php kann man sich auch sparen indem man die ItemIds gleich in die cases mit einbringt
    MfG Lemm
    --------------------------------
    :. http://joomla-clantools.de .::. http://lemmpire.de .::. http://w4sp.de .:
    .:::: AJAX ist auch nur n Putzmittel ::::.

  13. Erhielt Danksagungen von:


+ Antworten
Seite 1 von 25 1 2 3 4 5 11 ... LetzteLetzte

Ähnliche Themen

  1. Wordpress-Beiträge in Joomla importieren
    Von lcsluetzeln im Forum Beta HowTos
    Antworten: 7
    Letzter Beitrag: 26.03.2008, 15:50
  2. Problem bei neue Domain
    Von jovi im Forum Joomla Installation
    Antworten: 4
    Letzter Beitrag: 03.09.2006, 13:24
  3. Ist Joomla das richtige für mich?
    Von Cupix im Forum Joomla Anfänger
    Antworten: 2
    Letzter Beitrag: 25.08.2006, 12:20
  4. Welches Forum arbeit am besten mit Joomla zusammen?
    Von Cupix im Forum Joomla Komponenten
    Antworten: 20
    Letzter Beitrag: 17.08.2006, 16:31
  5. JACL PLUS auf Joomla 1.07
    Von webjogi73 im Forum Joomla Installation
    Antworten: 11
    Letzter Beitrag: 18.02.2006, 14:04

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein