Eine Klasse zur Auswahl der einzubindenden Image-Maps
Auf dieser Seite möchten wir Ihnen die zum Plugin gehörende Klasse zur Auswahl der Image-Maps vorstellen, ohne die das Plugin HM-Karten-Mappe nicht lauffähig ist. Die vorgestellte Klasse dient der Auswahl und der Prüfung von Maps und von Images auf Vorhandensein und Mime Type.
Übersicht » Image-Maps:
- Interaktive Landkarten & Grafiken (kleine Einführung)
- Image-Maps (Hotspots erstellen und verlinken)
- Kartenmappe als WP-Plugin (zur Verwaltung von mehreren ImageMaps)
- Klasse für HM-Karten-Mappe (als Code-Listing mit Beschreibung)
Wie bereits auf der vorausgehenden Seite beschrieben, wenn der Shortcode für dieses Plugin in einer statischen Seite oder in einer Beitragsseite eingebunden wird, so wird ein Objekt als Instanz der Klasse ‘Ausgewaehlte_KartenMappe’ erzeugt. Innerhalb dieser Klasse wird wiederum die Klasse ‘Karten_ImageMaps’ instanziiert, wobei an der zur Klasse gehörenden Methode ‘lade_karten_mappe’ der im Array $attr enthaltene Kartenname übergeben wird.
Wurde der Kartenname fehlerfrei übergeben, wird innerhalb der Klasse zuerst das Verzeichnis /images durchlaufen, um zu prüfen ob eine Grafik mit dem übergebenen Namen vorhanden ist. Sollte das der Fall sein, wird in weiteren if-Statements überprüft, ob die Grafik vom Mime-Typ JPG, PNG oder GIF ist. Erst wenn auch diese Überprüfung fehlerfrei verlief, wird die entsprechende Grafik in der angeforderten Kartenmappe referenziert und an die Klasse ‘Ausgewaehlte_KartenMappe’ übergeben.
<?php /** * @package HM-Karten-Mappe * @since Release 1.00 */ /*-- Die Klasse Karten_ImageMaps -------------------------------------------------*/ class Karten_ImageMaps { public $kartennam; private $seperator; private $kmap_pfad; private $imap_pfad; private $mmap_pfad; private $grafdatei; private $grafdfile; private $pruefefle; private $kartenrkg; private $handle; private $whfile; private $infogf; private $endungen = array("jpg", "png", "gif", "image/jpeg", "image/png", "image/gif"); public function lade_karten_mappe() { $this->kartennam = preg_replace("/[^a-z0-9_-]/i", "", $this->kartennam); $this->seperator = DIRECTORY_SEPARATOR; $this->kmap_pfad = dirname(__FILE__).$this->seperator; $this->imap_pfad = $this->kmap_pfad."images".$this->seperator; $this->mmap_pfad = $this->kmap_pfad."maps".$this->seperator.$this->kartennam.".html"; /*-- Oeffnen und durchsuchen des Verzeichnisses images -------------------*/ if ($this->handle = opendir($this->imap_pfad)) { while (false !== ($this->whfile = readdir($this->handle))) { $this->infogf = pathinfo($this->whfile); if (in_array($this->infogf["extension"], $this->endungen)) { if ($this->infogf["filename"] == $this->kartennam) { $this->grafdatei = $this->infogf["filename"].".".$this->infogf["extension"]; } } } closedir($this->handle); } /*-- Pruefen, ob gefundene Datei vom Mime-Type ein Image ist -------------*/ $this->grafdfile = plugins_url("images/".$this->grafdatei, __FILE__); $this->pruefefle = getimagesize($this->grafdfile); if (in_array($this->pruefefle["mime"], $this->endungen)) { if (file_exists($this->mmap_pfad) and is_readable($this->mmap_pfad)) { $this->kartenrkg = file_get_contents($this->mmap_pfad); $this->kartenrkg = str_replace("{grafik}", $this->grafdfile, $this->kartenrkg); } else { $this->kartenrkg = "Die ausgewählte Image-Maps konnte nicht geladen werden.\n"; } } else { $this->kartenrkg = "Die ausgewählte Grafik ist kein Image.\n"; } return $this->kartenrkg; } } ?>
Weitere zum Tutorial gehörende Seiten:
Einführung | Hotspots erstellen | Kartenmappe als WP-Plugin «