Mind Map Spielwiese

Dynamische Mind Map-Generierung mit PHP

Der FreemindFlashBrowser scheint einer der ersten Mind Map-Tools zu sein, mit dem man komfortabel und dazu visuell sehr ansprechend dynamisch Mind Maps für die Darstellung im Webbrowser generieren kann. Es hat zwar keine direkte Schnittstelle oder API dazu. Aber wenn man dynamisch eine Freemind XML-Datei (.mm) in PHP erzeugt, kann man den FreemindFlashBrowser zur Anzeige dergleichen verwenden. Das Ganze funktioniert wie folgt:

Was die Entwicklung besonders vereinfacht ist die Tatsache, dass die in der mitgelieferten HTML-Datei (für die Anzeige des Mind Maps im Web) anzugebende .mm-Datei (im XML-Format) nicht unbedingt die Endung .mm haben muss. Wenn man stattdessen .php verwendet, akzeptiert dies der FreemindFlashBrowser. Zudem ist man in der Lage, bei den meisten Webhostern einfach mit PHP das benötigte XML-Konstrukt zu erzeugen. Das einzige Problem ist nur, dass man keine Post-Variablen an diese Datei übergeben kann. Daher muss man sich mit Get-Variablen und damit die Übertragung über die URL begnügen. Vielleicht existiert hier aber noch eine andere Möglichkeit?!

Wenn man dynamische Mind Maps aus Formulareingaben erzeugen will, sollte die HTML-Datei, die auch den FreemindFlashBrowser als swf-Datei enthält, natürlich die Endung .php besitzen.

Ich habe testweise mal die Standard-HTML-Datei um ein Formular erweitert und eine kleine Webapplikation entwickelt, die ein Mind Map über 2 Ebenen erzeugt. Dabei kann man mit dem Formular die Anzahl Knoten in der ersten und zweiten Ebene bestimmen und damit dynamisch eine Mind Map generieren.

Wer sich für das Thema interessiert kann hier als Anregung alle Dateien dazu herunterladen dynamic-freemind.zip oder auf den folgenden Seiten die Quelltexte ansehen.

Quellcode der XML-Generierung

Hier der Quellcode der XML-Erzeugenden .mm-Attrappe:

\n'; 
echo '\n'; 
echo '\n';
  20) || ($_GET['knoten2'] > 20)) {
     exit();
   }
   else {
     for ($i = 1; $i <= $_GET['knoten1']; $i++) {
       echo '\n';
       for ($j = 1; $j <= $_GET['knoten2']; $j++) {
         echo '\n';
       }
     echo '\n';
     }
   echo '\n';
   echo '';
?>

Quellcode der HTML-Datei (Anzeige)

Und hier die zur Anzeige im Web benötigte HTML-Datei (modifiziert um ein Formular). Weil die Anzeige von HTML auf der Webseite etwas problematisch ist, öffnet sich ein neues Fenster. Dort einfach im Browser den Quelltext anzeigen lassen.

Man beachte für die Variablenübergabe an die .mm-Atrappe besonders den unteren Bereich (fo.addVariable…).

Ein Kommentar

Eine Antwort schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.