Geeklog

Geeklog Configuration

Configuration files

Previous versions of Geeklog used one huge file called config.php that held all the core configuration options. As of Geeklog 1.5.0, most of the configuration options have been moved to the database and can now be reached from the Configuration admin panel within Geeklog.

For technical reasons, some configuration options still have to be stored in files. There are two such configuration files now:

These files are updated when you install Geeklog and you will not normally have to edit them manually.

Configuration options

Geeklog's configuration options are grouped like this:

Site

Site: Site

Variable Default Value Description
site_url http://www.example.com Base URL for your site (no trailing slash)
site_admin_url http://www.example.com/admin Base URL of the admin area of your site (no trailing slash). You won't have to change this normally, but some hosting services use a predefined "admin" directory for other purposes. In this case, you can rename Geeklog's admin directory and adjust the URL accordingly to avoid conflicts.
site_name Geeklog Site Name of your site
site_slogan Another Nifty Geeklog Site Slogan for your site. This is added to the HTML title field.
microsummary_short GL: Prefix to use for a microsummary.
site_disabled_msg 'Geeklog Site is down. Please come back soon.' This contains the message to display when a Geeklog site is disabled. If the text begins with "http:" then visitors are redirected to that URL.
Note: The option actually disable the site can be found in the siteconfig.php file.
owner_name The name of the owner of the site. This is used in the copyright notice if set, else the site name is used.
copyrightyear (disabled) Set this to the year you want to appear in the copyright notice of your site's footer. If not set, Geeklog will use the current year.
url_rewrite false Enable (true) or disable (false) URL rewriting.
Also see the section on URL Rewriting below.
cdn_hosted false Enable (true) or disable (false) Google CDN-hosted source for jQuery and jQuery UI.
meta_tags disabled Enabled - The meta tags for stories and topics will be displayed. If none are found, then the default will be used. The default will also be used for any page that doesn't have meta tags.
Enabled (Default for Homepage only) - The same as Enabled except, the defaults are used only for the Homepage.
Disabled - Meta tags are not used.
meta_description 'Geeklog, the open source content management system designed with security in mind.' The default meta description for your site.
meta_keywords 'Geeklog, Blog, Content Management System, CMS, Open Source, Security' The default meta keywords for your site.

Site: Mail

Variable Default Value Description
site_mail admin@example.com E-mail address for all admin mail
noreply_mail noreply@example.com This is the sender's address of emails sent by the system when users register etc. This should be either the same as $_CONF['site_mail'] or a bouncing address to prevent spammers from getting your email address by registering on the site. If this is NOT the same as above, there will be a message in sent messages that replying to those emails is recommended.
backend mail Used to select how to send email. Can be one of 'smtp', 'sendmail', or 'mail'.
sendmail_path /usr/bin/sendmail If you chose 'sendmail' for the backend setting, this specifies the complete path to the sendmail binary.
sendmail_args '' (empty) If you chose 'sendmail' for the backend setting, this variable can be used to pass additional parameters to the sendmail binary.
host smtp.example.com If you chose 'smtp' for the backend setting, this is the SMTP server to use.
port 25 If you chose 'smtp' for the backend setting, this is the port number to talk to on the SMTP server.
auth 0 If you chose 'smtp' for the backend setting, set this to 1 if your SMTP server requires authorization, and 0 (or leave the field empty) if it doesn't.
username smtp-username If you chose 'smtp' for the backend setting, this is the name of your SMTP account.
password smtp-password If you chose 'smtp' for the backend setting, this is the password for your SMTP account.

Site: Syndication

