All of Geeklog's php files are pure php. PHP allows you to use php as a scripting language imbedded in html files but this is not how Geeklog does it. All of Geeklog's php files must have <?php as the first five characters and end with ?>. Failure to structure your Geeklog files this way will cause session and header errors. Geeklog attempts as much as possible to have only php code in the php files. Two of the conventions used in Geeklog to accomplish this are the use of templates and language files.
Time will be well spent by the Geeklog plugin or block developer to become familiar with several Geeklog libraries. The following section outlines the more important or frequently used libraries, functions and standards.
$display = COM_siteHeader(); $display .= COM_startBlock("Title of Your Block"); $display .= "Some words"; $display .= somefunction(); $display .= COM_endBlock; $display .= COM_siteFooter(true); echo $display;
A summary of commonly used Geeklog functions are described below but reference the attached lib-common.php documentation for further examples.
Plugin developers need to define their tables in the plugin config.php file. You have the ability to use the $_TABLES array or use your own plugin specific array to maintain the table definitions. It's recommend that your arrays use a name such as _XX_TABLES, where XX are two letters to describe your plugin. Once the plugin is installed and enabled, the tables defined in the config.php for the plugin are automatically known as globals.
At the top of lib-common.php is an include of lib-custom.php. This is where you place all your block functions. They are then included when the site index.php is called.
There are a few commonly used globals within Geeklog that you will want to use and reference. The following table outlines the more frequently used ones and its recommended that these be used instead of hard coding paths and table names in your links or project code.
Variable | Description |
$_CONF['path_html'] | Fully qualified path to your sites public_htmk path |
$_CONF['site_url'] | Full URL to your sites public_html directory |
$_CONF['site_admin_url'] | Full URL to your sites admin directory |
$_USER['uid'] | Current user ID. A uid of 1 is an anonymous user |
$_TABLES['tablename'] | A array of geeklog tables with the site prefix defined. |
The following is a list of commonly used Geeklog functions that as developers we use and recommend you become more familiar with and use in your development projects. You will find example usage of these functions throughout the Geeklog code.
Function Name |
Description |
COM_siteHeader |
Display the main site header and optionally if 'none' is passed do not display the left blocks |
COM_siteFooter |
Display the main site footer and optionally if 'true' is passed display the right blocks |
COM_startBlock |
Formats the block title using the selected theme - pass the title, helpfile if any and optional block theme to apply if you do not want to use default |
COM_endBlock |
Formats the block footer using the selected theme or the optional block theme if you do not want to use default |
COM_errorLOG | Use to format an error message or use for debugging - view output in <geeklog_dir>/logs/error.log |
DB_query |
Execute a formatted SQL query and return the record set to an array of records (which is also an array) |
DB_fetchArray |
Retrieve a record as an array from the returned record set - which DB_query returned. |
DB_numROWS |
Returns the number of records retrieved by the DB_query result |
DB_getItem | Retrieve one record as an array. Pass a formatted SQL stmt with WHERE clause to retrieve one record |
COM_checkHTML | Use to strip out $, <, > , [code] and replace with the HTML codes |
COM_checkWords | Use to check passed text for any HTML tags that are not allowed as per the site config.php setting |
SEC_inGroup | Used to check if user has passed group rights. Example: SEC_inGroup('Root') - returns true if user is |
SEC_hasRights | Used to check if user has access right (feature). Example: SEC_hasRights('myplugin.edit') |