PHP-Hookpoints

Aus Deutsches xmstore Handbuch
Wechseln zu: Navigation, Suche

Die Hookpoints (z.Dt. "Einklinkpunkte") erlauben die Funktionsweise von xmstore an einigen vordefinierten Gelegenheiten zu personalisieren und aktiv in die Abläufe des Systems einzugreifen.

Um nur einige Beispiele zu nennen, können via Hookpoints IPTCDer IPTC-NAA-Standard (oft kurz nur IPTC) dient zur Speicherung von Informationen zu Bildinhalten in Bilddateien (z. B. in TIFF- oder JPEG File Interchange Format-Dateien). IPTC-Daten aus anderen Programmen (z. B. Lightroom) können übernommen und in xmstore weiter verarbeitet werden.-Felder schon während der Dateiverarbeitung in den Datenbankbestand übernommen werden oder zusätzliche Kriterien und Prüfungen bei der Kundenregistration hinzugefügt werden.

Da die Hookpoints nativ im System arbeiten, sind komplexe Anpassungen und Abfragen möglich, welche via TemplateEin Template ist eine Mustervorlage für Dokumente, die wesentliche Layoutvorgaben enthalten und vom Anwender mit Inhalten gefüllt werden. nicht zu realisieren wären.


Hinweis
Die Hookpoints dürfen nur im Rahmen der Enterprise-Edition vom Kunden und mit entsprechenden Kenntnissen selbstständig angepasst werden. Bei allen anderen Editionen von xmstore ist die Überarbeitung und Erweiterung der Hookpoints nur durch unserem Team gestattet und technisch sinnvoll möglich. Bitte senden Sie uns dazu Ihre Anfrage.


Bearbeitung

Warnung
Fehler in der Anpassung der Hookpoints können zu einem fehlerhaft oder gar nicht funktionierenden System führen. Die Anfertigung einer DatensicherungUnter Backup versteht man die Datensicherung von einem Computer (Server), dies dient der Vorbeugung von Datenverlusten. Die Datensicherung sollte regelmäßig in bestimmten Intervallen erfolgen. vor jeder Änderung wird dringend empfohlen.


Vorraussetzungen zur Bearbeitung der Hookpoints:

  • PHPDer PHP Hypertext Preprocessor ist eine in HTML eingebettete Scriptsprache welche Serverseitig ausgeführt wird. Mit Hilfe von PHP kann man dynamische und interaktive Websites programmieren.-Kenntnisse
  • Texteditor
  • FTPDas File Transfer Protocol (FTP) dient zum Dateiaustausch zwischen unterschiedlichen Systemen im Internet (Upload/Download).-Client

Die Hookpoints sind für sowohl für Front- als auch für das BackendDas Backend wird zur Administration durch den Betreiber und von den Medienautoren verwendet. Dagegen ist das Frontend die eigentliche und i.d.R. öffentliche Website des Systems auf ein Kunden Medieninhalte begutachten und anfordern kann. in der datei hooks.inc.php im Verzeichnis data (Admin-FTPDas File Transfer Protocol (FTP) dient zum Dateiaustausch zwischen unterschiedlichen Systemen im Internet (Upload/Download).-Zugang) gespeichert und dokumentiert. Anpassungen an den Hookpoints werden an dieser Datei vorgenommen.

Hookpoints äußern sich als normale Funktion. Diese Funktionen sind strikt benannt und erfüllen ihre Funktion nur bei korrekter Benennung. Umbenennen der Funktionen führt nicht zu Fehlern, allerdings dazu, dass der betreffende Hookpoint nicht mehr angewendet wird.

Beschreibungen und Dokumentationen der einzelnen Hookpoints sind im PHPDoc-Format vor jeder Funktion zu finden.

Genaueres zu einzelnen Hookpoints finden Sie in den ihrem Gebiet entsprechenden Artikeln.

Beispiel

Das folgende Beispiel veranschaulicht die Funktionsweise von Hookpoints anhand der Funktion hookbe_iptc_postimport. Ziel der Übung ist es das IPTCDer IPTC-NAA-Standard (oft kurz nur IPTC) dient zur Speicherung von Informationen zu Bildinhalten in Bilddateien (z. B. in TIFF- oder JPEG File Interchange Format-Dateien). IPTC-Daten aus anderen Programmen (z. B. Lightroom) können übernommen und in xmstore weiter verarbeitet werden.-Feld Caption in den deutschen Titel zu übernehmen.

function hookbe_iptc_postimport(AS_Iptc &$oIptc, $media_id, $sqlConnection)
{
    // Prequisiten laden
    require_once(WEBROOT . '/class/image.class.php');

    // Initialisierung    
    $oImage = new AS_Image($sqlConnection);	// Bild instanzieren
    $oImage->media_id = $media_id;		// Media-ID zuweisen
    $oImage->language_id = 1;			// Sprach-ID für Deutsch setzen (kann je nach Systemeinstellungen abweichen)

    // Änderungen
    $oImage->title = $oIptc->caption;		// Caption in Title kopieren

    // Speichern
    $oImage->saveLocaleData();			// Änderungen speichern
}

Hier gilt zu beachten, dass das Laden der Bilddaten ausgelassen wird, da davon ausgegangen wird, dass der Import mit einem neuen, unverschlagworteten Bild geschieht. Andernfalls würden im gezeigten Beispiel Daten gelöscht oder überschrieben.

Liste von Hookpoints

Achtung: Unvollständigkeit
Informationen in diesem Abschnitt sind aufgrund Softwareaktualisierungen unvollständig oder veraltet und bedürfen Ergänzungen.
  • hookbe_media_processed(<AS_Image|AS_Video|AS_Audio|AS_Misc> $oMedia, $path[, AS_MediaPreview $oMediaPreview])
  • hookbe_framework_login
  • hookbe_framework_logout
  • hookbe_controller_init(string $module, string $view)
  • hookbe_controller_finish
  • hookbe_exif_import(array $exif, int $media_id)
  • hookbe_iptc_import(string $key, string $value, int $media_id)
  • hookbe_iptc_postimport(AS_Iptc $oIptc, int $media_id, resource $sqlConnection)
  • hookbe_media_save_locale_data(AS_MediaBase $oMedia, string $language_code, resource $sqlConnection)
  • hookfe_orderpdf_header(AS_Order $oOrder)
  • hookfe_orderpdf_footer(AS_Order $oOrder)
  • hookfe_display_media(<AS_Image|AS_Video|AS_Audio|AS_Misc> $oMedia, array $sqlRow, resource $sqlConnection)
  • hookfe_customer_login_validate
  • hookfe_customer_login
  • hookfe_customer_register_validate
  • hookfe_customer_register
  • hookfe_order_create(AS_Order $oOrder)
  • hookfe_order_issued(AS_Order $oOrder)
  • hook_print_currency_value(string $complete, string $amount, string $format, AS_Currency $oCurrency)