krpano WordPress Plugin

Einleitung
Ziel des Projekts ist die Integragtion einer Panorma-Galerie auf Basis von krpano. Als zusätzliches "Eyecandy" kommt Floatbox zum Einsatz. Beim Entwickeln kam ich auf die Idee, die Implementierung so universell zu machen, dass auch andere Panorama-Viewer verwendet werden können.

Installation
Der Inhalt des ZIP-Archivs muss nach wp-content/plugins entpackt werden. Beim Entpacken wird das Verzeichnis fepano angelegt. In dieses Verzeichnis müssen folgende Dateien zusätzlich kopiert bzw. Verzeichnisse angelegt werden:

  1. Unterverzeichnis krpano. In dieses Verzeichnis müssen die Dateien krpano.swf und krpano.license kopiert werden.
  2. Unterverzeichnis swfobject. In dieses Verzeichnis müssen die Dateien swfkrpanomousewheel.js und swfobject.js aus der krpano Distribution kopiert werden.
  3. Unterverzeichnis floatbox. In dieses Verzeichnis müssen die Dateien aus der Floatbox Distribution kopiert werden (inkl. Lizenz-Datei).

Weiterhin muss in WordPress das Plugin aktiviert werden.

Konfiguration:
Unter wp-content/plugins/fepano muss die Datei config.json mit folgendem Inhalt angelegt werden:

{
 "baseUrl": "http://www.frank-eberle.de/pano",
 "baseDir": "/anydir/htdocs/pano",
 "skipDirs": [ "common" ],
 "popupWidth": 800,
 "popupHeight": 450,
 "viewerWidth": 800,
 "viewerHeight": 450,
 "viewer": "krpano",
 "viewerConfig": "krpano.xml"
}

Dabei ist baseDir das Verzeichnis, in dem sich die Panoramen befinden und baseUrl die entsprechende URL, unter der das Verzeichnis baseDir über den Webserver zu erreichen ist. Die Breiten- und Höhenangaben sprechen für sich. viewer ist der Name des Default-Viewers und viewerConfig dessen Konfigurationsdatei. Diese beiden Einstellungen sollten für den Anfang nicht geändert werden.

Ablage der Panoramen im Dateisystem
Im Verzeichnis baseDir (siehe Konfiguration) wird ein oder mehrere Verzeichnisse angelegt (im folgenden Toplevel-Verzeiczhnis ). Im Toplevel-Verzeichnis wird pro Panorama ein Unterverzeichnis angelegt, in das alle für das Panorama notwendigen Dateien (inkl. krpano.xml) kopiert werden. Weiterhin muss eine Konfigurationsdatei mit dem Namen config.json enthalten sein. In dieser Datei können die Einstellungen aus der zentralen Konfiguration überschrieben werden (optional). Weiterhin muss ein Titel und optional eine Beschreibung angegeben werden:

{
	"title": "Titel-Text",
	"info": "Info-Text"
}

Neben der Konfigurations-Datei muss ein Thumbnail-Bild mit dem Namen thumb.jpg vorhanden sein.

Einbinden der Panoramen in einen Artikel oder eine Seite
Die Panoramen werden durch die Angabe des Platzhalters

[fePano toplevel]

in einen Artikel oder eine Seite eingebunden. Dabei ist toplevel durch den Namen des Toplvel-Verzeichnisses zu ersetzen. In der Webseite werden dann alle Panoramen angezeigt, die sich unter dem Toplevel-Verzeichnis befinden.
Weiterhin muss für die Seite/Artikel das "Benutzerdefiniertes  Feld" fePanoEnable mit dem Wert 1 definiert werden.

Ärger mit PHP-Einstellung Register-Globals und SESSION
Das Plugin benutzt PHP-Sessions. Leider macht WordPress komische Dinge, wenn PHP mit Register-Globals eingeschaltet konfiguriert ist. Dieses Problem habe ich für mich dadurch gelöst, dass ich in wp-settings.php die Zeile

$input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

durch

$input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES);

ersetzt habe.

6 Kommentare zu “krpano WordPress Plugin

  1. Hallo Frank,

    beschäftige mich gerade mit der Integration von krpano in meine WP-Site. Werde Dein Plugin testen und berichten!

    Grüße aus Buxtehude
    Bernd

  2. Hallo Walter,

    ich würde sagen, nein. Mir wäre nicht bekannt, dass sich WordPress-Plugins in Joomla nutzen lassen. Weiterhin verwendet mein Plugin eine recht alte Version von krpano. Ich habe mich schon seit langer Zeit um keine Aktualisierung mehr gekümmert.

    Frank

Schreibe einen Kommentar

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