[Alpha] FedGeo integrieren

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 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
TeXoR
Mitglied
Beiträge: 1
Registriert: 28.09.2009 21:14

[Alpha] FedGeo integrieren

Beitrag von TeXoR »

Da ich im Google-weiten Internet keine Anleitung zum Einbinden des FedGeo (von Matroids Matheplanet) in das phpBB3 gefunden habe,
möchte ich hier meine Lösung vorstellen (getestet mit phpBB 3.0.5). Es ist selbstverständlich Ratsam, vor den Änderungen Sicherungskopien der zu ändernden Dateien oder sogar des ganzen Boards zu erstellen. Die Modifikationen erfolgen auf eigene Verantwortung!


Bisher unterstützt:
  • Anzeigen von Formeln in Posts
  • Anzeigen von Formeln in der Vorschau
  • Anzeigen von Formeln in den alten Posts wärend dem Erstellen von Antworten.
  • Button bei den BBCode-Buttons öffnet ein neues Fenster mit dem FedGeo.
Mögliche Erweiterungen:
  • Anzeigen von Formeln in Umfragen
  • Anzeigen von Formeln in der Betreffzeile (vermutlich nicht möglich, da die Formeln eine beliebige Höhe erreichen können.
  • Änderungen von Beiträgen aus FedGeo heruas (vermutlich nicht praktikabel genung um den Aufwand für das Einrichten zu rechtfertingen).
Changelog
  • 30.09.2009 16:46 -> 2.3 inlcudes/function_posting.php: include_once-Pfad korrigiert.
  • 01.10.2009 11:29 -> 2.3 inlcudes/function_posting.php: include_once erneut korrigiert (in Funktion verschoben).

1. Installation von FedGeo
Nach dem Download von FedGeo von der Seite http://www.matheplanet.com sollte man zunächst in der Datei mpmsgtransform.php die Variablenzuweisung $phpbb2 = 0; in $phpbb2 = 1; ändern, damit FedGeo mit phpBB3 kompatibel wird.
Da durch diese Änderung die undefinierte Funktion undo_htmlspecialchars(...) aufgerufen wird (FedGeo 5.3.4), muss diese in der Datei ergänzt werden.
Zum Beispiel:
Finde:

Code: Alles auswählen

include_once('mprdbconnect.php');
dbconnect2();
Darunter Einfügen:

Code: Alles auswählen

function undo_htmlspecialchars($string){
    $string = str_replace("&", "&", $string);
    $string = str_replace(""", "\"", $string);
    $string = str_replace("<", "<", $string);
    $string = str_replace(">", ">", $string);

    return $string;
}
Der Rest der Installation erfolgt nach der mitgelieferten README.txt (hier in einer anderen Reihenfolge dargestellt):
  • Eintragen der Anmelde-Informationen für die Datenbank in die Datei mprdbconnect.php.
  • FedGeo in ein Unterverzeichnis Namens "fed" in das Verzeichnis des Forums kopieren (sodass sich die Datei mpr.php in http://meine.donain.xy/phpBB3/fed/ befindet).
  • Dem Verzeichnis cache die Zugriffsrechte drwxrwxrwx zuweisen.
Zum Testen der Installation kann man die Datei mpr.php aufrufen und dort auf "Lernen" klicken.

Das Script mprchacheclean.php sollte täglich ausgeführt werden, um den Cache zu leeren (eine Anleitung für eine automatisierte Leerung folgt noch).

Siehe auch die beim FedGeo mitgelieferte README.txt.


2. Anpassen von phpBB3:
Hinweis: Im Folgenden wird davon ausgegangen, dass sich das Verzeichnis von FedGeo im Verzeichnis von phpBB3 befindet und "fed" heißt. Ist dies nicht der Fall, so müssen die include_once-Anweisungen entsprechend angepasst werden!

2.1 viewtopic.php
Finde:

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
Darunter einfügen:

Code: Alles auswählen

include_once("fed/mpmsgtransform.php");
Finde:

Code: Alles auswählen

// Second parse bbcode here
	if ($row['bbcode_bitfield'])
	{
		$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
	}
Darunter einfügen:

Code: Alles auswählen

$message = mpmsgtransform($message,0,0,0);
Formlen in fertigen Beiträgen sollten nun bereits korrekt dargestellt werden.

2.2 posting.php
Finde:

Code: Alles auswählen

include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
Darunter einfügen:

Code: Alles auswählen

include_once("fed/mpmsgtransform.php");
Finde:

Code: Alles auswählen

$preview_message = $message_parser->format_display($post_data['enable_bbcode'], $post_data['enable_urls'], $post_data['enable_smilies'], false);
Ersetzen durch:

Code: Alles auswählen

$orig_preview_message = $message_parser->message;
$message_parser->message = mpmsgtransform($message_parser->message,0,0,0);

$preview_message = $message_parser->format_display($post_data['enable_bbcode'], $post_data['enable_urls'], $post_data['enable_smilies'], false);
$message_parser->message = $orig_preview_message;
Formeln sollten nun beim Erstellen bzw. beim Bearbeten eines Posts korrekt in der Vorschau dargestellt werden.

Hinweis: Die original-Vorschau-Nachricht wird zunächst gespeichert und nach dem Anzeigen der Vorschau wieder dem message_parser zugewiesen, damit der Text im Editor (in dem der User seinen Text eingibt) unbeeinflusst bleibt.

2.3 inlcudes/function_posting.php

Finde:

Code: Alles auswählen

if ($row['bbcode_bitfield'])
{
	$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
}
Darunter einfügen:

Code: Alles auswählen

include_once("./fed/mpmsgtransform.php");
$message = mpmsgtransform($message,0,0,0);
Nun sollten auch Formlen in alten Posts wärend dem Erstellen einer Atnwort korrekt angezeigt werden.

3. Templates anpassen
Damit man beim Erstellen bzw. Bearbeiten eines Posts den FedGeo schnell zur Hand hat, sollte man die Templates anpassen. Z.B. kann man einen Button neben den Buttons für die BBCodes hinzufügen, der ein neues Fenster mit dem Formeleditor öffnet (Beispiel für prosilver - andere Templates sollten nach dem selben Prinzip zu bearbeiten sein):

3.1 /styles/prosilver/template/posting_buttons.html
Finde:

Code: Alles auswählen

<div id="format-buttons">
Darunter einfügen:

Code: Alles auswählen

<input type="button" class="button2" accesskey="" name="openfedgeo" value=" FedGeo " onclick="javascript: function zentriert(url,winName,features) {
var breite = 900; var hoehe = 800; var seite = (screen.availWidth - breite) / 2; var oben = (screen.availHeight - hoehe) / 2; var params = ('width='+ breite +',height='+ hoehe +',left='+ seite +',top='+ oben +',scrollbars=yes');
window.open(url,winName,params); };
zentriert('http://www.deineDomain.xy/phpBB3/fed/mpr.php?lma=1','FedGeo','_blank');void(0);" title="FedGeo - Formeleditor" />
"http://www.deineDomain.xy" muss an die eigene Domain angepasst werden.

Erklärung:
input type="button" erzeugt einen Button mit den übergebenen Parametern. Dabei ist für uns nur der onclick- und evtl. der value-Parameter interessant:
value bezeichnet die Beschriftung des Buttons.
onclick besagt, was beim Klicken auf den Button passieren soll:
Die Funktion zentriert öffnet ein neues Fenster in der Mitte des Bildschirms mit den übergebenen Parametern (Die Höhe und die Breite sind Werte, die ich durch Probieren herausgefunden habe).
Der Funktion zentriert wird die Domain des FedGeo übergeben (mit "lma=1" wird FedGeo mit der Hilfe gestartet). "FedGeo" ist der Name des Fensters, welcher von FedGeo sofort geändert wird und somit uninteressant ist. "_blank" bewirkt das Öffnen in einem neuen Fenster (und nicht in einem neuen Tab).


Nun muss man im Administrationsbereich nur noch unter Styles->Style-Komponenten->Templates die entsprechenden Templates aktualisieren.

FedGeo ist nun integriert.


Da dies mein erster Eingriff in ein Forum ist, bin ich für jede Kritik, Verbesserungsvorschläge und Ergänzungen (auch im Bezug zum Aufbau und der Schreibweise der Anleitung) sehr dankbar.

Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“