Na hoffentlich krieg´ ich das nach der langen Zeit wieder fehlerfrei hin
Bin gerade dabei, unsere Homepage und das Forum komplett zu erneuern und hab´s daher nicht mehr im Einsatz.
Eines vorweg: Es ist damit NICHT möglich, das Forum mit 2 verschiedenen Themes zu betreiben!
Grundvoraussetzung das alles funktioniert ist, dass der User JavaScript in seinem Browser aktiviert hat!
Also ... bei mir war das so, dass das Forum vom Layout her zum Rest der auf Frames basierenden HP passen sollte. Wenn nun aber das Forum in einem neuen Fenster bzw. Tab geöffnet wurde, sei es durch einen Klick auf einen Link in einer Benachrichtigungsmail oder irgendeinen Link im Forum selbst, sollte ein anderes Layout dargestellt werden, da das zur HP passende Layout als eigenständige Seite doch etwas "trist" aussah.
Dazu sind zunächst einmal 2 verschiedene CSS-Dateien nötig.
Du musst also als erstes im Admin-CP unter "Foreneinstellungen --> Ändern --> Server- und Optimierungs-Optionen --> CSS-Medium" die Option "Speicherung in Datei im Ordner "css" wählen und bestätigen. Danach findest Du im Ordner /css die entsprechende Datei (für das MyBB-Default-Theme ist es die Datei "theme_2.css"). Welches Theme welche Datei erstellt hat, steht dabei immer am Anfang der CSS-Datei.
Diese Datei kopierst Du nun innerhalb des CSS-Ordners in 2 neue Dateien; nennen wir sie z.B. mal "style_mit_frames.css" und "style_ohne_frames.css". In einer Standard-MyBB-Installation sollten nun also 5 Dateien im Unterordner /css vorhanden sein:
- theme_1.css
- theme_2.css
- style_mit_frames.css
- style_ohne_frames.css
- index.html
Diese beiden neuen CSS-Dateien kannst Du nun je nach Bedarf verändern (Hintergrundfarbe, -grafik, Link- und Textfarbe, Buttons etc.), so dass das Forum - je nach Aufrufart - ein komplett anderes Design erhält.
Als nächstes öffnest Du in Deinem Theme das Template "headerinclude" und fügst dort am Ende folgenden Code ein:
PHP-Code:
<script language="JavaScript" type="text/javascript">
<!--
if (parent.location.href == self.location.href)
{
document.write('<link rel="stylesheet" type="text/css" href="{$mybb->settings['bburl']}/css/style_ohne_frames.css" />');
}
else
document.write('<link rel="stylesheet" type="text/css" href="{$mybb->settings['bburl']}/css/style_mit_frames.css" />');
// -->
</script>
<noscript>
<link rel="stylesheet" type="text/css" href="{$mybb->settings['bburl']}/css/style_mit_frames.css" />
</noscript>
Je nachdem ob das Forum nun in einem Frame oder als eigenständiges Fenster läuft, wird die entsprechende CSS-Datei - und damit das Layout - geladen. In der <noscript>-Anweisung wird notiert, welche Datei geladen werden soll, falls der User JavaScript deaktiviert hat.
Bitte beachte dabei, das Änderungen im Admin-CP unter "Themes --> Ändern/Entfernen --> Dein Theme" ab der Rubrik "Body (Angepasst in diesem Theme-Stil)" nicht mehr berücksichtigt werden!
Alle Änderungen zum Layout müssen in den neuen CSS-Dateien im Ordner /css vorgenommen und hochgeladen werden.
Viel Spaß damit!