[SOLVED+TUTORIAL] phpBB-Header/Footer in MediaWiki einbinden

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
BZebra
Mitglied
Beiträge: 576
Registriert: 17.12.2002 22:45
Kontaktdaten:

[SOLVED+TUTORIAL] phpBB-Header/Footer in MediaWiki einbinden

Beitrag von BZebra »

Hallo,

hat schon jemand Mediawiki (die Wiki-Software von Wikipedia) in eine phpBB-Seite (Seite mit phpBB-Header und -Footer) eingebaut oder umgekehrt den phpBB-Header und Footer bei Mediawiki integriert?

Hab schon ewig rumprobiert, nach Tutorials gesucht, hab bei Mediawiki noch nicht mal den HTML-Code gefunden. Die Styles werden alle mit einem css-Sheet bearbeitet.

Die Galerie of User Styles gibt auch nicht wirklich viel her http://meta.wikimedia.org/wiki/Gallery_of_user_styles und es beschränkt sich wirklich alles aufs Stylesheet.

Hat irgendjemand diese Software erfolgreich in seine Seite integriert und kann mir sagen wie das geht oder gibt es irgendwo ein verständliches Tutorial dafür?

Danke,
Gruß,
BZebra
Zuletzt geändert von BZebra am 26.01.2005 01:43, insgesamt 6-mal geändert.
BZebra
Mitglied
Beiträge: 576
Registriert: 17.12.2002 22:45
Kontaktdaten:

Beitrag von BZebra »

So, ich hab jetzt eine Lösung gefunden. Die Seite ist zwar sehr langsam, aber ich glaube das liegt zum größten Teil an MediaWiki (trotz dem ständigem cachen), man kann allerdings bestimmt einiges beim phpBB-seitigen Teil optimieren, überflüssige Codes rausschmeißen ect.

Versuche jetzt mal niederzuschreiben, was ich gemacht habe, für den Fall, daß es noch andere Leute gebrauchen können (und gegen meine Alzheimer ;)). Tutorial hab ich wie gesagt leider nirgendwo eines gefunden.
________________________________________________

