Image-Maps: Klasse für HM-Karten-Mappe


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:


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 «

Hinterlasse eine Antwort

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