classes/php5_classes/OrderItem.class.php

Properties

Description

Holds the geoOrderItem class.

Classes

geoOrderItem

Properties

 
\iOrderItem
 
System  
Yes 
No 

Description

The class that all order items must extend.
This has a lot of "default" methods that the order items will inherit and can overwrite if needed, along with some abstract methods that each order item is forced to implement. This extends an interface so that there are also static methods added by the interface that must also be implemented by each order item. Failure to implement any of the stuff will result in a PHP fatal error. This also has a few final static methods that are used system-wide.

Methods

__construct, addParentTypeFor, callDisplay, callUpdate, displayInAdmin, enforceAnonymous, friendlyName, geoOrder_processStatusChange_emailItemInfo, get, getCategory, getChildrenTypes, getCost, getCostDetails, getCreated, getDisplayDetails, getId, getOrder, getOrderItem, getOrderItemFromParent, getOrderItemTypes, getParent, getParentTypesFor, getPlanItem, getPricePlan, getProcessOrder, getRecurringDescription, getRecurringInterval, getRecurringPrice, getRecurringStartDate, getStatus, getType, getTypeTitle, initRegistry, isAnonymous, isListingItem, isRecurring, itemExists, loadTypes, processRemove, processRemoveData, processStatusChange, remove, removeData, reorderTypes, save, serialize, set, setCategory, setCost, setCreated, setId, setOrder, setParent, setPricePlan, setStatus, setType, touch, unSerialize, unregisterItemType,

__construct( ) : n/a

Description

Constructor, initializes stuff.

Return value

Type Description
n/a n/a

addParentTypeFor( string   $childType, string   $parentType, ) : bool

Description

Add a parent type to the given "child" order item. Note that a parent can only be added to a "child" order item that already has at least 1 parent order item.

Arguments

Name Type Description Default
$childType string

The item type to add the parent type to

$parentType string

The parent type to be added to the list of parent types

Return value

Type Description
bool returns true if parent was added successfully, false otherwise.

Tags

Name Description
since Version 4.1.0

callDisplay( string   $call_name, mixed   $vars = null, string   $separator = '', string|array   $item_type = '', bool   $run_children = false, ) : mixed

Description

Statically calls the specified display function for the order item specified, or all of the different order items with no parents if no specific order item is specified, and seperates the returned responses from each of the order items by $separator
IMPORTANT: This leaves it up to each order item to make sure that order item is turned on and all that, and that input is cleaned, and that all "child" order items are called if needed. This is similar to the addon method {@link geoAddon::triggerDisplay()} but this one is a little more simple.

Arguments

Name Type Description Default
$call_name string

method name to call

$vars mixed

vars that will be passed to the order item(s)

null
$separator string

What string to use as glue, or one of these special cases: array: returns an array of arrays, each result is a non-empty array. string_array: returns an array of strings, each result is a non-empty string bool_true: if any return true, then return true. otherwise return false. (strict match) bool_false: if any return false, then return false. otherwise return true. (strict match) not_null: if any return a non-null (strict match) value, that value is returned.

''
$item_type string|array

Either a string of the specific item type to call, or an array of item types.

''
$run_children bool

If true, will also run children order items (items that have a parent)

false

Return value

Type Description
mixed Usually a string of each result seperated by separator, or if separator is special case, returns whatever that special case is for.

callUpdate( string   $call_name, mixed   $vars = null, string|array   $item_type = '', bool   $run_children = false, ) : n/a

Description

Calls the specified update function for the order item specified, or all of the order item types with no parents, if no specific order item type is specified.
IMPORTANT: This leaves it up to each order item to make sure that order item is being used and turned on on and all that, and that input is cleaned, and that all "child" order items are called if needed.

Arguments

Name Type Description Default
$call_name string
$vars mixed null
$item_type string|array ''
$run_children bool

If true, run this call on children item types, not just parent items

false

Return value

Type Description
n/a n/a

displayInAdmin( ) : bool

Description

Required, should return true or false, whether or not to display this order item in the admin. Most will return true, only special cases, like "sub total" should return false.

Return value

Type Description
bool True if this item should be displayed in the admin, false otherwise.

enforceAnonymous( string|null   $itemType = null, string   $loginFormParam = 'a*is*cart', ) : bool

Description

