Coding Guidelines for phpBB Programmierungsrichtlinien für phpBB This document contains basic rules that should be followed (wherever and whenever possible) when developing for phpBB projects. Dieses Dokument beinhaltet grundlegende Regeln, welche befolgt werden sollten (wo und wann immer möglich), wenn man für das phpBB Projekt programmiert. * The coding style is defined in the Coding Standard Guide, all attempts should be made to follow it as closely as possible * Der Programmierstil ist in der Programmiernorm (LINK) festgelegt, man sollte versuchen, diese so genau wie möglich zu befolgen. * All SQL should be cross-DB compatible, if DB specific SQL is used alternatives must be provided which work on all supported DB's (MySQL, MSSQL (7.0 and 2000), PostgreSQL (7.0+), Oracle8, ODBC (generalised if possible, otherwise MS Access, DB2)) * SQL sollte durchweg mit allen Datenbanken kompatibel sein, falls datenbankspezifisches SQL benutzt wird, müssen Alternativen angeboten werden, die auf allen unterstützten Datenbanken (wie MySQL, MSSQL (7.0 und 2000), PostgreSQL (7.0+), Oracle8, ODBC (nach Möglichkeit allgemein, ansonsten MS Access, DB2)) funktionieren. * All SQL commands should utilise the DataBase Abstraction Layer (DBAL) * Alle SQL Anweisungen sollten die Datenbankabstraktionsschicht benutzen. * All URL's (and form actions) _must_ be wrapped in append_sid, this ensures the session_id is propagated when cookies aren't available * Alle URL's (und Formular actions) *müssen* von append_sid umschlossen werden, dies stellt sicher, dass die Session ID weitergegeben wird, falls beim Benutzer Cookies nicht verfügbar sind. * The minimum amount of data should be passed via GET or POST, checking should occur within individual scripts (to prevent spoofing of information) * So wenig Daten wie möglich sollten über GET oder POST übermittelt werden, die Überprüfung sollte innerhalb individueller Skripte erfolgen (um das Ausspionieren von Benutzerdaten zu verhindern) * The auth function should be used for all authorisation checking * Die auth Funktion sollte für alle Befugnisüberprüfungen benutzt werden * Sessions should be initiated on each page, as near the top as possible using the session_pagestart function (userdata should be obtained by calling the init_userprefs immediately after session initialisation) * Sessions sollten auf jeder Seite durch Nutzung der session_pagestart Funktion, die soweit oben wie möglich aufgerufen werden sollte, initialisiert werden (Benutzerdaten sollten durch Aufrufen der init_userprefs Funktion verfügbar gemacht werden und zwar sofort nach der Session-Initialisierung) * Login checks should be forwarded to the login page (supplying a page to forward onto once check is complete if required) * Login-Überprüfungen sollten zur Loginseite weitergeleitet werden (ergänzt mit einer Seite, zu der weitergeleitet wird, sobald die Überprüfung vollständig ist, falls notwendig) * All template variables should be named appropriately (using underscores for spaces), language entries should be prefixed with L_, system data with S_, urls with U_, all other variables should be presented 'as is'. * Alle Templatevariablen sollten passend benannt werden (für Leerzeichen Unterstriche benutzen), Sprachvariablen sollten mit einem L_ am Anfang gekennzeichnet werden, Systemdaten mit S_, URL's mit U_ und alle anderen Variablen sollten ohne besondere Kennzeichnung benannt werden. * Functions used by more than page should be placed in functions.php, functions specific to one page should be placed on that page (at the top to maintain compatibility with PHP3) surrounded by comments indicating the start and end of the function block * Funktionen, die von mehreren Seiten benutzt werden, sollten in der functions.php platziert werden, Funktionen, die speziell nur von einer Seite benutzt werden, sollten in dieser Datei platziert werden (aber zu Beginn der Datei, um die Kompatibilität mit PHP3 zu gewährleisten), aber umgeben von Kommentaren, welche den Anfang und das Ende des Funktionsblocks anzeigen. * All messages/errors should be output by the message_die function using the appropriate message type (see function for details) * Alle Meldungen/Fehler sollten über die message_die Funktion ausgegeben werden, wobei der passende Fehlertyp benutzt werden sollte (siehe die Funktion für weitere Details) * No attempt should be made to remove any copyright information (either contained within the source or displayed interactively when the source is run/compiled), neither should the copyright information be altered in any way (it may be added to) * Es sollte nicht versucht werden, jegliche Copyright Hinweise zu entfernen (entweder innerhalb des Quelltextes oder bei Ausgaben, die interaktiv erfolgen, sobald der Quelltext ausgeführt bzw. kompiliert wird), auch sollten Copyright Hinweise in keiner Hinsicht verändert werden (es können Hinweise hinzugefügt werden).