Dokumentation

Hier findest du Informationen zu den wichtigsten Funktion / Klasse im System. Sollte noch etwas unklar sein, kontaktiere uns!

Funktion / Klasse Parameter + Stanadardwerte

Funktionen der "functions.inc.php"

getCode(); return (String)

Gibt dir einen Code aus Buchstaben und Zahlen zurück.
getCode(16);
Benötigst du einen Code beliebiger länge? Kein Problem.
Mit dem ersten Parameter kannst du sagen wie lang der Code werden soll (Standard 32 Zeichen).
getCode(16, 'user', 'uik');
Mit dem zweiten und dritten Parameter können wir prüfen lassen ob es den Code schon gibt. In welchen Tabellen und Spalten er suchen soll, geben wir wie folgt an:
Im zweiten Parameter geben wir an in welchen Tabellen er suchen soll. Ist dies nur eine so geben wir dies einfach in Anführungszeichen an. (siehe Bsp.)
Mit dem dritten Parameter geben wir die Spalte/n an, mit denen er vergelichen soll. Bei nur einer Spalte übergeben wir auch nur diese. (siehe oben) Wollen wir mit mehr als einer Spalte der Tabelle vergleichen, so können wir die zweite Spalte mit einem Komma (ohne Leerzeichen) getrennt hinter die erste schreiben.
getCode(16, array('user', 'sessions'), array('uik', 'ulc,sic'));
Wenn wir aber mehr als nur mit einer Tabelle vergleichen wollen, nutzen wir Arrays. In diesem Beispiel wird geprüft ob der Code bereits in der Tabelle "user" in der Spalte "uik" oder ob dieser in der Tabelle "sessions" in den Spalten "ulc" und "sic" vor kommt. Falls ja, dann wird ein neuer Code generiert, solange bis ein Code nicht mehr in den angegebenen Tabellen und Spalten gefunden wurde.
$length = 32,
$tables = NULL,
$columns = NULL

errormail();

Sendet eine E-Mail mit dem Betreff "Fehler auf deiner Homepage" an die Administrator E-Mail.
errormail("Fehler beim erstellen von XY! Fehler in Klasse X => Funktion Y!");
Bei dieser Funktion übergeben wir einfach die Meldung die wir an den Admin senden wollen.
$message

Class "database"

public getTableInfo(); return (String)/(Array)

Lese einfach Informationen über eine bestimmte Tabelle aus.
Mögliche auszulesende Informationen findest du hier.
getTableInfo('user');
Gibt alle Informationen über die Tabelle [prefix]_ml_user als Array zurück.
getTableInfo('user', 'Auto_increment');
Gibt die Information "Auto_increment" der Tabelle [prefix]_ml_user als String zurück.
getTableInfo('user', 'Auto_increment', 'example_ml_');
Gibt die Information "Auto_increment" der Tabelle example_ml_user als String zurück.
$table,
$value = NULL,
$prefix = Prefix

public getAmount(); return (String)

Gibt dir die Anzahl der Datensätze der gewünschten Tabelle zurück.
getAmount('user');
Gibt die Anzahl aller Datensätze (Benutzer) der Tabelle "[prefix]_ml_user" zurück.
getAmount('user', 'username', 'max');
Gibt die Anzahl der Datensätze (Benutzer) der Tabelle "[prefix]_ml_user" zurück, wenn der Benutzername (username) gleich "max" ist.
getAmount('user', '!username', 'max');
Mit einem einfachen Ausrufezeichen (!) vor dem Namen der Spalte welche durchsucht werden soll, invertiert das Ergebnis. Somit erhalten wir die Anzahl alle Benutzer welche nicht den Benutzernamen "max" haben.
getAmount('user', array('first_name', 'active'), array('max', '1'));

Um mehrere Spalten überprüfen zu können, nutzen wir ein Array statt einem String. Auch hier können wir ein Ausrufezeichen (!) nutzen um Abfragen bestimmter Spalten zu invertieren. Dieser Code gibt uns die Anzahl aller Benutzer mit dem Vornamen "max" und die ein aktiviertes Konto haben.

Mit dem nächsten Parameter "$operator" geben wir den Operator an, mit welchem die einzelnen Bedingungen verknüpft werden. Standardmäßig ist "AND" gesetzt (also UND verknüpft). Hier können alle möglichen Operatoren eingesetzt werden.

