ALAF - Ablaufsteuerung

ALAF - Ablaufsteuerung

Hier wird die Programmablaufsteuerung für das PHP-Framework ALAF beschrieben:


Die Ablaufsteuerung umfasst grundsätzlich 2 Bereiche:

Frontend

Aufruf über das Skript index.php

Backend

Aufruf über das Skript admin.php

Backend - Ablaufsteuerung

Hier wird die Backend - Ablaufsteuerung für Framework ALAF erklärt:


Das Backend wird aufgerufen, indem in der URL der Skriptaufruf admin.php enthalten ist:

Nr php-skript aktion / funktion
1 admin.php include 'mainfile.php';
1.1 mainfile.php Konstanten definieren (z.B. DS, ALAF_SYSTEM_DIR, ALAF_SYSTEM_CLASS_DIR, ...)
1.2 mainfile.php

error_reporting ( E_ALL ^ E_NOTICE ); // Alle Fehler ausser E_NOTICE melden

1.3 mainfile.php

Prüfung, ob Konfigurationsdatei 'config.php' vorhanden: Sonst die()

1.4 mainfile.php

/* System-Funktionen laden und API's einbinden */

require_once (ALAF_SYSTEM_DIR . DS . 'af_system.php');

1.4.1 af_system.php Hier stehen nur Satzstatus-Konstanten und Systemfunktionen!
1.5 mainfile.php

// Basisklasse für das Framework laden:

load_class ( 'af_base' );

1.5.1 af_base.php Basis-Klasse: liest die config.php in die Basis-Klasse af_base
1.6 mainfile.php Setzt die länderspezifischen und Zeitzonenspezifischen Einstellungen
1.7 mainfile.php

/* Fehlerbehandlung und Debugmethoden aktivieren */

load_class ( 'af_debug', false );

af_debug::init ();

1.8 mainfile.php

/* Session einbinden (Start erfolgt in af_engine::start() */

$afSessionLifetime = af_base::get_afConfig('afSessionLifetime');

$afSessionLifetime = (isset ( $afSessionLifetime )) ? $afSessionLifetime : 30;

define ( "AF_COOKIE_LIFETIME", $afSessionLifetime * 24 * 60 * 60 );

define ( "AF_SESSION_LIFETIME", $afSessionLifetime * 24 * 60 * 60 ); // Standard 6 Stunden

/* die Sessionlifetime für nicht-User / nicht-Admins in Sekunden */

define ( 'AF_SESSION_LIFETIME_NOUSER', '1440' );

require_once (ALAF_SYSTEM_DIR . DS . 'af_session.php');

1.9 mainfile.php

/* Referer aktualisieren */

afReferer();

2 admin.php

// Framework-Engine starten:

load_class ( 'af_engine', 'admin' );

af_engine::start ();

3 admin.php

// Admin-Klasse af_admin (statisch) instanzieren

require_once (ALAF_ADMIN_DIR . DS . 'admin_functions.php');

// Admin: Ablauf-Steuerung:

echo af_admin::run ();

3.1 admin/admin_functions.php AF_IS_USER und AF_IS_ADMIN - Konstanten setzen
3.2 admin/admin_functions.php

// Userstatistik aktualisieren:

self::update_userstat ();

3.3 admin/admin_functions.php admin-Modul(e) ermitteln und durchlaufen...
3.4 admin/admin_functions.php

// Menü, helptab und newentries erstellen und in die af_engine uebergeben:

self::admin_build_sidemenubar ( self::$__op );

self::admin_build_helptab ();

self::admin_get_newentries ();

3.5 admin/admin_functions.php

/* Template "admin/templates/adminpage.html" aufbereiten und ausgeben

  • adminpage.html enthält den Inhalts-Bereich der Admin-Seite ohne TOP und ohne SIDE-Menu!! 
  • Neu: sollte ein THEME eine eigene adminpage.html besitzen, so wird diese verwendet!

*/

return self::$_template->fetch ( 'adminpage.html' );

4 admin.php

// Letzte Aktion: Ausgabe erzeugen:

af_engine::final_output (); // Schliesst den Ausgabepuffer und gibt den Seiteninhalt aus!

4.1 class: af_engine

// Theme-Dateien einlesen und Theme-Funktion zum Ersetzen der Schlüsselworte aufrufen:

include_once (ALAF_THEMES_DIR . DS . self::$__config ['themename'] . DS . 'theme.php');

include_once (ALAF_THEMES_DIR . DS . self::$__config ['themename'] . DS . 'theme.functions.php');

$export = self::fetch_with_theme ();

4.2 class: af_engine

function fetch_with_theme()

/* HTML-Grundgerüst aus den af_engine - Variablen erstellen:

  • head
  • meta
  • title
  • styles
  • scripts
  • head_more
  • /head
  • body

*/

/* Theme einlesen - es wird nur der

Body- Bereich verwendet! */

"themeordner/theme.html"

// Löschen der Blöcke:

  • START alaf_PageHeading END
  • START alaf_OnlyTemplate END
  • START alaf_ScriptAtEnd END

// Die Platzhalter aus dem theme ersetzen:

if (function_exists ( 'theme_define_placeholders' )) {

    $parts = theme_define_placeholders ();

    ...

}

// Ersetzung der Template-Platzhalter für den Content und die Side-Bar:

  •   START alaf_Content END   // durch Ausgabepuffer:
  • START alaf_SidebarMenu END

// Skript-Code für das Ende hinzufügen