Geeklog can export its headlines to a news feed in various formats (RSS, RDF, and Atom). This will let you share your news with other sites (Hint: Create a Portal block from Geeklog's Block menu to import news feeds from other sites).

Starting with Geeklog 1.3.9, feeds can be created and configured from Geeklog's Admin menu ("Content Syndication"). The following settings will only be used as the default settings for any new feeds that you create from the admin panel.

Variable Default Value Description
backend 1 Create a feed file for the stories in rdf_file (0=no, 1=yes)
rdf_file HTML path with "/backend/geeklog.rss" suffix File system path for the feed file. This file allows you to share your site's headlines with others
rdf_limit 10 Limit the number of stories to export to the news feed. If the value for this setting is a number, the feed will hold this many stories. If the number is followed by a lower-case 'h' (e.g. 24h) it denotes the number of hours from which to chose the stories.
rdf_storytext 0 If this value is 1, then the entire introtext of the stories will be included in the news feed. Any number greater than 1 limits the introtext to that many characters (e.g. a value of 80 would only include the first 80 characters from the introtext in the feed). If set to 0, the introtext is not included in the feed.
rdf_language en-gb Value for the feed's language tag. Depending on your site's language and operating system, this may differ from the language setting in the locale (see above).
Example: The PHP locale setting for German is 'de_DE' while the correct language setting for a German RSS feed would be 'de-DE' (note the dash instead of the underscore).
syndication_max_headlines 0 Upper limit for the max. number of headlines when importing a feed (into a portal block). The limit can also be set for each individual portal block in the block menu.
When set to 0, all headlines are imported.

Site: Paths

Variable Default Value Description
path_html /path/to/geeklog/public_html/ Path to your web tree directory for your site (trailing slash necessary). This directory holds all the web pages used by Geeklog.
path_log /path/to/geeklog/logs/ File system path for the log files
path_language /path/to/geeklog/language/ location of the Geeklog language files
backup_path /path/to/geeklog/backups/ location where mysqldump (see above) will store database backups
path_data /path/to/geeklog/data/ File system path for the data directory, used e.g. for the user batch add feature
path_images /path/to/geeklog/public_html/images/ Path where Geeklog expects to find its images, including user photos and images for stories.

Site: PEAR

Variable Default Value Description
have_pear false Whether you have PEAR installed on your server (= true) or not (= false). When set to false, Geeklog will use the PEAR packages installed in $_CONF['path_pear'] (see below)
path_pear /path/to/geeklog/system/pear/ When $_CONF['have_pear'] (see above) is set to false, this is the path where Geeklog expects to find the PEAR packages it requires (e.g. PEAR::Mail for sending emails).

Site: MySQL

As the name implies, these options are only relevant when your site is running on a MySQL database. They are ignored when using MS SQL.

Variable Default Value Description
allow_mysqldump 1 Enable or disable the backup functionality (1 = on, 0 = off).
_DB_mysqldump_path /usr/bin/mysqldump Complete path to the mysqldump utility (part of MySQL) for making backups of your Geeklog database.
mysqldump_options -Q Here you can include additional options for the mysqldump call that Geeklog uses to create a backup from your database.
mysqldump_filename_mask geeklog_db_backup_%Y_%m_%d_%H_%M_%S.sql Mask to use for the names of the backup files. See date formats below for details of the date and time in the file name.

Site: Search

Variable Default Value Description
search_style 'google' Sets the style of the results page. Can be either 'google' or 'table'
search_limits 10,15,25,30 The result limits a user can select. Each value must be separated with a comma.
num_search_results 30 The default number of results per page. Should be a value from 'search_limits' above.
search_show_limit true Shows (= true) or hides (= false) the page limits selection box.
search_show_sort true Shows (= true) or hides (= false) the 'Sort By' selection box. (When using the table style it will enable/disable column sorting)
search_show_num true Shows (= true) or hides (= false) the result number.
search_show_type true Shows (= true) or hides (= false) the plugin name the result came from.
search_separator > (Space before and after character) The character to display between result type sub groups.
search_def_keytype 'phrase' Default to one of these search methods:
  • 'all': results must contain all of the search terms.
  • 'any': results may contain any of the search terms.
  • 'phrase': search for the exact phrase as entered. (default)
search_def_sort 'Hits (desc)' The default sort order for the search results.

Stories and Trackback

Stories and Trackback: Story

Variable Default Value Description
maximagesperarticle 5 max. number of images you can have in a story
limitnews 10 Number of stories to limit the index page to, this same number will appear in the older stuff block
minnews 1 Minimum numbers of stories than can appear on a topic page
contributedbyline 1 Show author username to public, and enable search by username (0=no, 1=yes)
hideviewscount 0 Whether to show (= 0) or to hide (= 1) the number of views a story has had.
hideemailicon 0 When set to 1, this will disable the ability to send a story by email. It will also hide the email icon from stories and the "Email Article To a Friend" from the Story Options block.
hideprintericon 0 When set to 1, this will disable display of a story in a "printer friendly" format. It will also hide the printer icon from stories and the "View Printable Version" from the Story Options block.
allow_page_breaks 1 Allow usage of the [page_break] tag in stories (when set to 1), so that stories can spread over multiple pages.
page_break_comments last When the [page_break] tag is allowed in stories (see above), where should the story's comments be displayed: 'last' = on the story's last page only, 'first' = on the first page only, 'all' = on every page.
article_image_align right Which side of article the topic image should be shown (right or left)
show_topic_icon 1 Default setting for new stories and story submissions: Whether to show the topic icon (1) or not (0).
draft_flag 0 Default setting for new stories created by Story Admins: Whether the story's draft flag should be set (1) or not (0).
frontpage 0 Default setting for new stories and story submissions: Whether the story should appear on the site's frontpage (1) or only in its topic's page (0). Please note that for stories submitted to the archive topic, this setting will be ignored and the story will not appear on the frontpage.
hide_no_news_msg 0 When set to 1, hide the "No News To Display" message on the index page (e.g. when viewing a topic without any stories in it)
hide_main_page_navigation 0 When set to 1, this option will hide the "Google paging" navigation from index.php, i.e. from the site's frontpage and all topic pages. This may come in handy for more advanced layouts but will of course prevent people from easily reaching older articles.
onlyrootfeatures 0 This restricts the featuring of stories to root user(s). If you have several story admins who can create content that is not visible to other story admins, and such a content is featured, another admin might think its ok to feature his own content. To prevent that two admins unknowingly take features from each other away, only a user who can see all content (= root) should be able to feature a story.
aftersave_story 'list' Which page to go to after a story has been saved:
  • 'item': display the story
  • 'list': show admin's list of stories (default)
  • 'home': display the site's homepage
  • 'admin': go to the "Admin Home" page, i.e. Command & Control
Note: This option is ignored for story submissions. Editing a story submission will always send you back to the submission queue (i.e. "Admin Home" aka Command & Control).

Stories and Trackback: Trackback

Variable Default Value Description
trackback_enabled true Enable (true) or disable (true) trackback comments. This applies to both sending and receiving trackback comments.
trackback_code 0 Default value for new stories: Trackback enabled (0) or disabled (-1)
trackbackspeedlimit 300 Number of seconds between two trackbacks / pingbacks from the same IP address.
check_trackback_link 2 This option can be used to check the validity of a trackback. You can check if the URL in the trackback actually contains a link back to your site (otherwise, it's probably spam). You can also check if the trackback was sent from the proper IP address, i.e. the IP of the site in the trackback URL (again, if they don't match, it's probably spam). Note that you can add up the values below to do more than one check (but using option 1 and 2 doesn't make sense and will be treated as if you requested option 2).
Options are: 0 = don't perform any checks, 1 = check only for your site's main URL ($_CONF['site_url']), 2 = check for the exact URL of the entry (e.g. an article) on your site, 4 = check IP address of the sender of the trackback against the site referred to in the trackback URL.
Example: $_CONF['check_trackback_link'] = 6; // check for the exact URL (2) and proper IP address (4)
multiple_trackbacks 0 How to handle multiple trackbacks and pingbacks from the same source: 0 = keep only the first, reject any further trackbacks / pingbacks; 1 = overwrite, i.e. only keep the latest trackback / pingback; 2 = allow multiple trackbacks / pingbacks, i.e. list them all

Stories and Trackback: Pingback

Variable Default Value Description
pingback_enabled true Enable (true) or disable (true) pingback support. This applies to both sending and receiving pingbacks.
pingback_excerpt true Unlike Trackbacks, Pingback don't include an excerpt of the text from the site linking to us. When this option is enabled, Geeklog will try and create an excerpt by searching the backlink on the site that sent the Pingback, extract a piece of the text near the link, and use that as the excerpt for the Pingback.
pingback_self 0 Pingbacks are sent out automatically to all the URLs linked from a story - which includes stories on your own site that you may have linked in the article. This option lets you specify how these "self pingbacks" are to be handled: 0 = skip them, i.e. don't send pingbacks to stories on your own site; 1 = allow them, but obey the speed limit; 2 = allow them and ignore the speed limit.
If your article contains more than one link to other stories on your site, then option 1 is probably of limited use, as it would only pingback the first linked story and run into the speed limit for the others.
ping_enabled true Enable (true) or disable (true) the ability to ping weblog directory services like Technorati.

Theme

Theme: Theme

Variable Default Value Description
theme professional Default theme to use on the site
doctype HTML 4.01 Strict Document Type Declaration (aka DOCTYPE aka DTD) to use for all the themes on your site, assuming they use the {doctype} variable instead of a hard-coded DOCTYPE in their header.thtml.
menu_elements array('contribute', 'search', 'stats', 'directory', 'plugins') Specifies which entries are displayed in the site's menu bar (if your theme uses the {menu_elements} variable to display the menu bar). Can be any combination of 'home', 'contribute', 'search', 'stats', 'directory', 'prefs', 'plugins', and 'custom' where 'plugins' is the same as the {plg_menu_elements} variable, i.e. a list of the menu entries provided by plugins, and 'custom' displays the entries returned by a custom function CUSTOM_menuEntries (see lib-custom.php for details).
path_themes /path/to/geeklog/public_html/layout/ Directory where all themes reside

Theme: Advanced Settings

Variable Default Value Description
show_right_blocks false If set to true, the right-side column of blocks will be displayed on all pages (instead of only on the index page).
showfirstasfeatured 0 When set to 1, this will render the first story on any page using the templates for a featured story, even if that story is not featured. This will even be applied to the first story on page 2 of a topic page, for example.

Blocks

Blocks: Admin Block

Variable Default Value Description
sort_admin false If set to true will sort the entries in the Admin's block and the icons on the Submissions page (moderation.php) alphabetically.
link_documentation 1 Add a link to Geeklog's documentation to the Admin block. Set this to 0 if you don't want that link to show up.
link_versionchecker 1 Add a link "GL Version Test" to the Admin block so that you can easily check if your Geeklog version is up to date. Set this to 0 if you don't want that link to show up.
Note: The link is only displayed to members of the Root group anyway.

Blocks: Topics Block

Variable Default Value Description
sortmethod alpha alpha = Sort topics in topic list alphabetically
sortnum = Sort topics in topic list by the given sort number
showstorycount 1 Show the number of stories in a topic in the Sections block (0=no, 1=yes)
showsubmissioncount 1 Show the number of story submissions for a topic in the Sections block (0=no, 1=yes)
hide_home_link 0 Hide the "Home" link from the Sections block (0=no, 1=yes)

Blocks: Who's Online Block

Variable Default Value Description
whosonline_threshold 300 How long, in seconds, users can be idle before removing them from the whosonline block
whosonline_anonymous 0 If enabled (i.e. set to 1), anonymous users will only see the number of registered users currently online in the Who's Online block but not their names. Only logged-in users will see the names of other users that are currently online.
whosonline_photo 0 If enabled (i.e. set to 1), and a photo exists for the user, a thumbnail of that photo will be displayed. Else, a photo icon will be displayed.

Blocks: What's New Block

Variable Default Value Description
newstoriesinterval 86400 Stories are "new" if they are this many seconds old.
newcommentsinterval 172800 Comments are "new" if they are this many seconds old.
newtrackbackinterval 172800 Trackback comments are "new" if they are this many seconds old.
hidenewstories 0 Set to 1 to hide new stories from the What's New block.
hidenewcomments 0 Set to 1 to hide new comments from the What's New block.
hidenewtrackbacks 0 Set to 1 to hide new trackback comments from the What's New block.
hidenewplugins 0 Set to 1 to hide new entries by plugins from the What's New block.
title_trim_length 20 Max. length of the title of items listed in the What's New block.

Users and Submissions

Users and Submissions: Users

Variable Default Value Description
disable_new_user_registration false When set to true completely disables all options to sign up as a new user.
allow_user_themes Can be 1 or 0 If set to 1, users can set their own theme that the site uses
allow_user_language Can be 1 or 0 If set to 1, users can select the language for the site navigation
allow_user_photo Can be 1 or 0 If set to 1, users can upload a photo to their profile
allow_username_change 0 If set to 1, users will be allowed to change their username (login name). Stories and comments posted under the old username will automatically show the new username.
allow_account_delete 0 If set to 1, users will be allowed to delete their accounts. Stories and comments posted under that account will be kept and show up as being posted by "Anonymous".
hide_author_exclusion Can be 1 or 0 If set to 1, the option to to exclude certain authors from being seen is hidden from the user's preferences.
show_fullname 0 Whether to display a user's full name (= 1) or only their username (= 0). For users that haven't entered their full name, Geeklog will always display the username.
show_servicename true If you allow users to log in with accounts on remote services (like LDAP or LiveJournal), this option will at the service's name to the username to avoid confusion with local users of the same name. Set to false to disable.
custom_registration false When set to true, Geeklog will let you use your own signup form for new user registrations. Please see the file lib-custom.php that ships with Geeklog for an example.
standard true Whether to allow normal logins into the site, i.e. with a user account that only exists in your site's database.
openid false Whether to allow logins using OpenID. This will display a special OpenID login below the normal login field.
Note: Currently only OpenID 1.1 is supported.
3rdparty false Allow (when set to true) users who already have an account with some other service to log into your Geeklog site with the login for that service. Currently supported: LDAP and LiveJournal.
Please note that to enable login for a specific service, you need an authorization class in system/classes/authentication. If you only want to allow LDAP but not LiveJournal users (or vice versa), simply remove the class file for the unwanted service(s).
See Remote Authentication in Geeklog for more information.
oauth false Whether to allow logins using OAuth. This will display a special OAuth login below the normal login field.
Note: Currently only OAuth 1.0 is support. Current login methods supported: Facebook, Twitter and LinkedIn.
Please note that to enable login for a specific method, you need an authorization class in system/classes/oauth. If you only want to allow Facebook but not Twitter users (or vice versa), simply remove the class file for the unwanted service(s). You must also update the class file(s) with the application key ($consumer_key) and application secret ($consumer_secret) values. The PHP extenstion OpenSSL is required to be loaded.
See our Wiki OAuth page for more information.
facebook_login false Allow (when set to true) users who already have an account with Facebook to log into Geeklog with said account using OAuth. You must set the Facebook application ID and secret.
facebook_consumer_key '' Required to use Facebook OAuth login method. Visit this Facebook Developers page to create an Applicaiton to recieve your key and secret.
See our Wiki OAuth page for more information.
facebook_consumer_secret '' Required to use Facebook OAuth login method. Visit this Facebook Developers page to create an Applicaiton to recieve your key and secret.
See our Wiki OAuth page for more information.
linkedin_login false Allow (when set to true) users who already have an account with LinkedIn to log into Geeklog with said account using OAuth. You must set the LinkedIn API and secret key.
linkedin_consumer_key '' Required to use LinkedIn OAuth login method. Visit this LinkedIn Developers page to create an Applicaiton to recieve your API and secret key.
See our Wiki OAuth page for more information.
linkedin_consumer_secret '' Required to use LinkedIn OAuth login method. Visit this LinkedIn Developers page to create an Applicaiton to recieve your API and secret key.
See our Wiki OAuth page for more information.
twitter_login false Allow (when set to true) users who already have an account with Twitter to log into Geeklog with said account using OAuth. You must set the Twitter consumer key and secret.
twitter_consumer_key '' Required to use Twitter OAuth login method. Visit this Twitter Application page to create an Applicaiton to recieve your consumer key and secret.
See our Wiki OAuth page for more information.
twitter_consumer_secret '' Required to use Twitter OAuth login method. Visit this Twitter Application page to create an Applicaiton to recieve your consumer key and secret.
See our Wiki OAuth page for more information.
aftersave_user 'item' Which page to go to after a user has been saved:
  • 'item': display the user's profile
  • 'list': show admin's list of users (default)
  • 'home': display the site's homepage
  • 'admin': go to the "Admin Home" page, i.e. Command & Control

Users and Submissions: Spam-X

Variable Default Value Description
spamx 128 Tells Geeklog's Spam-X plugin what to do when a spam post has been detected. The value is the sum of all values that uniquely identify the Spam-X modules that should be executed. E.g. the "delete" action module uses 128, the "email admin" module uses 8, so if both modules should be executed, this option should be set to 128 + 8 = 136.

Users and Submissions: Login Settings

Variable Default Value Description
lastlogin true Whether to keep track of when a user last logged in (= true) or not (= false).
loginrequired 0 Login is required to access any part of the site. When set to 1, this overrides the following settings. When you only want to block access to certain parts of the site, set this to 0 and select from the following settings.
submitloginrequired 0 When set to 1, only registered users can submit stories and items handled by plugins, e.g. links and events
commentsloginrequired 0 When set to 1, only registered users can submit comments
statsloginrequired 0 When set to 1, only registered users can access the site stats
searchloginrequired 0 When set to 1, only registered users can use the advanced search. When set to 2, the simple search is blocked for anonymous users, too.
profileloginrequired 0 When set to 1, only registered users can view another user's profile
emailuserloginrequired 0 When set to 1, only registered users can use the email submission form to send an email to another user
emailstoryloginrequired 0 When set to 1, only registered users can email stories
directoryloginrequired 0 When set to 1, only registered users can access the list of past articles
passwordspeedlimit 300 Minimum delay between two requests for a new password, in seconds.
login_attempts 3 Max. number of login attempts before the speedlimit (see below) kicks in and further logins are blocked for the given amount of time.
login_speedlimit 300 How many seconds have to pass before another login attempt can be made after $_CONF['login_attempts'] (see above) login attempts have failed.

Users and Submissions: User Submission

Variable Default Value Description
usersubmission 0 Enable (1) or disable (0) the user submission queue (i.e. new users must be approved before they receive their password)
allow_domains '' When the user submission queue is enabled this can contain a comma-separated list of domain names from which user submissions will not be queued (but approved automatically). Regular expressions are also allowed and interpreted.
Example: 'mycompany.com,myothercompany.com'
disallow_domains '' This is the opposite of $_CONF['allow_domains'] (see above): A list of domain names that are not allowed in email addresses of new users. Note that this list is always used, even when the user submission queue has been switched off. Again, regular expression can be used.
Example disallow email addresses with a certain domain name and from any ".edu" domain: 'somebaddomain.com,\.edu$'

Users and Submissions: Submission Settings

Variable Default Value Description
storysubmission 1 Enable (1) or disable (0) the story submission queue
listdraftstories 0 When set to 1, this will display an additional block on the submissions page (moderation.php) that lists all the stories that have the 'draft' flag set.
postmode plaintext Sets the default submission mode to 'html' or 'plaintext'
speedlimit 45 Minimum delay between submissions in seconds. This helps prevent Denial of Service (DOS) attacks
skip_preview 0 If 1, allows submission of stories and comments without previewing (i.e. the submission form will always have a Preview and a Submit button).
advanced_editor false Enable (if set to true) a WYSIWYG editor for story and comment submissions and static pages. Geeklog ships with FCKeditor.
wikitext_editor false Allow using wiki syntax in stories. This adds a third option, "Wiki-style format", to the Post Mode dropdown in the story editor (implemented using the PEAR::Text_Wiki package).

Users and Submissions: Comments

Variable Default Value Description
commentspeedlimit 45 Number of seconds between posting a comment for the user
comment_limit 100 Most number of comments to show at any one time
comment_mode nested How to display comments (threaded, nested, flat or nocomments)
comment_code 0 Default value for new stories: Comments enabled (0) or disabled (-1)
comment_edit 0 Whether to allow users and admins (i.e. those with comment.edit permission) to edit comments.
commentsubmission 0 Enable (1) or disable (0) comment submission queue.
comment_edittime 1800 How long (in seconds) a comment is editable for the user who submitted it. Requires that comments are editable (see above). Anonymous users (those that did not register an account) can never edit their comments while admins can always edit comments.
article_comment_close_enabled 0 Whether or not stories should be closed for comments after a certain amount of days (see next option). This is only the default setting for new stories and can be changed separately for each story.
article_comment_close_days 30 Number of days after which a story is to be automatically closed for comments, i.e. no new comments can be posted after that many days.
Note that this is only the default value to which the "Disable Comments" option is set when creating a new story. It will not take effect unless it has also been enabled for the story.
comment_close_rec_stories 0 Number of most recent stories for which comment posting is allowed. Posting a new story will automatically close comments for the oldest of these stories. Set to 0 to disable this option.
allow_reply_notifications 0 Allow (1) or disallow (0) subscribing to comment notifications. Registered users can get an email notifying them of direct replies to comments they left.

Images

Images: Image Library

Variable Default Value Description
image_lib None Set this to either 'imagemagick', 'netpbm', or 'gdlib' if images should be resized during upload. Leave as 'None' if you don't want images to be resized or if you don't have those packages available.
path_to_mogrify (disabled) If you chose 'imagemagick' for $_CONF['image_lib'] above, then this should hold the complete path to the mogrify executable (from the ImageMagick package), e.g. '/usr/bin/mogrify' (ImageMagick 5.4.9 or newer recommended).
path_to_netpbm (disabled) If you chose 'netpbm' for $_CONF['image_lib'] above, then this should hold the complete path to the directory where the binaries from the Netpbm package are kept, e.g. '/usr/bin/netpbm/'. Note that the path must end in a slash.
Precompiled binaries for various platforms can be downloaded from the Netpbm homepage.

Images: Upload

Variable Default Value Description
keep_unscaled_image 0 Set this to 1 if you want Geeklog to keep the original, unscaled images after upload. The smaller image will then be used as a thumbnail and will link to the original image. Note that this may use a lot of disk space (depending on the size of your images).
allow_user_scaling 1 When unscaled images are kept (see above), this option lets the user chose between using the scaled or unscaled image in the story, i.e. enables the [unscaledX] image tag (in addition to the [imageX] tag).
jpeg_quality (disabled) Control the image quality when resizing JPEGs. All the image libraries supported by Geeklog are based on the IJG JPEG library which uses an arbitrary range of 0-100 to specify the "quality" (note that this is not a percent value). The default, when not set, is 75 which provides good quality in most cases. In some cases, higher values may provide better results.
Rules of thumb: Values above 90 usually don't improve the image quality any more but only produce larger files. Values below 50 will result in poor image quality. Values of 25 and below will produce distorted images.
debug_image_upload false When set to true, this option enables debugging output to be written into Geeklog's error.log file during the upload of an image. This is useful to track down problems with the image upload and resizing.

Images: Images in Articles

Variable Default Value Description
max_image_width 160 Max. width of an image in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_image_height 120 Max. height of an image in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_image_size 1048576 (equals 1 MB) Max. size of an image in bytes. If it exceeds this, it is is rejected (even if you're using a graphics package to resize images).

Images: Topic Icons

Variable Default Value Description
max_topicicon_width 48 Max. width of a topic icon in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_topicicon_height 48 Max. height of a topic icon in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_topicicon_size 65536 (equals 64 KB) Max. size of a topic icon in bytes. If it exceeds this, it is rejected (even if you're using a graphics package to resize images).

Images: Photos

Variable Default Value Description
max_photo_width 128 Max. width of a user photo in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_photo_height 128 Max. height of a user photo in pixels. If it exceeds this, it is either rejected or resized (depending on the setting of $_CONF['image_lib'] above).
max_photo_size 65536 (equals 64 KB) Max. size of a user photo in bytes. If it exceeds this, it is rejected (even if you're using a graphics package to resize images).
force_photo_width (disabled) This option, when enabled, will only apply when displaying a user photo. The <img> tag for the user photo will be emitted with a max. width, as specified by this option. This means that the actual photo can still be larger, but will only be displayed smaller. This is useful for cases where you don't want oddly shaped user photos to break your page's layout (e.g. in a forum).
default_photo (disabled) When enabled, this option should point to an image (full URL required!) that should be displayed for users without a user photo. When this option is not set and a user does not have a user photo (or an avatar) then Geeklog will simply not display anything.

Images: Gravatar

Variable Default Value Description
use_gravatar false If enabled (set to true), a user's avatar image will be requested from gravatar.com if the user didn't upload a user photo (i.e. an uploaded photo always takes precedence).
Please note that this option may slow down your site on pages that display a lot of userphotos for different users (e.g. forum threads).
gravatar_rating (disabled) Avatars submitted to gravatar.com are rated with the rating system used for movies (in the U.S.), i.e. the letters G, PG, R, or X. This option will let you chose the maximum allowed rating for an avatar. For example, a max. rating of R will make sure that no X-rated avatars will be displayed on your site (only G, PG, and R).

Languages and Locale

Languages and Locale: Language

Variable Default Value Description
language english Name of your language file. Additional language files may be available for download at http://www.geeklog.net. If you translate a language file, please send it to us. Also see Localization below.
language_files (disabled) For multi-lingual setups only: A list mapping language shortcuts ('en', 'de', etc.) to the Geeklog language files to use.
languages (disabled) For multi-lingual setups only: A list mapping language shortcuts ('en', 'de', etc.) to the language's native name ("English", "Deutsch", etc.).

Also see Multi-Language Support in the Geeklog Wiki.

Languages and Locale: Locale

Variable Default Value Description
locale en_GB Locale for the system. This defines both the language and the country that PHP will use when deciding how to display localized information such as dates (e.g. for the names of months).
date %A, %B %d %Y @ %I:%M %p %Z Date format used for most of the site, including story displays. See date formats below.
daytime %m/%d %I:%M%p Date format used when a shorter date is needed. See date formats below.
shortdate %x Date format this is the shortest date. See date formats below.
dateonly %d-%b Short date format (day and month only), to be used e.g. in the Upcoming Events and Older Stories blocks. See date formats below.
timeonly %I:%M %p %Z Format string for the time only, to be used e.g. on the Event Details page. See date formats below.
week_start Sun First day of the week in the calendar. Can be either 'Sun' (Sunday) or 'Mon' (Monday).
hour_mode 12 Which format to use when submitting or editing an object with a time setting (e.g. the publish time of a story). Can be 12 (for the 12 hour am/pm format) or 24 (for the 24 hour format).
thousand_separator , Character to use between every group of thousands.
decimal_separator . Character to use before decimals.
decimal_count 2 How many decimal places to display.
timezone (disabled) If your server is located in a different timezone, use this option to set your local (i.e. your own) timezone, so that the time and date on the site match your own.
This option is known as the "timezone hack" and may not work on some servers.

Miscellaneous

Miscellaneous: Cookies

These variables define the names of all of Geeklog's cookies. They can easily be changed in case there's a name collision with the cookies used by some other software package that you may use on your site.

Variable Default Value Description
cookie_session gl_session Name of the cookie that stores the session ID.
cookie_name geeklog Name of the permanent cookie.
cookie_password password Name of the password cookie.
cookie_theme theme Name of the theme cookie.
cookie_language language Name of the language cookie.
cookie_tzid timezone Name of the timezone cookie.
cookie_anon_name anon_name Name of the cookie to store the username of anonymous users.
cookie_ip 0 Session ID to contain IP address of user as well as random number. This is more secure but will more than likely require dialed up users to login each and every time. (0=no, 1=yes)
default_perm_cookie_timeout 28800 Permanent cookie timeout in seconds (28800 = 8 hours).
session_cookie_timeout 7200 Session cookie timeout in seconds (7200 = 2 hours).
cookie_path / Cookie path (see the PHP manual for details).
cookiedomain (empty) The domain that the cookie is available. Geeklog will attempt to guess the correct value for this setting (based on the 'site_url' variable). See the PHP manual for details.
cookiesecure 0 Only set to 1 if your site uses HTTPS (see the PHP manual for details).

Miscellaneous: Miscellaneous

Variable Default Value Description
notification array() Send an email notification to $_CONF['site_email'] when a new story, comment, trackback or pingback has been submitted or a new user has registered with the site. The array() can hold any combination of the strings 'story', 'comment', 'trackback', 'pingback', and 'user' (separated by commas), depending on which notification(s) you want.
Example: array('story','user'); would send notifications when a new story has been submitted or a new user has registered. No notifications would be sent, for example, for new comments.
cron_schedule_interval 0 Geeklog can emulate a cronjob, i.e. trigger a certain action at a given time. The code to be executed can be provided by a plugin or through the CUSTOM_runScheduledTask function in your lib-custom.php. The value given is in seconds and specifies the interval in which the code should be executed (e.g. 86400 for daily activation).
Please note that to trigger this action, you will need to have someone visit your site at around the specified time. On a site with few visitors, the code may only be executed with considerable delay.
Set to 0 to disable.
disable_autolinks 0 If set to 1, disables the autotags. I.e. the special tags in square brackets (e.g. [story:]) will not be interpreted any more.
clickable_links true Whether or not URLs in plain-text posting should automatically be turned into clickable links.
disable_compressed_output false If enabled and supported by both the browser and the webserver, HTML output will be compressed before sending it to the browser. This will typically result in much smaller amounts of data to be sent (usually between 20% and 25%, compared to the uncompressed output). It may, however, result in slightly more load on the webserver.
For now, this feature should be considered experimental and hasn't been implemented for all HTML output yet.
frame_options DENY Protection against Clickjacking: This option indicates that the site's content should not be displayed in a frame. This only works, however, when the visitor's browser respects the X-FRAME-OPTIONS HTTP header. Options are to disallow all framing (Strict), only allow framing from within the same site (Same Origin), or to allow all framing (disabled). We strongly suggest not to disable this option.

Miscellaneous: Debug

Variable Default Value Description
rootdebug false When a PHP error occurs, Geeklog's error handler will only display the actual error message to members of the Root group (to prevent leakage of possibly sensitive information). When set to true, this information will be displayed to all users. Use only for debugging purposes!
Tip: If an error prevents you from logging into your site to enable that option, you can also enable it in your siteconfig.php file.

Miscellaneous: Daily Digest

Variable Default Value Description
emailstories 0 Let users get stories e-mailed to them (0=no, 1=yes), aka Daily Digest. Please note that this requires cron and the use of PHP as a shell script.
emailstorieslength 1 When emailstories (above) is enabled, send only the title and the link to the new stories (0), or send the entire introtext (1) or send the first n characters from the introtext (where n = any other number)
emailstoriesperdefault 0 When set to 1, new users will be subscribed to the daily digest automatically when they register with the site.

Miscellaneous: HTML Filtering

Variable Default Value Description
user_html <p>, <b>, <i>, <a>, <em>, <br>, <tt>, <hr>, <ol>, <ul>, <li>, <code>, <pre> HTML tags and attributes that normal users are allowed to use in story submissions and comments.
admin_html additional HTML tags, e.g. for tables HTML tags and attributes that admin users are allowed to use (in addition to those from user_html). Redefining a tag with additional attributes will overwrite the definition from user_html.
advanced_html additional HTML tags for use with the Advanced Editor, e.g. for images Additional HTML tags and attributes that users are allowed to use when the Advanced Editor is enabled.
skip_html_filter_for_root 0 When set to 1, this will allow members of the Root group to use all HTML in their posts. Use at your own risk!
allowed_protocols array ('http', 'https', 'ftp'); Defines which protocols are allowed in links (i.e. HTML <a> tags).

Miscellaneous: Censoring

Variable Default Value Description
censormode 1 Censor submissions and comments (0 = Disabled, 1 = Enabled, exact matches, 2 = Enabled, match start of word, 3 = Enabled, match fragment)
censorreplace *censored* Text to replace a censored word with
censorlist array(a list of "bad" words goes here ...) An array of censored words

Miscellaneous: IP Lookup

Variable Default Value Description
ip_lookup not set The IP addresses of comment posters are logged and displayed for admin users. When this variable is set to point to a service that can do IP address lookups, it's possible to lookup the owner of an IP address by clicking on it, making it easier to report abuse to ISPs, etc.
$_CONF['ip_lookup'] should hold the complete URL to the lookup service, with a '*' marking the place where the IP address should go. It's also possible to use Tom Willet's NetTools package, in which case the correct setting would be $_CONF['ip_lookup'] = $_CONF['site_url'] . '/nettools/whois.php?domain=*';

Miscellaneous: Webservices

Variable Default Value Description
disable_webservices false Set this to true to disable the webservices.
restrict_webservices false Set this to true to restrict webservices usage to users with the webservices.atompub permission (e.g. those in the predefined "Webservices Users" group).
atom_max_stories 10 Max. number of stories returned when an Atom feed is requested through the webservices API.

Also see Using the Webservices in the Geeklog Wiki.

db-config.php

As the name implies, the file db-config.php contains the database configuration. This information is put there during the initial install and you should not normally have to edit this file.

Variable Default Value Description
_DB_host localhost Database Server (to be entered in the form: hostname:port:unixsocket). In most cases you won't need to change the default value.
_DB_name geeklog Database Name
_DB_user root Database User Account
_DB_pass null Database User Password
_DB_table_prefix gl_ Prefix to put in front of all of Geeklog's table names (to avoid name collisions with tables used by other applications)
_DB_dbms mysql This option tells Geeklog which type of database it's running on. Can be either 'mysql' (for MySQL) or 'mssql' (for Microsoft SQL Server).

siteconfig.php

The siteconfig.php file holds configuration data that can not be stored in the database. Again, most of this information is put there during the installation and you should not normally have to edit this file.

Variable Default Value Description
path /path/to/geeklog/ Base file system path for your site (trailing slash necessary)
path_system /path/to/geeklog/system/ Path to your system directory for your site (trailing slash necessary). This directory holds the code libraries used throughout Geeklog
site_enabled true A Geeklog site can be disabled quickly (e.g. for maintenance) by setting this to 'false'.
Also see the site_disabled_msg configuration option.
default_charset iso-8859-1 Character encoding used by Geeklog when serving HTML pages or sending email. Only used if the language file did not already set another character encoding.
For multi-language setups, using 'utf-8' as the default character set is recommended.
rootdebug (disabled) Same as the 'rootdebug' option in the Configuration. However, sometimes an error may occur that prevents you from logging into your site and enabling the 'rootdebug' option. In such a case, you can uncomment this line and enable the option here.
In addition to 'true' and 'false', you can also set this option to 'force' (only in siteconfig.php). This will enable displaying of sensitive information like passwords and cookies.
In any case, the same strong warning as above applies here, too: Do not leave this option enabled on a "live" site!

URL Rewriting

Geeklog includes a simple but useful URL rewriting feature which can help make your site more crawler friendly (i.e. the URLs of your site are more likely to be picked up by the search engine's indexing bots). This feature is supported for URLs to stories, static pages, the article directory, and links.

URL rewriting means that your URLs will look like this

http://www.geeklog.net/article.php/20021022234959146

instead of like this

http://www.geeklog.net/article.php?story=20021022234959146

While some search engines will pick up the second form, Google seems to prefer the first format and often ignores the second format.

Note: This feature may not work with all web servers. It is known to work with Apache (all versions) and known not to work with IIS (at least some versions). Please try it out before you go public with your site.

Localization

Localizing Geeklog is fairly easy. All strings are contained in a language file. The default file that ships with the tarball is english.php. People interested in translating Geeklog to other languages are encouraged to join the geeklog-translations mailing list. All important information concerning translating Geeklog will be posted there.

Locale and Date Formats

You can set the locale and date format in the configuration. To set the locale, set the variable to the proper string or if you leave it blank it will pull the default locale from the operating system. The date formats are handled by your locale. Isn't that smart? Locale names are OS dependent. On most UNIX hosts, you can find locale codes in the /usr/share/locale/locale.alias file and on some systems the command locale -a will display all available locales on a system. If a locale doesn't exist you can create it using the localedef command.

More info on locale: http://www.opengroup.org/onlinepubs/7908799/xbd/locale.html
More info on localdef: http://www.opengroup.org/onlinepubs/7908799/xcu/localedef.html

Date Format Syntax