Dokumentation

Dateien und Pfade

/index.php
/classes/content.php
/config/config.inc.php
/data
/views/mbrainz_disc_xml.php
/views/mbrainz_xml.php

I. Aufruf des Programmes

1. Aufruf mit discid

<Domain>/index.php?ac=get_mbrainz_disc&discid=<discid>
Rckgabe: XML-Datei mit Informationen zu Disc, Release und Songs

2. Aufruf mit Suche in der Datenbank
<Domain>/index.php?ac=get_mbrainz_search&suche=<urlencoded suchstring>
Rckgabe: XML-Datei mit Informationen zum Werk wie Komponist, Texter, Aufnahmen

II. Optionen, einstellbar in der config.inc.php
Die Konstanten fr MBRAINZ bitte nicht verndern, auch der USERAGENT muss in den nchsten Jahren nicht angepasst werden

PERFORM_TIMECHECK: wenn gesetzt, verhindert der Timecheck, dass das Programm zu oft aufgerufen wird. Der Timecheck, wenn gesetzt, schickt das Programm einmalig fr 1,2 Sekunden schlafen. Verbesserungsmglichkeit: eine Schleife, die das Programm so lange schlafen schickt, bis wirklich alles frei ist. Nachteil: Endlosschleife mglich. So lange das Programm nur an einer Stelle eingesetzt wird, ist das nicht notwendig. Der Timecheck soll nur einen Doppelclick verhindern.

SAVE_METADATA: wenn gesetzt werden die erzeugten Metadaten (nur bei Abfrage der discid) unter der discid auf Platte gespeichert.

GRUND_XML: enthlt ein Root-Element zur Erzeugung eines XML-Streams. Header-Daten knnen dazugefgt werden, das Root-Element muss zwingend erhalten bleiben.

III. Die index.php
Regelt das error reporting, ldt die Klasse und gibt aus. Kann sowohl ber GET als auch ber POST angesprochen werden.
Wird die Variable "ac" nicht bergeben, erfolgt keine Ausgabe (siehe Aufruf des Programms)

IV. Die content.php
Enthlt die Klasse ohne eigenen Namespace. Ist relativ gut dokumentiert, hier nochmal die wesentlichen Funktionen:

show_content() enthlt den Controller.

get_mbrainz_search() fhrt eine String-Suche in der Datenbank aus. Die Funktion habe ich frher schon programmiert und in der Klasse belassen.

get_mbrainz_disc() holt alle Informationen zur discid und gibt sie aus. Die Funktion kann dabei mit Bundles umgehen und findet auch zweite CDs, die nicht als eigenstndiges Release erschienen sind.

get_work() holt weitergehende Informationen zum Werk, hnlich wie die Suche. Wird momentan nicht aufgerufen. Bentigt eine MBID als Eingabe.

read_variables(), get_view(), dom_open_file(), dom_create_xml() und save_db() sind Funktionen, die ich aus meinem CMS mit implementiert habe. Sind weitgehend selbsterklrend, ausser get_view: schreibt die auszugebende Datei in den Buffer und erlaubt dabei die Verwendung des aktuellen Objektes, daher kann ber $this auf das komplette Objekt zugegriffen werden und es muss nicht nochmal gewrapped werden.