Globale Variablen/Objekte
Superglobals
$_SESSION
Contexte/Context_ids auflösen
Über die Session können context
bzw. context_id
wie folgt aufgelöst werden:
$_SESSION['CONTEXT']['enabling_objective']->context_id; //12
$_SESSION['CONTEXT']['12']->context; //'enabling_objective'
Das Array of Objects wird in /share/session.php
erzeugt. Es enthält die folgenden Felder:
$_SESSION['CONTEXT']['institution']->id // '12' -> Primärschlüssel in DB
->context // 'institution' -> Kontext-Name
->context_id; // '12' -> Kontext ID
->path // 'institution/' -> Kontext-Pfad
$_SESSION['CONTEXT']['12']->id // '12' -> Primärschlüssel in DB
->context // 'institution' -> Kontext-Name
->context_id; // '12' -> Kontext ID
->path // 'institution/' -> Kontext-Pfad
Globals
curriculum nutzt die folgenden globalen Variabeln
$CFG
$COURSE
$CONTEXT
$DB
$GRADE
$INSTITUTION
$LICENSE
$PAGE
$SCHOOLTYPE
$TEMPLATE
$USER
global $CFG
Das $CFG Objekt wird inshare/config.php
global deklariert. In ihm sind relevante Variabeln gespeichert, wie z.B. Pfade, Datenbankzugansdaten usw.
Das folgende Beispiel zeigt die Stuktur des $CFG
Objekts mit Kommentierungen
Beispiel des $CFG Objekts
{
"app_title": "curriculum", // Name der Seite
"version": "0.9.4", // Aktuelle Version
"app_footer": "<a href=\"http://www.curriculumonline.de\" target=\"_blank\">\u00a9 Copyright 2014 - Joachim Dieterich</a>", // Footer
"db_host": "127.0.0.1", // DB Host
"db_user": "root_username", // DB Nutzername
"db_password": "root_password", // DB Passwort
"db_name": "db_name", // DB Name
"db_configured": true, // Wird gesetzt, sobald Verbindung zur Datenbank funtioniert
"ip": "localhost", // IP / Addresse der Seite
"protocol": "https://", // Verwendetes Protokoll (http; https)
"base_folder": "curriculum/", // Basisverzeichnis
"base_url": "https://localhost/curriculum/", // Basis-URL
"curriculumdata_root": "/cur_data/", // Absolutes Datenverzeichnis (Außerhalb des htdocs Verzeichnis!)
"share_root": "/htdocs/curriculum/share/", // Share Verzeichnis
"document_root": "/htdocs/curriculum/share/../public/", // Verzeichnis der index.php
"controllers_root": "/htdocs/curriculum/share/controllers/", // Controller Verzeichnis
"plugins_root": "/htdocs/curriculum/share/plugins/", // Plugin Verzeichnis
"user_root": "/cur_data/user/", // Benutzer Datenverzeichnis
"curriculum_root": "/cur_data/curriculum/", // Lehrplan Datenverzeichnis
"subjects_root": "/cur_data/subjects/", // Fach Datenverzeichnis
"solutions_root": "/cur_data/solutions/", // Einreichungen Datenverzeichnis
"badges_root": "/cur_data/badges/", // Badges/Abzeichen Datenverzeichnis (wird nicht mehr direkt verwendet)
"institutions_root": "/cur_data/institution/", // Institutions Datenverzeichnis
"backup_root": "/cur_data/backups/", // Backup Datenverzeichnis
"sql_backup_root": "/cur_data/backups/sql/", // SQL Backup Datenverzeichnis
"lib_root": "/curriculum/share/libs/", // Lib Verzeichnis (MPDF, Smarty, CKEditor, ..)
"demo_root": "/cur_data/support/", // Hilfe/Support Verzeichnis (Vorlagen, ...)
"access_file": "../share/accessfile.php?file=", // Accessfile Pfad
"access_file_url": "https://localhost/curriculum/share/accessfile.php?file=", // Accessfile URL (Aufruf per Dateiename)
"access_token_url": "https://localhost/curriculum/share/accessfile.php?token=", // Accessfile URL (Aufruf per token)
"access_id_url": "https://localhost\/curriculum/share/accessfile.php?id=", // Accessfile URL (Aufruf per id)
"support_path": "../share/accessfile.php?file=support/", // Accessfile Hilfe/Support Pfad
"subjects_path": "../share/accessfile.php?file=subjects/", // Accessfile Fach Pfad
"solutions_path": "../share/accessfile.php?file=solutions/", // Accessfile Einreichungen Pfad
"curriculum_path": "../share/accessfile.php?file=curriculum/", // Accessfile Lehrpläne Pfad
"avatar_path": "../share/accessfile.php?file=user/", // Accessfile Nutzer Pfad
"web_backup_path": "../share/accessfile.php?file=backups/", // Accessfile Backup Pfad
"request_url": "https://localhost/curriculum/public/", // Request URL
"media_url": "https://localhost/curriculum/public/assets/", // Media Verzeichnis (Medien die nicht im Datenverzeichnis liegen, z.b. Logos)
"lib_url": "https://localhost/curriculum/public/../share/libs/", // Lib URL
"tb_param": "&modal=true&format=1", // Standart Arameter für den Dateimodal Dialog
"post_max_size": "32M", // Vorgegebener PHP post_max_size Wert
"settings": { // ARRAY of Settings wie in der DB, Tabelle config hinterlegt
"repository": { // ARRAY der Plugins, in diesem Fall gibt es nur Repositories
"edusharing": { // Name des Repos
"titles": null
},
"sodis": {
"titles": null
}
},
"template": "AdminLTE-2.3.7", // Aktuelles Template
"messaging": "intern", // verwendetes Nachrichtenmodul
"email_Host": "", // Konfigurationsdaten, falls messaging über Email gehen soll.
"email_SMTPAuth": true, // s.o.
"email_Password": "",
"email_SMTPSecure": "tls",
"email_Port": 587,
"email_Username": "",
"guest_login": true, // Gast-Nutzer aktiv?
"guest_usr": "gast_username", // Nutzername des Gast-Nutzers
"guest_pwd": gast_password", // Passwort des Gast-Nutzers
"acc_days": 7, // Standartwert wie viele Tage neue Erfolge angezeigt werden.
"paginator_limit": 30, // Standartwert: Anzahl der Einträge in Listen
"standard_role": 0, // Standartwert: Rolle 0 = Schüler
"standard_country": 56, // Standartwert: Land 56 = Deutschland
"standard_state": 11, // Standartwert: Bundesland 11 = Rheinland-Pfalz
"csv_size": 1048576, // Standartwert: CSV in Bytes
"avatar_size": 1048576, // Standartwert: Profilbild in Bytes
"material_size": 1048576, // Standartwert: Dateien in Bytes
"timeout": 30, // Standartwert: Timeout in Minuten
"message_timeout": 4000, // Standartwert: Anzeige von Nachrichten in ms
"standard_avatar": "user/noprofile.jpg", // Standartwert: Userprofilbild
"standard_avatar_id": 0, // Standartwert: Userprofilbild file_id
"standard_ins_logo_id": 1, // Standartwert: Institutions-Logo file_id
"mail_paginator_limit": 10, // Standartwert: Anzahl der Einträge in Mail-Listen
"shibboleth": false, // Anzeige Shibboleth-Login (todo: das sollte über das Plugin geregelt werden)
"ghostscript_path": "/usr/bin/", // Pfad zu gostscript für die Erstellung von Thumbnails
"thumbnails": true, // Sollen Thumnails erstellt werden?
"guest_startpoint": "navigator", // Startpunkt für den Gastlogin
"guest_show_terms": false, // Sollen Gäste die Nutzungsbedingungen angezeigt bekommen?
"guest_show_menu": false // Sollen im Gastlogin Menüs angezeigt werden?
},
"smarty_template_dir_url": "http://localhost/curriculum/share/templates/AdminLTE-2.3.7/" //aktuelle Template URL
}
global $PAGE
Das $PAGE Objekt wird in share/setup.php
global deklariert.
Beispiel des $PAGE Objekts
{
"action": "view", // aktuelle Seite
"layout": "fixed sidebar-mini", // Page Layout class
"body_wrapper": "wrapper", // Body wrapper class
"header": true, // Header anzeigen
"previous_url": "http://localhost/curriculum/public/index.php?action=dashboard", // Previous URL
"url": "http://localhost/curriculum/public/index.php?action=view&curriculum_id=1370&group=89", // Actual URL
"previous_php": "null", // Previous php filename
"php": "index.php", // Actual php filename
"previous_action": "dashboard", // Previous page action
"browser": "Mozilla/5.0 ...", // Browser
"controller": "/Applications/MAMP/htdocs/curriculum/share/controllers/view.php", // Current controller file
"curriculum": "1370", // actual Curriculum
"show_reference_id": null, // var to store references
"target_url": null, // target url
"message": null, // messages
"group": "89", // actual group
"reference_curriculum_id": false // reference curriculum id (view.tpl)
}
global $USER
Das $USER Objekt wird inshare/setup.php
global deklariert. Sobald sich ein User anmeldet, wird die Funktion session_reload_user
aufgerufen und die Userdaten in $USER
also auch in $_SESSION['USER']
gespeichert.
Das Passwort wird nicht in$USER
und in der $_SESSION
gespeichert.
Damit die einzelnen Werte in den Templates bequem genutzt werden können, werden diese über die Funktion assign_to_template
mit dem Prefix 'my_'
gesetzt. So kann z.B. der username
über innerhalb der Templates über die Variable my_username
genutzt werden.
Das folgende Beispiel zeigt die Stuktur des $USER
Objekts mit Kommentierungen
Beispiel des $USER Objekts
{
"id": 1234, // id des users
"username": "testuser", // Nutzername
"firstname": "Joachim", // Vorname
"lastname": "Dieterich", // Nachname
"password": "", // Passwort (empty)
"role_id": 1, // aktuelle Rolle (abängig von aktueller Institution)
"role_name": "Administrator", // Name der aktuellen Institution
"last_login": "2018-12-15 10:21:58", // Zeitsignatur des letzten Logins
"last_action": null, // Zeitsignatur der letzten Aktion
"email": "mail@curriculumonline.de", // Email des Nutzers
"confirmed": 1, // Status des Nutzers (1 = Nutzer ist bestätigt;
2 = (wird zur Zeit nicht verwendet);
3 = Nutzer muss Passwort ändern (Entsprechder Dialog wird nach Login angezeigt);
4 = Nutzer wurde noch nicht von Admin freigegeben)
"postalcode": "76831", // Postleitzahl
"city": "Landau in der Pfalz", // Ort
"state": "Rheinland-Pfalz", // Bundesland
"state_id": 11, // Bundesland id
"country": "Deutschland", // Land
"country_id": 56, // Land id
"avatar_id": 2630, // file_id des Nutzerbildes
"avatar": "user/1234/avatar_xs.png", // Pfad zum Nutzerbild
"semester_id": 70, // aktueller Lernzeitraum
"semester": null, // Name des aktuellen Lernzeitraums
"paginator_limit": 30, // Anzahl der Einträge pro Seite in Listen
"acc_days": 7, // Anzahl der Tage, an denen neue Statusmeldungen gezeigt werden
"creation_time": "2013-09-08 09:45:04",// Zeitsignatur wann Nutzer angelegt wurde
"creator_id": 10, // id des Nutzers, der diesen Nutzer angelegt hat
"institutions": [ // ARRAY der Einschreibungen in Institutionen
{
"institution": "Testschule 1", // Name der Institution
"id": 56, // id der Institution
"role_id": 1, // role_id: Rolle des Nutzers an dieser Institution
"role": "Administrator" // Rollennamen als string
},
{
"institution": "Testschule 2", // s.o.
"id": 97,
"role_id": 7,
"role": "Lehrer"
}
],
"institution_ids": [ // ARRAY aller ids der Institutionen in die der Nutzer eingeschrieben ist. Dieses Array kann genutzt werden, um z.b. in SQL Queries einfachere Abfragen zu machen, in dem geprüft wird, ob Nutzer in einer Institution eingeschrieben ist.
56,
97
],
"institution_id": 56, // id der aktuellen Institution
"institution": { // Institutions-Objekt der aktuellen Institution
"id": 56, // id der Institution
"confirmed": 1, // Status der Institution (0 = deaktiviert; 1 = aktiv))
"institution": "Testschule 1", // Name der Institution
"description": "Beschreibung der Schule", // Beschreibung der Institution
"schooltype_id": 9, // id des Schultypes
"country_code": null, // country_code der Institution z.B. 'DE'
"state_id": 11, // id des Bundeslandes
"creation_time": "2013-09-07 09:48:50", // Zeitsignatur, wann Institution angelegt wurde
"creator_id": 10, // id des Nutzers, der die Institution angelegt hat
"paginator_limit": 30, // Anzahl der Einträge pro Seite in Listen
"std_role": 0, // Standartrolle an diese Institution
"csv_size": 1048576, // Erlaubte Uploadgröße von CSV Dateien
"avatar_size": 1048576, // Erlaubte Uploadgröße von Profilbildern
"material_size": 1048576, // Erlaubte Uploadgröße von Dateien
"acc_days": 7, // Anzahl der Tage, an denen neue Statusmeldungen gezeigt werden
"timeout": 30, // Zeit nachdem ein Nutzer abgemeldet wird
"semester_id": 30, // Aktueller Lernzeitraum
"file_id": 126, // file_id des hinterlegten Bildes der Institution
"statistic": null, // Variable, in der bei Bedarf statistische Daten gespeichert werde
"country_id": "56" // id des Bundeslandes
},
"enrolments": [ // ARRAY der Einschreibungen in Kurse (= Lerngruppe -> Lehrplan)
{
"curriculum": "Deutsch 1-4", // Name des Lehrplans
"id": 201, // id des Lehrplans
"grade_id": 146, // id der Lerngruppe
"icon_id": 3011, // file_id des Lehrplanbildes
"color": "#e9ff00AA", // Farbe des Lehrplans
"group_id": 80, // id der Lerngruppe
"semester_id": 72, // id des Lernzeitraumes
"groups": "Grundschule 1-4", // Name der Lerngruppe
"completed": 3.75 // individueller Lernstand (Prozentwert) des aktuellen Nutzers in dieser Lerngruppe
},
{
"curriculum": "Naturwissenschaft 5-6", // s.o.
"id": 348,
"grade_id": 48,
"icon_id": 2840,
"color": "#3bc95aAA",
"group_id": 83,
"semester_id": 70,
"groups": "Klasse 5-6",
"completed": 0
},
{
"curriculum": "MedienkomP@ss - Rahmenkonzept ab 2018 Sek. I mit KMK Formulierungen",
"id": 272,
"grade_id": 10,
"icon_id": 3009,
"color": "#3ac957AA",
"group_id": 76,
"semester_id": 72,
"groups": "Testgruppe",
"completed": 0
},
],
"group_ids": [ // ARRAY aller ids der Lerngruppen in die der Nutzer eingeschrieben ist. Dieses Array kann genutzt werden, um z.b. in SQL Queries einfachere Abfragen zu machen, in dem geprüft wird, ob Nutzer in einer Lerngruppe eingeschrieben ist.
80,
83,
76
],
"curriuclum_ids": [ // ARRAY aller ids der Lehrpläne in die der Nutzer eingeschrieben ist. Dieses Array kann genutzt werden, um z.b. in SQL Queries einfachere Abfragen zu machen, in dem geprüft wird, ob Nutzer in einem Lehrplan eingeschrieben ist.
201,
272,
348
],
"course_ids": [ // ARRAY aller ids course_ids (id in curriculum_enrolments)
40,
45,
61
],
"token": "34DAE64B985BC041D738D4BA4AAED226", // individuelles Token des Nutzers (z.B. in login.php genutzt)
"auth": "manual", // Authentifizierungmethode dieses Nutzers
"completed": null, // Hier können für Kurse Lernstände zwischengespeichert werden
"online": null, // aktueller online-Status
"children_id": null // ARRAY von ids von Nutzern die diesem Nutzer als Kinder zugeordnet sind
}
Last updated