If anonymous not allowed for the main type, and current session is anonymous, shows the login form and returns true to allow caller to do any cleanup and exit. Note that if this returns true, the page has already been displayed and everything, the only thing left to do is any special cleanup (such as removing an item from the cart if needed), and then exit.
If this returns false, that means everything is OK and it is OK to proceed. So, TRUE = non-anon enforment required, need to exit, and FALSE = ok to proceed.

Arguments

Name Type Description Default
$itemType string|null

If set, will check item specified for anonymousAllowed(). If null or empty string, will assume anonymous is NOT allowed.

null
$loginFormParam string

IF user needs to log in and login form is called, this will be passed as the 4th param to the {@link Auth::login_form()} call.

'a*is*cart'

Return value

Type Description
bool FALSE: no enforcement needed, it is OK to proceed. TRUE: user not logged in, and anonymous is not allowed, so we just did some enforcing by displaying the login page. Now it is your turn to EXIT.

friendlyName( ) : String

Description

Optional, used in admin to show which upgrades are attached to a Listing Renewal item (superclass fallback, so things don't break if a new upgrade type doesn't have a friendlyName)

Return value

Type Description
String "user-friendly" name of this item

geoOrder_processStatusChange_emailItemInfo( string   $overrideTitle = '', ) : string

Description

Use this to display info about each main item, in the e-mail sent saying the order has been approved. To keep consistent, use this format:
ITEM TITLE [STATUS] - $COST (cost including sub-items of this)

Arguments

Name Type Description Default
$overrideTitle string

Can be used by individual order item to let super class do most of the work, but allow order item to specify the title, in the order item would return parent::geoOrder_processStatusChange_emailItemInfo('my title')

''

Return value

Type Description
string

get( string   $item, mixed   $default = false, ) : Mixed

Description

Gets the specified item from the registry, or if item is one of the "main" items it gets that instead.

Arguments

Name Type Description Default
$item string
$default mixed

What to return if the item is not set.

false

Return value

Type Description
Mixed the specified item, or false if item is not found.

getCategory( ) : int

Description

Gets the category (will be 0 if no category)

Return value

Type Description
int

getChildrenTypes( string   $type_name, ) : n/a

Description

Use this to get all children types of the specified order item type, to be used to allow recursively calling children. Even if type name is not valid, will still find valid children that declare parent to be what is specified.

Arguments

Name Type Description Default
$type_name string

Return value

Type Description
n/a n/a

getCost( ) : double

Description

Get the cost for this item.

Return value

Type Description
double

getCostDetails( ) : array|bool

Description

Required.
Used: By payment gateways to see what types of items are in the order affecting price. Note that for backwards compatibility with older order items, this is implemented in the parent geoOrderItem class, so if you leave it off it will "work". It is still highly recommended to implement anyways in each order item, simply because it's role will be much more important when the ability to use the cart between users is implemented down the road. Most would use the implementation from the template order item. This is very similar to {@see _templateOrderItem::getDisplayDetails()} except that the information is used by payment gateways and is specifically for information about what the "cost" of something is for. Should return an associative array, that follows: array( 'type' => string, //The order item type, should always be $this->getType() 'extra' => mixed, //used to convey to payment gateways "custom information" that may be needed by the gateway. Most can set this to null. 'cost' => double, //amount this adds to the total, what getCost returns 'total' => double, //amount this AND all children adds to the total 'children' => array(), //optional, should be array of child items, with the index //being the item's ID, and the contents being associative array like //this one. Careful not to get into any infinite loops... )

Return value

Type Description
array|bool Either an associative array as documented above, or boolean false if this item has no cost (positive or negative, including children).

Tags

Name Description
since Version 6.0.0

getCreated( ) : int

Description

Gets the date this order item was created, as unix timestamp

Return value

Type Description
int

getDisplayDetails( bool   $inCart, ) : array|bool

Description

Used to get display details about item, and any child items as well, both in the main cart view, and other places where the order details are displayed, including within the admin. Should return an associative array, that follows: array( 'css_class' => string, //leave empty string for default class, only applies in cart view 'title' => string, 'canEdit' => bool, //whether can edit it or not, only applies in cart view 'canDelete' => bool, //whether can remove from cart or not, only applies in cart view 'canPreview' => bool, //whether can preview the item or not, only applies in cart view 'priceDisplay' => string, //price to display 'cost' => double, //amount this adds to the total, what getCost returns but positive 'total' => double, //amount this AND all children adds to the total 'children' => array(), //optional, should be array of child items, with the index //being the item's ID, and the contents being associative array like //this one. Careful not to get into any infinite loops.
.. )