Einbinden von MediaWiki in ein phpBB
MediaWiki Vers. 1.3.9
  1. Zunächst mal habe ich den gesamten Code der index.php von MediaWiki in den Inhaltsbereich einer "Vorlage für in phpBB eingebundene Seiten" kopiert und diese dann als index.php im MediaWiki-Ordner gespeichert. (Mit ein bißchen HTML drum herum siehts besser aus).

    Der root_path muss entsprechend angepasst werden, je nach dem in welchem Ordner die MediaWiki-Software relativ zur phpBB-Forensoftware liegt. Wenn der Ordner neben dem Forum liegt, dann wäre dies z.B. ../forum/.

    -> Testen obs funktioniert.

    Da MediaWiki ein URL-Rewriting hat und die URLs folgendermaßen aussehen http://domain.tld/wiki-ordner/index.php/Hauptseite, verweisen jetzt sämtliche Links und Bild-Urls des phpBB-Headers und Footers auf Dateien im falschen Ordner. Über den root_path konnte ich das nicht anpassen, da sonst der Pfad für die über include eingebundenen Dateien nicht mehr gestimmt hat. Evtl. könnte man dieses URL-Rewriting auch rückgängig machen. Der Artikel Rewrite rules könnte hier weiter helfen.
    Da ich allerdings sowieso eigene Templates für den Header und Footer brauchte, habe ich dort dann die URLs abgeändert.
  2. Der standardmäßig eingestellte MediaWiki-Style MonoBook eignet sich so wie er ist nicht für eine Seite mit zusätzlichem Header und Footer. Ich habe der Einfachheit halber die Standardeinstellungen von MediaWiki auf MySkin gesetzt (ohne Formatierung). Den Style kann man dann nachher selbst anpassen.

    Die Standardeinstellung kann in Version 1.3.9 unter includes/DefaultSettings.php in der Zeile

    Code: Alles auswählen

    # See list of skins and their symbolic names in language/Language.php
    $wgDefaultSkin = 'monobook';

    geändert werden. Hier einfach

    Code: Alles auswählen

    'myskin'
    einsetzen.
  3. phpBB und MediaWiki verwenden nicht die gleiche Zeichenkodierung. phpBB verwendet iso-8859-1 und MediaWiki UTF-8.
    Da sich die neue Seite aus Teilen beider Skripte zusammensetzt, werden beide Zeichenkodierungen geladen, der Browser entscheidet sich dann für eine davon (welche ist von Browser zu Browser verschieden). Hat man nun Umlaute oder Sonderzeichen in Header oder im gerade dargestellten Inhalt von MediaWiki, wird in jedem Fall einer der beiden Bereiche nicht korrekt dargestellt.

    Aus diesem Grund habe ich ein eigenes Template und eine eigene Sprachdatei für den Header und Footer erstellt.
    • In der lang_main.php habe ich die Zeile

      Code: Alles auswählen

      $lang['ENCODING'] = 'iso-8859-1';
      durch

      Code: Alles auswählen

      $lang['ENCODING'] = 'utf-8';
      ersetzt und die Datei unter dem Namen lang_main_wiki.php gespeichert.
    • In der functions.php alle

      Code: Alles auswählen

      /lang_main.
      durch

      Code: Alles auswählen

      /lang_main_wiki.
      ersetzt und die Datei als functions_wiki.php gespeichert.
    • In common.php die Zeile

      Code: Alles auswählen

      include($phpbb_root_path . 'includes/functions.'.$phpEx); 
      durch

      Code: Alles auswählen

      include($phpbb_root_path . 'includes/functions_wiki.'.$phpEx);
      ersetzt und als common_wiki.php gespeichert.
    • In page_header.php die Zeilen

      Code: Alles auswählen

      $template->set_filenames(array(
      	'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
      );
      durch

      Code: Alles auswählen

      $template->set_filenames(array(
      	'overall_header_wiki' => ( empty($gen_simple_header) ) ? 'overall_header_wiki.tpl' : 'simple_header.tpl')
      );
      und weiter unten noch mal

      Code: Alles auswählen

      $template->pparse('overall_header');
      durch

      Code: Alles auswählen

      $template->pparse('overall_header_wiki');
      ersetzt und die Datei ebenfalls als page_header_wiki.php gespeichert.
    • In der overall_header.tpl in der Zeile

      Code: Alles auswählen

      .topictitle,h1,h2	{ font-weight: bold; font-size: {T_FONTSIZE2}px; color : {T_BODY_TEXT}; }
      den Part

      Code: Alles auswählen

      ,h1,h2
      entfernen, die notwendigen Korrekturen für die URLs vornehmen (siehe Kommetar oben), damit alles wieder passt, und auch unter overall_header_wiki.tpl speichern.
    • So wie bei page_header.php und overall_header.tpl dann auch für page_tail.php und overall_footer vorgehen.
    • In der index.php von MediaWiki sind noch folgende Änderungen notwendig:
      common in common_wiki umbenennen, page_header in page_header_wiki und page_tail in page_tail_wiki.
    Diese ganzen Dateien enthalten natürlich Codes, die nur für die Darstellung eines Headers und Footers garnicht notwendig sind. Kann man einiges rausschmeißen.
  4. Als letztes bleibt jetzt noch die Korrektur der Texte, die im Header und Footer angezeigt werden (i.d.R. in der lang_main(_wiki).php zu finden oder im Template). Hier müssen alle Umlaute und Sonderzeichen in die UTF-8-Codes umgewandelt werden. (Text ins Notepad kopieren, mit Codierung UTF-8 abspeichern und in einem PHP-Editor öffnen).

    Hier mal ein paar häufige Umlaute und Sonderzeichen:

    Code: Alles auswählen

    Ä = Ä
    Ö = Ö
    Ü = Ãœ
    
    ä = ä
    ö = ö
    ü = ü
    
    ß = ß
    
    © = ©
    
So, mehr fällt mir jetzt nicht ein. Würde mich über Verbesserungsvorschläge freuen.

MediaWiki auf meiner phpBB-Seite (mit MySkin als Standard-Einstellung) und hier die zugehöriger index.php:

[ externes Bild ]

Man kann übrigends auch die Original MediaWiki Software neben der veränderten Version laufen lassen und die selbe Datenbank verwenden. Dazu muss man nur in der LocalSettings.php den script_path anpassen.

Gruß,
BZebra
cynic_m
Mitglied
Beiträge: 1
Registriert: 03.04.2005 11:38

Beitrag von cynic_m »

hallo bzebra

ich habe dein howto schritt für schritt nachgemacht, aber bei mir kommen immer fehlermeldungen von wegen 'header already sent' oder so. hast du seither noch etwas anderes gemacht?

ich habe dein lexikon bei skoliose.net gesehen und ich möchte auch ein mediawiki ins phpbb einbinden.. ich habe es mit einem anderen approach versucht, der dann den stil des phpbb übernimmt, etwas schneller ist, als dein approach, aber leider kann man damit nicht editieren.

noch eine andere frage, hast du dich jemals mit user registrierung der beiden systeme befasst? oder müssen deine user bei beiden systeme registrieren?

ok, bis bald..
Benutzeravatar
blondi
Mitglied
Beiträge: 134
Registriert: 21.08.2004 19:24

Beitrag von blondi »

hat sich da weiter was getan? würde das auch gerne einbauen aber komme nicht ganz klar...


lieben gruss
BZebra
Mitglied
Beiträge: 576
Registriert: 17.12.2002 22:45
Kontaktdaten:

Beitrag von BZebra »

Sorry für die späte Antwort, sehe das erst jetzt.
cynic_m hat geschrieben:ich habe dein howto schritt für schritt nachgemacht, aber bei mir kommen immer fehlermeldungen von wegen 'header already sent' oder so. hast du seither noch etwas anderes gemacht?
"Header already sent" kommt bei mir nicht, wenn die Header-Informationen included werden, also mit dem Befehl

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Man darf keinen Tags à la <head></head> in die Seite einfügen.
ich habe dein lexikon bei skoliose.net gesehen und ich möchte auch ein mediawiki ins phpbb einbinden.. ich habe es mit einem anderen approach versucht, der dann den stil des phpbb übernimmt, etwas schneller ist, als dein approach, aber leider kann man damit nicht editieren.
Das Lexikon ist kein MediaWiki, das ist ein Code der hier im Forum an einer anderen Stelle diskutiert wurde: http://www.phpbb.de/viewtopic.php?p=370448#370448
noch eine andere frage, hast du dich jemals mit user registrierung der beiden systeme befasst? oder müssen deine user bei beiden systeme registrieren?
Versucht nicht, aber nach Infos hierzu gesucht, und nach dem was ich hierzu gefunden habe, scheint das sehr schwierig zu sein.

Bei der MediaWiki Version die ich installiert hatte fehlte auch noch komplett das Tutorial um persönliche Einstellungen zu ändern. Müsste mal die neueste installieren ob sich da zwischenzeitlich was zum positiven entwickelt hat.
dominik12
Mitglied
Beiträge: 29
Registriert: 15.08.2005 12:55
Kontaktdaten:

Beitrag von dominik12 »

Moin,

wäre auch sehr daran interessiert, den Mod einzubauen. Versuche es gerade mit der Wikimedia Version 1.4.7.

Bekomme allerdings folgende Fehlermeldung, wenn ich die index.php aufrufen will:
Parse error: parse error, unexpected '<' in /opt/lampp/htdocs/wiki/index.php on line 21
Bei Line 21 fängt gerade der reinkopierte Code von der wiki index.php an.
Scheint er also garnicht zu akzeptieren.
BZebra
Mitglied
Beiträge: 576
Registriert: 17.12.2002 22:45
Kontaktdaten:

Beitrag von BZebra »

Mit der aktuellen Version funktioniert meine Beschreibung nicht mehr so ganz.

In die index.php darf kein HTML-Code rein, wie ich es oben gemacht habe, sonst erscheint die Fehlermeldung, daß der Header schon gesendet wurde.

Es funktioniert nur wenn man Header und Footer per include einbindet. Es dürfen also ausschließlich die Codeteile aus dieser Vorlage hier http://www.phpbb.de/doku/kb/artikel.php?artikel=72 reinkopiert werden.

/***** Inhaltsbereich ******/

Wird dort quasi duch den gesamten Inhalt der index.php von Mediawiki zwischen <?php und ?> ersetzt.

--

Dann gibt es bei der Intallation die Spachauswahl Deutsch - Latin1. Das entspricht dem Zeichensatz, der auch von phpbb.de verwendet wird, womit man das UTF-8 Problem umgehen kann.

Infos hierzu: http://meta.wikimedia.org/wiki/Help:Con ... utEncoding

Einstellungen in LocalSettings.php zur Zeichencodierung:

$wgInputEncoding
The encoding of the input text.

Note: LanguageUtf8.php normally overrides this unless you set $wgUseLatin1 to true.
Default Value - 'ISO-8859-1'

$wgOutputEncoding
The encoding of the output text.

Note: LanguageUtf8.php normally overrides this unless you set $wgUseLatin1 to true.
Default Value - 'ISO-8859-1'

$wgUseLatin1
Enable ISO-8859-1 compatibility mode.

Default Value - false

Weitere Einstellungsmöglichkeiten:

How do I change the default skin for users that are not logged in?

Set $wgDefaultSkin = 'monobook';

in LocalSettings.php (see example)

I want my wiki to appear in a frame as part of my site, but it keeps popping out of the frame

MediaWiki contains protection against abusive use of frame sets. Unfortunately this will trap your intentional frames as well -- to remove this, edit stylesheets/wikibits.js and remove these lines:

(Please note that if the wikibits.js file isn't in stylesheets/wikibits.js it may be skins/common/wikibits.js)

// Un-trap us from framesets
if( window.top != window ) window.top.location = window.location;

By adding the following line to LocalSettings.php, it is possible to entirely disable anonymous edits:

#Entirely disable Anonymous Edits
$wgWhitelistEdit = true;

Gemeinsame User-Verwaltung mit phpBB:

http://217.160.138.71/development/index ... Auth_phpBB
http://www.phpbb.de/viewtopic.php?p=534770#534770

--

Wenn man den Bereich um das Wiki herum noch gestalten möchte, dann wäre ein zweites Template-System, so wie ich es wegen dem UTF-8 Problem gemacht hatte, günstig. Man kann dann in overall_header.tpl und overall_footer.tpl seinen HTML-Code speziell für die Wikiseite einbauen (auf den übrigen Forumsseiten möchte man den ja nicht haben).

Außerdem wäre es auch günstig, wenn man den Header von allen Style Einstellungen befreit, die nicht den Header und Footer betreffen, weil das sonst teils ein etwas unschönes Bild gibt, wenn sich die beiden Stile von phpBB.de und Mediawiki vermischen.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“