De WB klassen en functie-bibliotheken zijn opgeslagen in de folder framework/. De meest belangrijke worden opgesomd in onderstaande lijst. De ingesprongen klasse-namen geven aan dat de betreffende klasse een uitbreiding is van zijn voorganger. Zulke klassen erven alle eigenschappen van hun ouder en breiden deze uit met hun eigen functies.

Klasse: class.wb.php

Deze klasse bevat alle kern-functies van WebsiteBaker. Deze wordt automatisch geladen alvorens enige front- of backend pagina getoond wordt. De klasse bevat functies om data te verzamelen en filteren die overgedragen worden via GET, POST of SESSION. Dit is de plek waar de $_SESSION variabelen geïntroduceerd worden die in het vorige hoofdstuk werden beschreven. Verder bevat de klasse nog functies om te bepalen wat de toegangs-permissies zijn van de huidige gebruiker.

Klasse: class.frontend.php

Deze klasse is een uitbreiding van class.wb.php. Hier kan men alle functies vinden die nodig zijn om een pagina te tonen in de frontend. Wanneer een grbuiker de URL http://domein.com of http://domein.com/pages/xx.php typt in zijn browser, zal het bestand http://domein.com/index.php opgehaald worden. Dit bestand laadt op zijn beurt de klasse class.frontend.php en gerbuikt de functies die deze bevat. Een schematische weergave van de functie-oproepen wordt weergegeven in onderstaande flowchart.

Flowchart frontend

Flowchart van de klassen/functies die worden aangesproken tijdens het opvragen en tonen van een pagina op de frontend

Klasse: class.admin.php

Deze klasse is een uitbreiding van class.wb.php. Deze wordt geladen voordat enige pagina van de WB backend getoond wordt. Deze klasse controleert de permissies van de huidige ingelogde gebruiker en toont de pagina's van de WB backend die deze gebruiker mag zien. Gebruikers die nog niet ingelogd zijn worden automatisch doorverwezen naar de login-pagina.

Klasse: class.login.php

Deze klasse is een uitbreiding van class.admin.php. Deze wordt opgeroepen door http://domein.com/login/index.php of door class.admin.php (als de gebruiker niet ingelogd is). Deze klasse bevat alle functies die nodig zijn voor het login proces, zoals: vergelijken van gebruikers-input met de database informatie, tellen van login-pogingen, registreren van gebruikers, vastleggen van gebruikers-informatie, etc.

Klasse: class.database.php

Dit bestand bevat de twee klassen database en mysql. De klasse database bevat functies om verbinding te maken met de WB database, het uitvoeren van database-queries en het sluiten van de verbinding met de database. De klasse mysql bevat handige functies die gebruikt kunnen worden in eigen modules. De meest belangrijke functies in de klasse mysql staan in onderstaande lijst.

  • query($statement): om een database query uit te voeren
  • numRows(): geeft het aantal database velden (rijen) die volgen uit een query
  • fetchRow: geeft alle data sets (kolommen) van een bepaalde toevoeging (rij)
  • get_one: geeft de waarde uit de eerste dataset (kolom) van de eerste toevoeging (rij)

Klasse: class.wbmailer.php

Deze klasse werd geïntroduceerd met ingang van WB 2.6.5 en is een uitbreiding van de klasse PHPMailer in /include/phpmailer. PHPMailer is een extern Open Source Project dat functies aanbiedt om mails uit te sturen. Deze klasse wordt ook gebruikt in andere projecten, zoals Joomla. 

De klasse class.wbmailer.php gebruikt de WB configuratie instellingen en voorziet standaard waarden voor taal, karakterset (bijv. utf8), naam afzender, mail adres afzender (FROM:) en een pagina-overgang (standaard is na 80 karakters).

Klasse: class.order.php

Deze klasse bevat functies om de database te updaten als pagina's worden verschoven (omhoog/omlaag) via de WB backend. De functies in deze klasse zijn niet zo belangrijk voor module-ontwikkelaars.

Functie-bibliotheek: frontend.functions.php

Deze bibliotheek bevat bruikbare functies die gebruikt kunnen worden in uw eigen modules of in de index.php van het template. De meest interessante functie staan in de volgende lijst.

  • page_menu(): vervangen door show_menu; gebruik alleen voor WB < 2.6
  • show_menu(): vervanging voor page_menu, voorziet in meer vrijheid om stijlen toe te voegen aan het menu
  • page_content(): toont de inhoud van een specifiek blok (standaard:= 1)
  • show_breadcrumbs(): toont een breadcrumb link naar de huidige pagina
  • page_title(): toont de titel van de huidige pagina
  • page_description(): toont de pagina-omschrijving van de huidige pagina (META tags)
  • page_keywords(): toont de sleutelwoorden van de huidige pagina (META tags)
  • page_header(): toont de koptekst die werd gedefiniëerd in de backend: Instellingen 
  • page_footer(): toont de voettekst die werd gedefiniëerd in de backend: Instellingen
  • register_frontend_modfiles(): voegt de optionele module-bestanden: frontend.css & frontend.js toe in de <head> sectie van het template. Hierdoor is het mogelijk modules te maken die een valide (X)HTML output genereren.

Functie-bibliotheek: functions.php

Deze bibliotheek bevat functies voor het manipuleren van bestanden. De functies kunnen gebruikt worden in uw eigen modules. De meest interessante functie staan in onderstaande lijst.

  • rm_full_dir(): verwijdert een directory met alle bestanden en subfolders
  • directory_list(): geeft een array met alle subfolders, gebaseerd op een start-folder
  • chmod_directory_contents: staat toe de permissies van bestanden en onderliggende subfolders te wijzigen
  • file_list(): geeft een array met alle bestanden en subfolders, gebaseerd op een start-folder (mogelijkheid om bestanden niet in de array weer te geven)
  • get_home_folders(): geeft een array met alle home folders onder /media
  • make_dir(): maakt een nieuwe folder aan
  • change_mode(): wijzigt permissies van bestanden en folders
  • is_parent(): checkt of de huidieg pagina een ouder is
  • level_count(): geeft de menu-diepte van de huidige pagina 
  • root_parent(): geeft PAGE_ID van de hoogste ouder 
  • get_page_title(): geeft de pagina-titel van de huige pagina
  • get_menu_title(): geeft de menu-titel van de huidige pagina
  • get_parent_titles(): geeft een array met titels van alle ouders van de huidige pagina
  • get_parent_ids(): geeft een array met PAGE_IDs van alle ouders van de huidige pagina
  • get_page_trail(): geeft het pad naar de huige pagina, zoals deze opgeslagen is in de database

Opmerking:

Check de functies die beschikbaar zijn in functions.php alvorens U begint met het programmeren van uw eigen routines. Wellicht is er reeds een functie beschikbaar die aan uw eisen voldoet.