Arguments

Name Type Description Default
$inCart bool

True if this is being called from inside the cart, false otherwise. Note: do NOT try to use the geoCart object if $inCart is false.

Return value

Type Description
array|bool Either an associative array as documented above, or boolean false to hide this item from view.

getId( ) : int

Description

Gets the id for this order item.

Return value

Type Description
int Will be 0 if this item has not been serialized yet (if it is a new item)

getOrder( ) : \geoOrder

Description

Gets the geoOrder object this order item is attached to.

Return value

Type Description
\geoOrder

getOrderItem( mixed   $id, bool   $skipParentCheck = false, ) : \geoOrderItem

Description

Gets the order item specified by the ID and returns the order item object (either this class, or a class specific for that order item that extends this class) for that order, or a new blank order item if the id is 0 or not a valid ID.
Should be called statically (like geoOrderItem::getOrderItem($id) )

Arguments

Name Type Description Default
$id mixed

If 0 or invalid ID, Object returned is for a new blank order item. If string, returns empty order item whos type matches string, if it is valid order item type

$skipParentCheck bool

If set to true, and id is int, it will not check to make sure the parent item (if set) exists.

false

Return value

Type Description
\geoOrderItem

getOrderItemFromParent( \geoOrderItem|int   $parent, string   $item_type, ) : \geoOrderItem|null

Description

Way to get a specific type of child already attached to a parent. If you have a specific order item, and want to get a child of that order item of a specific type, this is the function to use.
If parent's type is the type attempting to find, will just return the parent. If not found, returns null.

Arguments

Name Type Description Default
$parent \geoOrderItem|int

Either the parent order item, the item already matching the type, or the id of the parent order item.

$item_type string

The item type attempting to find.

Return value

Type Description
\geoOrderItem|null Returns the child item who's parent is the parent given, or null if none found.

getOrderItemTypes( bool   $onlyParents = false, ) : array

Description

Gets an associative array of all the different order item types found in the system.

Arguments

Name Type Description Default
$onlyParents bool

If true, will only return order item types that do not have any parent item types themselves, meaning they are parent item types. {@since Version 7.2.0}

false

Return value

Type Description
array

getParent( ) : \geoOrderItem

Description

Gets the geoOrderItem object for the parent order item this is attached to, or null if not attached.

Return value

Type Description
\geoOrderItem

getParentTypesFor( string   $itemType, ) : array

Description

The "new" way to get parent types for a given order item, you should not call the getParentTypes static method directly.

Arguments

Name Type Description Default
$itemType string

Return value

Type Description
array The array of parent types, or an empty array if anything wrong or if item has no parents (is a parent itself)

Tags

Name Description
since Version 4.1.0

getPlanItem( ) : \geoPlanItem

Description

Gets the geoPlanItem for this order item according to the order item's currently set price plan and category.

Return value

Type Description
\geoPlanItem

getPricePlan( ) : int

Description

Gets the price plan

Return value

Type Description
int

getProcessOrder( ) : int

Description

Gets the order in which this order item is to be processed. Note that the process order only applies to other process orders at the same "level" as this one.

Return value

Type Description
int

getRecurringDescription( ) : string

Description

Optional, but required if isRecurring() returns true, otherwise the recurring charge will have no dscription in the payment gateway.

Return value

Type Description
string

getRecurringInterval( ) : int

Description

Optional, but required if isRecurring() returns true, otherwise it will default to 0 (basically recurring being off). This needs to return the interval for the recurring billing, in seconds.

Return value

Type Description
int The recurring interval in seconds.

Tags

Name Description
since Version 4.1.0

getRecurringPrice( ) : int

Description

Optional, but required if isRecurring() returns true, otherwise it will default to 0 (basically recurring being off). This needs to return the price for the recurring billing.

Return value

Type Description
int The recurring interval in seconds.

Tags

Name Description
since Version 4.1.0

getRecurringStartDate( ) : int

Description

Optional, used if isRecurring() returns true, if order item does not implement the current time will always be returned.

Return value

Type Description
int Unix timestamp for when recurring start date should be.

getStatus( ) : string

Description

Gets the status of this order item.

Return value

Type Description
string

getType( ) : string

Description

Gets the type of order item

Return value

Type Description
string

getTypeTitle( ) : string

Description

Title displayed in the admin

Return value

Type Description
string

initRegistry( ) : n/a

Description

