Wenn man sich verschiedene Mods anschaut, stellt man fest das viele einen Installation-Ordner haben mit einem Unterverzeichnis "schemas", in diesem Ordner liegen verschiedene sql-Dateien, für unterschiedliche DB-Systeme.
Dies ist auch bei phpBB3 selbst der Fall.
Schreibt jeder MOD-Autor diese ganzen Schema Dateien?
Da ich mir nicht vorstellen konnte das jeder MOD-Autor selbst für alle unterstützen Systeme etwas geschrieben hat, habe ich an verschiedenen Stellen gesucht, und bin schließlich bei Dr.Death F1- Webtipp fündig geworden, "creat_schema_files.php" heist die Datei, die ich dann auch unter
http://code.phpbb.com/svn/phpbb/branche ... _files.php fand.
Wie benutzt man die Datei?
Als erstes passt man den schema-Pfad an:
Code: Alles auswählen
$schema_path = './../install/schemas/';
Code: Alles auswählen
/**
* Define the basic structure
* The format:
* array('{TABLE_NAME}' => {TABLE_DATA})
* {TABLE_DATA}:
* COLUMNS = array({column_name} = array({column_type}, {default}, {auto_increment}))
* PRIMARY_KEY = {column_name(s)}
* KEYS = array({key_name} = array({key_type}, {column_name(s)})),
*
* Column Types:
* INT:x => SIGNED int(x)
* BINT => BIGINT
* UINT => mediumint(8) UNSIGNED
* UINT:x => int(x) UNSIGNED
* TINT:x => tinyint(x)
* USINT => smallint(4) UNSIGNED (for _order columns)
* BOOL => tinyint(1) UNSIGNED
* VCHAR => varchar(255)
* CHAR:x => char(x)
* XSTEXT_UNI => text for storing 100 characters (topic_title for example)
* STEXT_UNI => text for storing 255 characters (normal input field with a max of 255 single-byte chars) - same as VCHAR_UNI
* TEXT_UNI => text for storing 3000 characters (short text, descriptions, comments, etc.)
* MTEXT_UNI => mediumtext (post text, large text)
* VCHAR:x => varchar(x)
* TIMESTAMP => int(11) UNSIGNED
* DECIMAL => decimal number (5,2)
* DECIMAL: => decimal number (x,2)
* PDECIMAL => precision decimal number (6,3)
* PDECIMAL: => precision decimal number (x,3)
* VCHAR_UNI => varchar(255) BINARY
* VCHAR_CI => varchar_ci for postgresql, others VCHAR
*/
function get_schema_struct()
{
$schema_data = array();
Da drunter findet eine Liste von Arrays, das wird die spätere Tabellenstruktur, nicht benötige Teile einfach löschen (also alles was von dem Code da oben bis nach folgendemem Code geht)
Code: Alles auswählen
return $schema_data;
Von diesen Arrays könnt Ihr so viele wie nötig machen.$schema_data['tabellenname_mit_phpbb__am_anfang'] = array(
'COLUMNS' => array(
'spalte_1' => array('UINT', NULL, 'auto_increment'),
'spalte_2' => array('UINT', 0),
'spalte_3' => array('BOOL', 0),
),
'PRIMARY_KEY' => 'spalte_1',
'KEYS' => array(
'spalte_2' => array('INDEX', 'spalte_2'),
'key_name' => array('KEY_ART', 'spalte_des_key'),
),
);
Was z.B. UINT heist steht am Anfang der Funktion
Und nun?
Nachdem ihr alles gemacht habt, prüft nochmal ob der Pfad richtig ist, die Eintragungen alle passen etc.
Bevor das Script erfolgreich ausgeführt werden kann müsst Ihr sicherstellen das der schema Pfad beschreibbar ist und der "Noobschutz"

Im Erfolgsfall erscheint "done", sonst eine Fehlermeldung.
Was ist der "Noobschutz"?
Damit nicht jeder (der keine Ahnung hat) das Script ausführt, ist eine kleine Sperre drin, die entfernt werden muss, somit ist gewährleistet das der das Script nutzen will zumindest etwas PHP kann

Ich hoffe das das soweit richtig ist und euch eventuell sogar hilft.
Den Rest des Installationsprozesses werde ich mir auch noch anschauen.