getAmount('user', array('first_name', 'username'), 'max', "OR");

Hier bekommen wir alle die Anzahl aller Benutzer mit dem Vornamen oder Benutzernamen gleich "max". Bei dieser Schreibweise, werden alle Spalten (aus dem Array) mit dem String "max" verglichen.

Als letzter Parameter kann der Präfix der Tabellen geändert werden, so können auch Tabellen mit einem anderem Prefix auf der Datenbank erreicht werden.

$table,
$column = NULL,
$value = NULL,
$operator = "AND",
$prefix = Prefix

public getValue(); return (String)/(Array)

Diese Funktion gibt dir die gewünschten Datensätze einer Tabelle zurück.
getValue('user', NULL, NULL, NULL, true);
Gibt alle Datensätze (Benutzer) der Tabelle "[prefix]_ml_user" als zweidimensionales Array zurück. Array[Datensatz][Spalte];
getValue('user', 'username', 'max', 'id');
Gibt die ID als String des Benutzers zurück, wenn der Benutzername (username) gleich "max" ist. (Limit 1 Datensatz!)

Möchten wir alle IDs der Benutzer zurück bekommen, die als Benutzername "max" haben, so müssen wir den nächsten Parameter ($array) auf "true" setzen:

getValue('user', 'username', 'max', 'id', true);

So erhalten wir nun alle Benutzer IDs (als eindimensionales Array), welche den Benutzernamen "max" haben. Array[Datensatz];

Wollen wir mehr als nur die IDs der Benutzer haben, ersetzen wir den Parameter "$output" durch NULL:

getValue('user', 'username', 'max', NULL, true);

Wir bekommen ein zweidimensionales Array (Array[Datensatz][Spalte];) mit allen Benutzern, welche als Benutzernamen "max" haben, zurück.

Auch diese Funktion unterstützt die Nutzung von Array's (bei den Parametern "$column" und "$value") sowie den MySQL-Operatoren.

getValue('user', array('first_name', 'active'), array('max', '1'), NULL, true, 
"ORDER BY id DESC");

Mit dem Parameter "$sort" können wir noch etwas an die Abfrage anhängen. Zum Beispiel eine gewünschte Sortierung und/oder ein Limit setzen.

Als letzter Parameter kann der Präfix der Tabellen geändert werden, so können auch Tabellen mit einem anderem Prefix auf der Datenbank erreicht werden.

$table,
$column = NULL,
$value = NULL,
$output = NULL,
$array = false,
$sort = NULL,
$operator = "AND",
$prefix = Prefix

public getMainData(); return (String)

Gibt den Wert der gewünschten Einstellung zurück.
getMainData('site_title');

Wir geben in dem Parameter an, welche Einstellungsinformation wir abrufen möchten.

$tag

Class "captcha"

public generateCaptcha(); Gibt ein Bild zurück

Gibt das generierte Captcha (Sicherheitsbild) zurück.
In der Klasse hast du die Möglichkeit ein paar Änderungen an diesem Sicherheitsbild vorzunehmen.
<img src="./?captcha=img" onclick="this.src='./?captcha=img&generate='+Math.random()" 
title="Klicke um neuen Code zu erhalten">

Beispiel um ein Captcha einzubinden. Dazu kann der bereits vorhandene Link genutzt werden. Wichtig! Nur ein Captcha pro Seite einbinden! Sonst funktioniert die Überprüfung nicht korrekt!

public check_captcha(); return (Boolean)

Diese Funktion überprüft ob der übergebene Sicherheitscode richtig ist.
Rückgabewerte sind: true/false.

$code = 'ABC1'; // Eingelesen
$captchaClass = new captcha();
if($captchaClass->check_captcha($code) == true){
	// Ausführung des gewünschten Codes
}

Beispiel um ein Captcha abzufragen.

$code = NULL

Class "loginsystem" extends "database"

Außerhalb der Klasse kann mit der gleichnamigen Variable auf die Klasse zugeriffen werden.

public pwverify(); return (Boolean)

Mit dieser Funktion vergleichst du ein Passwort auf mit einem anderen.
Bei einem korrektem Passwort wird ein true zurückgeben, sonst ein false.
pwverify($password); // $password = das einegebene Passwort