Initialize the registry for the order item

Return value

Type Description
n/a n/a

isAnonymous( ) : bool

Description

Whether or not the current session is anonymous or not. Note that is is IF current session is anonymous, NOT if anonymous is allowed, for that see {@link _templateOrderItem::anonymousAllowed()}

Return value

Type Description
bool

isListingItem( ) : bool

Description

Optional, this is used as an easy way to identify items that are Listing parent items (i.e. classified and auction items).
This is the superclass, and returns false, items that directly represent listings need a copy of this function that returns true.

Return value

Type Description
bool

isRecurring( ) : bool

Description

Optional, if method not implemented in individual order item the method in this superclass will return false by default, so order items that are never parent items in a recurring order do not need to implement this method. Note that if there are no payment gateways that handle recurring billing, this will not matter much. Also if an item is recurring, it should not only return true for this method, but also return true for {@link iOrderItem::geoCart_initItem_forceOutsideCart(}}.

Return value

Type Description
bool return true if this order item is recurring, false otherwise.

Tags

Name Description
since Version 4.1.0

itemExists( int   $id, ) : bool

Description

Quick way to see if an item with a specified ID exists or not, without all the overhead of creating a new object and all that just to check to see if the item exists.

Arguments

Name Type Description Default
$id int

Return value

Type Description
bool

Tags

Name Description
since Version 4.0.9

loadTypes( string   $dirname = '', ) : n/a

Description

Loads order item types.

Arguments

Name Type Description Default
$dirname string

Usually leave this blank, it will load system and addon order item types on it's own

''

Return value

Type Description
n/a n/a

processRemove( ) : bool

Description

Overload this function if anything needs to be done at the time this order item is being removed from the system. Note that the static function remove() does all the normal back-end stuff like removing the registry and the order item from the DB, this function is primarily for any special case stuff, like removing a listing or deleting image files.

Return value

Type Description
bool true to finish removing the item, or false to force item to not be removed.

processRemoveData( ) : bool

Description

Overload this function if anything extra needs to be done at the time the order item's data is being removed. This should NOT affect anything "live", all that is happening here is the order item's data is being removed because it is getting old and needs to be cleared out to make room.

Return value

Type Description
bool true to finish removing the item's data, or false to force the item to stay put.

processStatusChange( string   $newStatus, bool   $sendEmailNotices = true, bool   $updateCategoryCount = false, ) : n/a

Description

Changes the status on an order item. Built-in statuses are active, pending, and pending_alter. Recommended to overwrite this function if the item needs to do anything at the time it is activated or deactivated. Even if this is overloaded, it is recommended to still call the parent function to do common stuff.

Arguments

Name Type Description Default
$newStatus string

either "active", "pending", or "pending_alter"

$sendEmailNotices bool

If set to false, no e-mail notifications will be sent, even if they are supposed to according to settings set in admin.

true
$updateCategoryCount bool

If set to true, the category count for this item will be updated. If false, it assumes whoever is calling this will do the updating all at once for efficiency.

false

Return value

Type Description
n/a n/a

remove( int   $id, bool   $remove_attached = true, ) : n/a

Description

Removes an order item as specified by ID, and also recursively removes everything attached to it. (this includes child orders items, etc).
If the order item no longer exists, but there are still "orphaned" child items attached to this order item, this function will kill those poor orphans that no longer have their parents. This is a very morbid method, really.

Arguments

Name Type Description Default
$id int
$remove_attached bool

if false, it will not remove stuff attached to this order.

true

Return value

Type Description
n/a n/a

removeData( int   $id, bool   $remove_attached = true, ) : n/a

Description

Works just like geoOrderItem::remove() except this will only affect order item data, not affect anything live like the listing itself, for example if a listing lasts more than a year the original order item may be removed for it.

Arguments

Name Type Description Default
$id int
$remove_attached bool

if false, it will not remove stuff attached to this order.

true

Return value

Type Description
n/a n/a

reorderTypes( int   $price_plan, int   $category = 0, ) : n/a

Description

Re-orders the order item types by the given price plan and category settings as set in plan Item. Note that this can be "expensive" where there are a lot of order item types, so use this sparingly.

Arguments

Name Type Description Default
$price_plan int
$category int 0

Return value

Type Description
n/a n/a

save( ) : n/a

Description

Alias of geoOrderItem::serialize()

Return value

Type Description
n/a n/a

serialize( ) : n/a

Description

