PHP-Hookpoints
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.
Bearbeitung
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
- 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)