A Site Area is a container for a group of Site Pages. The Site Structure is made up of a single Root Site Area that contains any number of child Site Areas or Site Pages.
Site Areas may contain child Site Areas, nested to any depth.
A Web Application has a SiteArea setting in Application.syrp. This setting determines the normal top-level Site Area and determines the navigation context for the running Applcation. You might have other defined SiteAreas that are reserved for different sub-applications or sub-sections of the main web application.
A Site Page represents a single web page in a web application. The \DblEj\SiteStructure\SitePage and \DblEj\Mvc\SitePage classes are the two implementations currently available.
The term "Site Page" refers to the logical Site Page - not to be confused with the physical SitePage implementations.
If you do not define the Site Structure ahead of time in SiteStructure.syrp, then ActiveWAFL will always assume that the Presentation Template has the same base file name as the Request Handler (the Controller in Mvc apps). For example, a Controller named LandingPage.php will always look for a Presentation Template named LandingPage.tpl (and a Presentation Stylesheet named LandingPage.css) unless otherwise specified in the Site Structure.
Notes for users of ActiveWAFL MVC
It can be easy to confuse the concepts described above with Routing. Routing occurs prior to the decisions affected by the Site Structure.
Routing decides what the Requestor is looking for based on the Request sent in and routes it to the appropriate Request Handler. A Request Handler can be a Php script or class (a Controller in the case of Mvc). It is then that the Request Handler can use the Site Structure to decide which Presentation Template to render.
Api Call Definition
<Application Root>/Config/Advanced/ApiCalls.syrp defines where Api/Ajax calls are routed to. All Api calls must be explicitly defined.
In ActiveWAFL MVC apps, Api/Ajax calls are not handled by Controllers. The ActiveWAFL MVC router completely ignores Api calls. They are handled instead by API Handlers.