Serializes the current order item (saves changes in the database, or creates new order item if the id is not set. If it is a new order, it will set the order item ID after it has been inserted into the database.
Also automatically serializes any objects attached to it that are not already serialized.

Return value

Type Description
n/a n/a

set( string   $item, mixed   $value, ) : n/a

Description

Sets the given item to the given value. If item is one of built-in items, it sets that instead of something from the registry.

Arguments

Name Type Description Default
$item string
$value mixed

Return value

Type Description
n/a n/a

setCategory( int   $val, ) : n/a

Description

Sets the category (set to 0 for no specific category)

Arguments

Name Type Description Default
$val int

Return value

Type Description
n/a n/a

setCost( double   $val, ) : n/a

Description

Set the cost for this item.

Arguments

Name Type Description Default
$val double

Return value

Type Description
n/a n/a

setCreated( int   $val, ) : n/a

Description

Sets the date this item was created.

Arguments

Name Type Description Default
$val int

Return value

Type Description
n/a n/a

setId( int   $val, ) : n/a

Description

Sets the id for this order item, only used internally.

Arguments

Name Type Description Default
$val int

Return value

Type Description
n/a n/a

setOrder( mixed   $val, ) : n/a

Description

Sets the order this item is attached to. Can set it to the order id, or by the order object.

Arguments

Name Type Description Default
$val mixed

Return value

Type Description
n/a n/a

setParent( mixed   $val, ) : n/a

Description

Sets the order this item is attached to. Can set it to the order id, or by the order object.

Arguments

Name Type Description Default
$val mixed

Return value

Type Description
n/a n/a

setPricePlan( int   $val, int   $userId = 0, ) : n/a

Description

Sets the price plan. This will also validate the price plan (if not setting to 0 to reset) to make sure the specified price plan exists. If it does not exist, it will attempt to find and set the price plan to the default price plan for the seller attached to the order that this order item is attached to.

Arguments

Name Type Description Default
$val int

The price plan ID.

$userId int

If set, will check to make sure the price plan is a valid one for the specified user. Otherwise will asume calling method is doing it's own checks.

0

Return value

Type Description
n/a n/a

Tags

Name Description
since The $userId var was added Version 4.1.0

setStatus( string   $status, ) : n/a

Description

Set the status of the order item.

Arguments

Name Type Description Default
$status string

Return value

Type Description
n/a n/a

setType( string   $val, ) : n/a

Description

Sets the type of orderitem this is

Arguments

Name Type Description Default
$val string

Return value

Type Description
n/a n/a

touch( ) : n/a

Description

Use when this object, or one of it's child objects, has been changed, so that when it is serialized, it will know there are changes that need to be serialized.
This also recursevly touches all "parent" objects that this one is attached to. Note that this is automatically called internally when any of the set functions are used.

Return value

Type Description
n/a n/a

unSerialize( int   $id = 0, ) : n/a

Description

Unserializes the object for the given ID and applies parameters to this object.

Arguments

Name Type Description Default
$id int 0

Return value

Type Description
n/a n/a

unregisterItemType( string   $itemType, ) : bool

Description

unregisters the specified order item type as a valid type for the remainder of the page load. Perfect place to call this from is order item call to geoOrderItem_loadTypes as that happens directly after all the different types have been loaded, so one type can be removed right away.

Arguments

Name Type Description Default
$itemType string

The item type to unregister.

Return value

Type Description
bool Returns true if removal of item type was successful, false otherwise.

Tags

Name Description
since Version 4.1.0

Properties

$_itemsExist, $_pendingChanges, $category, $cost, $created, $defaultProcessOrder, $id, $order, $orderItems, $orderTypes, $parent, $pricePlan, $processOrder, $registry, $status, $type,

array  private  static $_itemsExist = array()

Used to store ID's and whether they exist or not.


boolean  protected  $_pendingChanges =

Used internally to remember whether there has been changes to the order since it was last serialized. If there is not changes, when serialize is called, nothing will be done. This is set in geoOrderItem::touch()


int  protected  $category = 0

This is the category this item was created under, or 0 if no category.


float  protected  $cost =

Cost for this item.


int  protected  $created =

Date this item was added to order.

unix timestamp




int  protected  $defaultProcessOrder = 5

This should be set by each order item type. It is used when initially creating the plan order item to set the default process order for that plan item.


int  protected  $id =

ID for this item


\geoOrder  protected  $order =

Order this item is attached to.

object




array  private  static $orderItems =

Static array of all the order items that have been unserialized (or newly created)


array  private  static $orderTypes =

Associative array of order types, that follows this syntax: $name => array( 'class_name' => $order_type_class_name, 'parents' => array( $array_of_parent_order_item_types) //TODO: add it so that these are added in order of processOrder.
Where $name is the name, that would be used in the db and would be the file-name, and class name (value) is going to be $name.'OrderItem'.

\geoOrderItem  protected  $parent =

Parent order item, or null if this is main order item.

object




int  protected  $pricePlan =

This is the price plan this item is created under.


int  protected  $processOrder = 0

This will be set according to the process order set by the plan item.


array  protected  $registry =

Array of settings to handle all the "misc" stuff for this order item.


string  protected  $status =

Status of order item, built-in ones used by system: - active - pending - pending_admin
All rest are treated as pending.

string  protected  $type =

Type of order item, goes to one of the order item types.


Interfaces

iOrderItem

Properties

 
 
System  
 
 

Description

You cannot have abstract static functions, so instead need to have an interface to force the given static functions to be defined.

Methods

geoCart_initItem_forceOutsideCart, geoCart_initSteps, geoCart_initSteps_addOtherDetails, getParentTypes,

geoCart_initItem_forceOutsideCart( ) : boolean

Description

Whether or not a seperate cart can be initialized just for this order item or not.

Return value

Type Description
boolean True to force creating "parellel" cart just for this item, if another cart is already started, false otherwise.

geoCart_initSteps( bool   $allPossible = false, ) : n/a

Description

Required, even if it just returns an empty array.

Arguments

Name Type Description Default
$allPossible bool

If true, should initialize ALL steps that are possible considering the current "site-wide" settings.

false

Return value

Type Description
n/a n/a

geoCart_initSteps_addOtherDetails( ) : bool

Description

Used to determine whether or not to display the other details step. Should also check the children items of the item.

Return value

Type Description
bool true to add the other_details step, false otherwise.

getParentTypes( ) : array

Description

Used from different locations, this should return an array of the different order items that this order item is a child of. If this is a main order item type, it should return an empty array.

Return value

Type Description
array
Documentation was generated by phpDocumentor 2.2.0 .

Namespaces

  • global

    Packages

    • Default
      • ExampleAddon
        • addon_example_admin
          In charge of doing stuff on the admin side, this is optional.
        • addon_example_info
          Required class for addons, this is the Addon information class, used by the addon system to determine what the addon can do. Also contains info about the addon that can be viewed in the addon management page in the admin.
        • addon_example_pages
          Addon page class, used by the addon system to display pages on the client side.
        • addon_example_setup
          This class is not required. If it, and the function for a particular routine exist, then that function will be called IN ADDITION TO the automated routines of the addon framework.
        • addon_example_tags
          Expects one function for each tag. Function name should be the same as the tag name. Can also have a constructor if anything needs to be constructed.
        • addon_example_util
          This is where to put functions that the main part of the addon will use.
        • eWidgetOrderItem
          This order item is designed to allow users on your site to purchase an eWidget.
      • System
        • DataAccess
          This is the main Database access object.
        • Singleton
          Singleton method class
        • _templateOrderItem
          Developers: use this file as a template to create a new order item.
        • _templatePaymentGateway
          This is the "developer template" payment gateway handler, a developer could use this file as a starting point for creating a new payment gateway in the system.
        • geoAPI
          The main system class for receiving and handling remote API calls, this acts as a translation layer between the communication with the "outside" and each API call.
        • geoAddon
          This is the class that handles anything and everything to do with addons.
        • geoArrayTools
          Utility functions for manipulating arrays
        • geoBrowse
          Contains functions common to browsing listings
        • geoBrowsingFilter
          System for activating, storing, and deactivating browsing filters.
        • geoCJAX
          Class that wraps the CJAX_FRAMEWORK, used to get the CJAX class.
        • geoCache
          This is the main part of the Geo cache system, it does all the "low level" stuff like writing files and escaping cache data.
        • geoCacheModule
          Part of Geo Cache system, specifically tuned to work best with cacheing module data (which will be an array).
        • geoCachePage
          Cache system specifically tuned to work best with cacheing output of pages and modules
        • geoCacheSetting
          Part of Geo Cache system, specifically tuned to work best with cacheing site-wide key=value type settings.
        • geoCacheText
          Part of Geo Cache system, this part specifically tuned to work best with cacheing language specific messages.
        • geoCalendar
          Holds utility method(s) for manipulating stuff dealing with calendar selector.
        • geoCart
          This class is behind the cart, loading all the order items and such and displaying, and processing all the different pages.
        • geoCategory
          Utility class that holds various methods to do stuff with categories in the system.
        • geoCombineResources
          This class helps to combine CSS and JS files, minify them, and optionally compress them.
        • geoCron
          This is the cron job backend, it handles all the communication and security and all that.
        • geoCrypt
          Class to use for encrypting information that needs to be able to be retrieved later.
        • geoDate
          Holds utility method(s) for manipulating stuff dealing with dates.
        • geoEmail
          Class that sends out e-mails.
        • geoFields
          Class that holds settings information for fields to use.
        • geoFieldsField
          A mini object to hold data about a specific field.
        • geoFile
          As the name implies, this is used for file-based utility methods.
        • geoFilter
          A few utility methods, good for filtering stuff.
        • geoFormatString
          Used to display a message nice and pretty, we'll probably be getting rid of this class though so don't go crazy using it.
        • geoHTML
          Class to generate chunks of HTML that are very common, used the most in the admin panel.
        • geoImage
          This class is responsible for a lot of the image processing, along with other aspects like generating the image tag for thumbnails.
        • geoInvoice
          This is the invoice object representing an invoice in the system.
        • geoLeveledField
          Class for doing common things with leveled fields.
        • geoListing
          A listing object, basically a container object for particular listing.
        • geoListingDisplay
          This is basically a container that is responsible for helping to display {listing .
        • geoListingFeed
          Class that helps to render RSS or other types of feeds based on list of listings.
        • geoMaster
          This is dedicated class for getting the value of, and setting, the various "master switches" within the software. Since this is meant as an easy way to get the values of master switches, most of the methods are static.
        • geoNumber
          Utility functions relating to number conversion/manipulation/validation ect.
        • geoOrder
          The geoOrder object, an object representation of an order in the system.
        • geoOrderItem
          The class that all order items must extend.
        • geoPC
          Used for login credential validation, password hashing, etc. along with software licensing.
        • geoPagination
          Utility functions useful for generating pagination of a results page such as when browing ads or searching
        • geoPaymentGateway
          This class should be extended by each different payment gateway, this will have some default functions that each gateway will inherit, and also has a few final static methods used by the system to affect all order items.
        • geoPlanItem
          A container to hold settings for a particular order item type, according to price plan ID, and optionally category ID for category specific settings.
        • geoRecurringBilling
          The geoRecurringBilling object, an object representation of a recurring billing in the system.
        • geoRegion
          Stuff for regions and sub-regions.
        • geoRegistry
          Handy little object, can be used to set registry type settings.
        • geoSearchUtils
          Class for search utilities.
        • geoSellerBuyer
          Handles back-end for the seller/buyer payment gateways, to allow the buyer to more easily pay the seller for a won auction. This handles the underlying system, but the actual work is done by individual seller/buyer gateways, for instance the Paypal buy-now functionality.
        • geoSession
          Manages session storage and session cookies for user sessions.
        • geoString
          Utility functions relating to languages and string manipulation.
        • geoStringData
          This class is to store accented chars, to be used by {@link geoString::removeAccents()}, mainly to keep the String.class.php file un-cluttered.
        • geoTable
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableRow
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableRowset
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableSelect
          Class used to generate a select query, useful when multiple areas want to affect a single query, for instance when generating a search query and there are addons involved.
        • geoTables
          Used to hold database table names, used throughout the code.
        • geoTemplate
          Template object that extends the Smarty class (a 3rd party library) to enable using templates to display things.
        • geoTransaction
          This is the object used for a transaction in the order and invoice system.
        • geoUser
          An object representative of a certain user in the system.
        • geoUserRating
          Store, retrieve, and display inter-user ratings
        • geoUtil
          Misc utility functions
        • geoView
          As the name implies, this is used for creating the page view. It does take a little setup (like any class), the setup is normally done in the display_page method in geoSite, or display_page in geoAdmin if displaying a page in the admin.
        • iApiTransport
          Interface for API Transports, a transport must implement this interface for the system to use it.
        • iOrderItem
          You cannot have abstract static functions, so instead need to have an interface to force the given static functions to be defined.
        • metaDbTables
          Used so that old locations that use the old name geoTables will still work.