Die Funktion überprüft ob das übergebene Passwort identisch mit dem Passwort des aktuell angemeldeten Benutzers ist.

pwverify($password, $reference_password);

Mit Angabe des zweiten Parameters wird geprüft ob das eingelesene Passwort gleich dem Referenzpassworts ist. Das Referenzpasswort muss als Hash übergeben werden!

$passwd,
$passwd_ref = NULL

public pwhash(); return (String)

Diese Funktion bildet mittels der password_hash(); Funktion von PHP ein Hash aus dem eingebenen.
$pw_hash = $loginsystem->pwhash($password); // $password = das einegebene Passwort

Mit diesem Beispiel kann außerhalb der Klasse ein Passwort gehasht werden.

$passwd

public login_session(); return (Boolean)

Prüft ob der Benutzer angemeldet ist.
Bei gütiger Anmeldung wird ein true bei ungütiger ein false zurückgegeben.
if($loginsystem->login_session() == true){ 
	// Ausführung des gewünschten Codes
}

Beispiel um außerhalb der Klasse zu prüfen ob der Benutzer eingeloggt ist.

public is_locked(); return (Boolean)

Prüft ob der Benutzer angemeldet ist und ob der Bildschirm gesperrt ist.
Ist der Benutzer angemeldet und hat die Oberfläche gesperrt, wird ein true, sonst ein false zurückgegeben.
if($loginsystem->is_locked() == true){ 
	// Ausführung des gewünschten Codes
}

Beispiel um außerhalb der Klasse zu prüfen ob der Benutzer eingeloggt und die Oberfläche gesperrt ist.

public getUser(); return (String)/(Array)

Gibt Daten vom aktuell angemeldeten Benutzer zurück.
getUser('username');

Gibt den Benutzernamen des aktuell angemeldeten Benutzers zurück. Mit dem ersten Parameter geben wir an, welche Information (Spalte) wir vom Benutzer zurück bekommen möchten.

getUser('username', $id);

Gibt den Benutzernamen des Benutzers mit der ID "$id" zurück. Der zweite Parameter legt fest, für welchen Benutzer wir Informationen erhalten möchten. Standardmäßig muss die ID des Benutzers angegeben werden. Möchten wir den Benutzer über eine andere Spalte identifizieren, so geben wir mit dem dritten Parameter an, mit welcher Spalte dies geschehen soll.

getUser('username', $uik, 'uik');

Gibt den Benutzernamen des Benutzers mit dem UserIdentificationKey (uik) "$uik" zurück.

getUser(NULL, NULL, NULL, true);

Geben wir den vierten Parameter an, können wir uns alle Daten des Benutzers als Array zurückgeben lassen. Hierbei ist es egal was im ersten Parameter übergeben wird. Mit den anderen Parametern kann weiterhin gearbeitet werden.

Es kann maximal Informationen für einen Benutzer zurückgeben werden!

$column = NULL,
$value = NULL,
$search_column = 'id',
$array = false

public getData(); return (String)

Gibt aktuell nur den CSRF-Code des aktuell angemeldeten Benutzers zurück.
getData('csrfToken');

So erhalten wir den aktuellen CSRF-Code des Benutzers, zum verwenden in Links oder zum überprüfen.
Weitere Daten mit dieser Funktion abzurufen, ist angedacht.

$column

public check_password(); return (Boolean)

Prüft ob das Passwort ob es alle Regeln erfüllt. (Zur Zeit nur die Länge) Wenn das Passwort alle Anforderungen erfüllt, wird an true zurück gegeben, sonst ein false.
check_password($password); // $password = eingelesenes Passwort
$password

public auditRight(); return (Boolean)

Prüft ob der Benutzer das gewünschte Recht besitzt. Trifft dieses zu, wird ein true zurückgegeben, sonst ein false.
if($loginsystem->auditRight('user_add') == true){ 
	// Ausführung des gewünschten Codes
}

Mit dem ersten Paramter geben wir an, welches Recht (Regel) wir prüfen wollen. Dies gilt für den aktuell angemeldeten Benutzer. Hier prüfen wir das Recht (Regel) "user_add" ab. Wenn wir uns die Funktion nicht aus dem "Tag" ableiten können, schauen wir in die Regelverwaltung für was dieser steht.

if($loginsystem->auditRight('user_add', $id) == true){ 
	// Ausführung des gewünschten Codes
}

