GBM Functions

This document is the starting point for laying out the core functionality of the GBM software. I will attempt to outline the major components and the various functions that are included within the different files that you find in the gbm-functions directory. As we go forward, I would expect to see even more detail added to the various basic function definitions, etc.

GBM Functions Directory

Suffice it to say that if it is a core function that is to be accessed by any and/or all modules, or performs some basic function like connecting to the database, or parsing a CSS stylesheet, you can most likely expect to find it in this, the 'gbm-functions' directory.

Currently, with the default distribution, you will find these files in this directory:

  • overlib - javascript application used for fancy HTML-based mouseovers
    • includes overlib.js file stored in gbm-functions directory
  • plugins - currently, this directory doesn't do much, but we have plans for it.
  • x - a plethora of javascript addons that can come in quite handy for some template things.
  • allakhazam.php
  • cb_auth_utils.inc.php
  • cb_database_utils.inc.php
  • cb_mail_utils.inc.php
  • cb_User.class.php
  • cb_user_stat.cron.php
  • dbug.inc.php
  • error_handler.inc.php
  • gbm_config.php
  • itemcache.php
  • none.php
  • overlip.js
  • sha1lib.class.inc.php
  • submiturl.php
  • theme-functions.inc.php
  • thottbot.php
  • urlreader.php
  • xmlhelper.php

Development / Debugging Files

Included with the core distribution right now are a couple of debugging files for tracking down errors and getting information about what goes wrong with the internal workings of the software. These files aren't necessarily required for the normal operation of the software, as the error reporting can be disabled in the configuration file, and the other file (dbug.inc.php) is only really used in testing code that's just been written.

Related Files:

  • dbug.inc.php
  • error_handler.inc.php

cBrooks Core Functions

These files have been incorporated from a user control panel that was written a while ago on another project of mine, and have been bootstrapped into this project as a means of boosting the security / efficiency of the user authentication, database access, and mailer functions. While these all may not stay such as they are, and may in fact be streamlined later on, or altogether replaced, they certainly suffice for the time being.

Note: This group of includes is mostly what is driving the back-end of the software.

  • cb_auth_utils.inc.php
  • cb_database_utils.inc.php
  • cb_mail_utils.inc.php
  • cb_User.class.php
  • cb_user_stat.cron.php
  • sha1lib.class.inc.php

Ref CbrooksCore

Theming Functions

Core theme-parsing / theme-based functions can be found in theme-functions.inc.php. More detail will be spent explaining the contents and purpose of this file later on. It should also be noted that interface_widgets.jscript is simply a handy couple of javascript functions used in interface design. (I expect to see something like this moved to the template / theme side of things later on.)

gbm_config.php

You will find this file covered in detail under GbmConfigFile

InfoSite Files

These files are those that parse data from an InfoSite (such as Thottbot or Allakhazam) and store it in the itemcache database. Currently, these are distributed with the core distribution. I would like to see them stored in a different directory, such as the plugins directory, but for now, they reside here.

Misc.

There are a number of files, as yet, that are still reminiscent of the original software package that we started working with, and a few others that have been strapped on that, for the time being are just "there." These are, obviously, pieces that we plan to integrate into a cohesive structure later on. The primary function of these files are the importation of information from InfoSite's into the database, or for interacting with the stored information.

  • itemcache.php - Abstraction layer for interacting with database table storing downloaded item information.
  • itemstats.php
  • submiturl.php
  • urlreader.php
  • xmlhelper.php