Hallo Leute
wollte mal fragen ob jemand weiss ob folgendes Möglich ist.
Ich möchte das bei dem aufruf von
www.aaa.de das Layout mit namen aaa verwendet wird und wenn das ganze über domain www.bbb.de aufgerufen wird, das Layout mit namen bbb verwendet wird.
Im hintergrund soll aber nur eine installation von pragma laufen.
Weiss jemand ob soetwas geht?
oder muss ich zwei eigenständige pragmas laufen haben die auf ein und die selbe datenbank zugreifen ?
mfg
Hallo Kekule,
eine einfach Lösung wäre, sofern das Theme auf Basis der Themeengine läuft... aus einem Theme 2 zu machen.
Also eine 2. theme.html anzulegen + der images + style.css.
functions.php und theme.php müssten bei dieser Lösung für beide Themes gleich sein.
Könnte dann so aufgebaut sein im Themeordner vom eigentliche Theme:
images
images2
style
style2
theme.html
theme2.html
fuctions.php
theme.php
in der functions.php müsste dann an der Stelle an der die Themedatei definiert wird (Zeile 18) das:
define("MX_THIS_THEMEFILE","theme.html");
durch das:
$ahost= "www.aaa.de";
$host = $_SERVER['HTTP_HOST'];
$url = $host;
if ($url == $ahost) {
define("MX_THIS_THEMEFILE","theme.html");
}
else {
define("MX_THIS_THEMEFILE","theme2.html");
}
ersetzt werden.
hoffe es war einigermaßen verständlich.
Es gibt sicher noch die andere Möglichkeit das Theme wirklich zu wechseln, aber da spielen Userrechte u.s.w. eine Rolle die beachtet werden müssen und da hörts bei mir leider auf.
Hallo henne
Danke für den Tipp, muss ich mir ansehen.
mfg
Hallo henne
Danke, das klappt.
ausgezeichnet:)
Du bist einfach grossartig, ein Genie, Mir fehlen einfach die Worte um deine Genialität zum ausdruck zu bringen. :) :thumbup:
mfg
hehe nu is aber gut ;)
schön wenns funzt.
Nachtrag:
$ahost= "www.aaa.de";
$host = $_SERVER['HTTP_HOST'];
$url = $host;
if ($url == $ahost) {
define("MX_THIS_THEMEFILE","theme.html");
}
else {
define("MX_THIS_THEMEFILE","theme2.html");
}
ist ein wenig zuviel die Zeile:
$url = $host;
ist überflüssig. Das ganze müsste dann so abegeändert aussehen.
$ahost= "www.aaa.de";
$host = $_SERVER['HTTP_HOST'];
if ($host == $ahost) {
define("MX_THIS_THEMEFILE","theme.html");
}
else {
define("MX_THIS_THEMEFILE","theme2.html");
}
ist nicht schlimm funktionieren tut beides.. ist halt nur nicht notwendig diese Zeile ;)
Hallo henne
ein frage noch, die sysimages funken nicht, wo müsst ich das ändern ?
oder geht das nicht, hab bisweilen noch nichts gefuinden wo die aufgerufen wird.
mfg
Hi Kekule dafür muss an der mx_themes.php im Ordner includes einiges geändert werden...
ich häng Dir hier mal die geänderte an sonst wird das hier zu viel.
WICHTIG!!! die alte mx_themes.php sichern !
Du musst dann noch in folgenden Zeilen www.aaa.de durch Deine Domain ersetzen:
470, 731, 792
jetzt nur noch im Themeordner einen Ordner sys_images2 anlegen die Bildchen für das 2. Theme rein und fertig.
[gelöscht durch Administrator]
Hallo Henne
Habe da noch eine Frage, nachdem ich jetzt doch nicht ganz glücklich mit der Lösung bin.
Gibt es eine Möglichkeit in der ich einfach wirklich sage, wenn die Seite von der Domain aufgerufen wird wird Themeordner_A verwendet und wenn es von einem anderen Domain kommt nehme ich Theme_B
damit ich auch unterschiedlich functions und theme.php verwenden kann.
mfg
optimal ist die Lösung nicht da hast Du wohl Recht für einfache Sachen aber ausreichend.
Zitat
Gibt es eine Möglichkeit in der ich einfach wirklich sage, wenn die Seite von der Domain aufgerufen wird wird Themeordner_A verwendet und wenn es von einem anderen Domain kommt nehme ich Theme_B
ich denke schon dass das möglich ist, da muss ich mich selber aber erst mal schlau machen ;)
Da für Anonyme User ein Themewechsel nicht vorgesehen ist wird das ein wenig komplexer denke ich, so tief steck ich dann da auch nicht drinn um das jetzt auf die Schnelle zu beantworten.
Ich meld mich sobald ich was in Erfahrung bringen konnte.
Moin :)
es ist wirklich das Beste, dies über 2 verschiedene Themes zu realisieren, das macht das Ganze etwas einfacher...
Suche in der mainfile.php folgende Zeilen:
// System-Funktionen und unveränderbare Grundeinstellungen laden
require_once("includes/mx_system.php");
Davor schreibst du sinngemäss folgende Zeilen hinzu:
if ($_SERVER['HTTP_HOST']=='aaa.de' || $_SERVER['HTTP_HOST']=='www.aaa.de') {
$GLOBALS["Default_Theme"] = 'einTheme';
} else {
$GLOBALS["Default_Theme"] = 'einAndereTheme';
}
-Die Einstellung, dass die User das Theme wechseln dürfen muss in der Benutzerkonfiguration abgeschaltet sein.
- mit und ohne www evtl. beachten
- den else zweig würde ich zur Sicherheit reinnehmen, eigentlich braucht der nicht sein, aber man weiss ja nie ;)
Hallo Andi
Danke für deine IDee, werde das mal probieren.
was mich noch interessiert, ist es möglich den Seitentitel dadurch auch zu ändern?
mfg
Hi :)
jop, gib Bescheid, ob es funzt ;)
Und ja, den Seitentitel kann man genauso ändern.
if ($_SERVER['HTTP_HOST']=='aaa.de' || $_SERVER['HTTP_HOST']=='www.aaa.de') {
$GLOBALS["Default_Theme"] = 'einTheme';
$GLOBALS["sitename"] = 'ein Seitentitel';
} else {
$GLOBALS["Default_Theme"] = 'einAndereTheme';
$GLOBALS["sitename"] = 'eine andere Überschrift';
}
Hallo Andi
Danke ja klappt.
hab zwar noch kein eigenes zweites theme, aber das mit Seitentitel klappt und es ist toll das es klappt.
könnte man ja fix einbauen in die nächste pragma, einfach eine Möglichkeit bei den Einstellungen
Domain/ theme/ Seitentitel.
Aber das ist nur eine Anregung :)
mfg
Hallo Leute
Nach der Hervorragenden Hilfe von Euch, möchte ich nun einen schritt weiter gehen :)
Ich möchte bei dem zweiten Design keine Linken Blöcke anzeigen lassen.
Bei den einzelnen Modulen läuft das einfach über die Themeengine.
Nur bei der Startseite ist es mir nicht kar wie ich das machen kann. Hat da jemand eine Idee?
Oder weiss jemand wie es anstellen kann das die Blöcke Domainabhängig sind wie das Layout?
mfg
soll bei dem 2. Theme die linke Blockspalte dauerhaft abgeschalten sein ?
Falls ja:
einfach in der functions.php in der Funktion theme_define_blocks()
diese Zeilen auskommentieren:
name = 'block_left';
var[$name]['container'] = 'blocks_left_loop';
var[$name]['function'] = 'themesidebox';
var[$name]['position'] = 'l';
dann noch die linke Blockspalte in der theme.html löschen.