Mit dem zweiten Paramter geben wir an, für welchen Benutzer wir das Recht abfragen wollen. Dies muss nur angegeben werden, wenn wir das Recht für einen anderen Benutzer als aktuell angemeldeten wollen. Dazu muss die BenutzerID übergeben werden.

$rule,
$userID = NULL

public getRank(); return (String)

Diese Funktion gibt uns den Rangnamen oder einen String mit dem Rang-"Style" (Farbe, Fett, Kursiv...) zurück.
getRank();

Übergeben wir keine Parameter, so wird der Rang(Name) des aktuellen Benutzers zurückgegeben. Wollen wir den Rang für einen anderen Benutzer erhalten, so geben wir den ersten Parameter an.

getRank($userID);

Wir erhalten den Rang des Benutzers mit der ID "$userID" zurück.
Mit dem zweiten Parameter können wir bestimmen ob wir den Rang mit seinem Style zurück bekommen möchten.

getRank(NULL, true);

Gibt uns den Rang mit dem jeweiligen Style zurück. Wir können aber auch einen selbst mitgelieferten String den Style anpassen.

getRank(NULL, true, $string); // $string könnte z.B. der Benutzername sein

So erhalten wir den übergeben String in dem Style des Rangs vom aktuellen Benutzer.

getRank($rankID, NULL, NULL, true);

Mit dem vierten Parameter können wir auch die Ausgabe eines beliebigen Ranges erhalten. So übergeben wir statt der BenutzerID nun die RangID als ersten Parameter.

$userID = NULL,
$style = false,
$string = NULL,
$rankID = false

public sendMail(); return (Boolean)

Mit dieser Funktion können E-Mails versendet werden.
$data["subject"] = "Eine Testmail";
$data["fullname"] = 'Fritz Meier';
$to = 'fritz.meier@example.de';
if($loginsystem->sendMail('meineMail.html', NULL, $data, $to)){
	// Meldung Mail erfolgreich verschickt
}

Der erste Parameter gibt an, welches HTML-Template wir nutzen wollen. Diese befinden sich im Verzeichnis "emailtpl". (Wie erstelle ich ein Mail-Template?) In unserem Fall ist das "meineMail.html". Der zweite Parameter hat noch keine Verwendung (folgt noch). Im dritten Parameter übergeben wir Daten die wir ersetzen wollen. Mit den Keys des Arrays geben wir den Platzhalter an welchen wir in dem Template verwenden und werden durch die Werte gesetzt. Allerdings übergeben wir damit auch den Betreff (Engl. Subject) der Mail. Der vierte Parameter übergibt die E-Mail Adresse des Empfängers. (Wird dieser leer gelassen, so wird die E-Mail zur Administrator E-Mail Adresse [aus den Einstellungen] geschickt)

Als fünften Parameter können wir noch eine E-Mail Adresse anegeben, an die eine Antwort geschickt wird, wenn der Benutzer auf diese E-Mail antworten sollte. Beilbt dieser Parameter frei, wird die E-Mail Adresse aus den Einstellungen verwendet.

Mit dem sechsten und siebten Parameter können noch andere Header/Footer Dateien ausgewählt werden. Denn die E-Mails bestehen aus drei Dateien. Header, "Body" (z.B. 'meineMail.html') und der Footer Datei.

$tpl,
$userID = NULL,
array $data,
$to = NULL,
$rplto = NULL,
$header_file = 'header.tpl',
$footer_file = 'footer.tpl'

Class "sites" extends "loginsystem"

Außerhalb der Klasse kann mit der gleichnamigen Variable auf die Klasse zugeriffen werden.

public getSiteName(); return (String)

Gibt den Titel der aktuellen Seite mit dem Titel der Webseite aus.

Class "menu" extends "sites"

Außerhalb der Klasse kann mit der gleichnamigen Variable auf die Klasse zugeriffen werden.

public getMenu(); return (String)

Gibt das Menü an gewünschter Stelle aus.
$menu->getMenu(NULL, 'neu');

Mit dem zweiten Parameter können wir ein alternatives Verzeichnis angeben. So ist es uns möglich andere Template-Dateien zu nutzen. Diese befinden sich im Verzeichnis: ./system/tpl/menu/
Der erste Parameter hat noch keine Verwendung.

$menu = 1,
$tpl_dir = 'default'