This page will attempt to explain the process flow of the Aneuch script. It might be useful to both contributors to the mainline Aneuch source, as well as plugin developers.

  • Init
    This is the very first subroutine called. It calls the following:
    • InitScript
      Determines $Url, $ShortUrl, $ScriptName and $ShortScriptName
    • InitConfig
      Executes $ConfFile (default ''), which sets user-configured variables
    • InitVars
      Initializes default variables. If a variable was set in the previous step (InitConfig) it will not be over-written. This is also where several "special" things get declared via: RegCommand, RegAdminPage, RegPostAction, RegSpecialPage
      • InitDirs
        Initializes directories (if this is the first time Aneuch is ran)
    • LoadPlugins
      This is where all plugins get loaded. Plugins should end in the extensions '.pl' or '.pm', and be in the $PluginDir directory.
    • DoPostInit
      Calls any sub that has been registered using RegPostInitSub.
  • DoRequest
    Handles the current request. The following are called as part of this:
    • IsBlocked
      Checks if the current user is blocked.
      • ErrorPage
        If the user is blocked, call ErrorPage with a 403 error.
    • DoSurgeProtection
      If this returns true, call:
      • ErrorPage
        Called with 503 error.
    • ReadIn
      Checks if the script is getting POST data.
      • DoPosting
        If ReadIn return true (1), call DoPosting.
        • If the 'doing' element of the submitted data exists in %PostingActions, then execute it.
    • CanView
      Checks if the user can view ($SiteMode < 3, or authenticated). If not, redirect to login page.
    • Checks if the "do" parameter is "random", and if so, execute $Comands{'random'}.
    • Check if page requested (or if a command, if the command is defined), and if not, set $HTTPStatus to 404 error.
    • If the command is 'revision', check if the requested page revision exists, and if not, set $HTTPStatus to 404 error.
    • DoHeader
      This prints out everything that belongs to the theme's header.
    • If a command is being called (GetParam('do')), and it is defined, execute the command.
    • OR if the page does not exist, send out the contents of $NewPage (default 'It appears that there is nothing here.')
    • OR if the page does exist, and Markup() exists:
      • Markup
        Send the text from $Page to Markup(), which should return properly formatted HTML.
        • MarkupBuildLink
          Takes any text between two ['s and two ]'s and returns an HTML anchor element (<a>).
    • IF Markup does not exist:
      • Send the text from $Page out to the browser
    • DoSpecialPage
      If the current $Page matches something defined via RegSpecialPage, execute its associated subroutine.
    • DoFooter
      This prints out everything that belongs to the theme's footer.
  • DoVisit
    Records the details of the current browse request to $VisitorLog
  • DoMaint
    Calls any subroutines defined to %MaintActions, which are used to clean up temp files, $VisitorLog, etc.