ConfigFile14

From GeeklogWiki
Revision as of 00:31, 31 October 2009 by LWC (talk | contribs) (Fixed link)

Jump to: navigation, search

GeekLog Configuration File

Setting up config.php

The Geeklog Configuration file (along with the languages file) is the place to make changes to system-wide settings such as the name of the site, user settings, and more.

Tip: Make changes to a copy of your file so you can always revert back to a configuration file that you know works.

Tip: Until you are familiar with what is going on, make a single change then upload it to see what happened. Once you get the hang of it you can make more substantial edits at a time.

Most of Geeklog's "static" settings (i.e. those that you aren't going to change often) are set in a text file called config.php. It is necessary to edit this file to get your system running as well as configuring it to your preferences. This file contains a set of variables as defined below:

<a name="database">Database Settings</a>

<tbody> </tbody>
Variable Default Value Description
_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).
_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_mysqldump_path /usr/bin/mysqldump Complete path to the <a href="http://www.mysql.com/doc/en/mysqldump.html">mysqldump</a>
       utility (part of MySQL) for making backups of your Geeklog database.
(only used when running on a MySQL database)
<a name="desc_allow_mysqldump">allow_mysqldump</a> 1 Enable or disable the backup functionality (1 = on, 0 =
       off).
(only used when running on a MySQL database)
<a name="desc_mysqldump_options">mysqldump_options</a> -Q Here you can include additional options for the <a href="http://www.mysql.com/doc/en/mysqldump.html">mysqldump</a>
       call that Geeklog uses to create a backup from your database.
(only used when running on a MySQL database)

<a name="server">Server Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_path">path</a> /path/to/geeklog/ Base file system path for your site (trailing slash necessary)
<a name="desc_path_system">path_system</a> /path/to/geeklog/system/ Path to your system directory for your site (trailing
       slash necessary). This directory holds the code libraries used
throughout Geeklog
<a name="desc_path_html">path_html</a> /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.
<a name="desc_path_images">path_images</a> /path/to/geeklog/public_html/images/ Path where Geeklog expects to find its images, including user photos and images for stories.
<a name="desc_path_log">path_log</a> /path/to/geeklog/logs/ File system path for the log files
<a name="desc_path_language">path_language</a> /path/to/geeklog/language/ location of the Geeklog language files
<a name="desc_backup_path">backup_path</a> /path/to/geeklog/backups/ location where mysqldump (see above) will store database backups
<a name="desc_path_data">path_data</a> /path/to/geeklog/data/ File system path for the data directory, used e.g. for the user batch add feature
<a name="desc_have_pear">have_pear</a> false Whether you have <a href="http://pear.php.net/">PEAR</a>
       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)
<a name="desc_path_pear">path_pear</a> /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 <a href="http://pear.php.net/">PEAR</a> packages it requires (e.g.
PEAR::Mail for sending emails).

<a name="site">Site Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_site_name">site_name</a> GeekLog Site Name of your site
<a name="desc_site_slogan">site_slogan</a> Another Nifty GeekLog Site Slogan for your site. This is added to the HTML title field.
<a name="desc_site_mail">site_mail</a> admin@example.com E-mail address for all admin mail
<a name="desc_site_url">site_url</a> http://www.example.com Base URL for your site (no trailing slash)
<a name="desc_site_admin_url">site_admin_url</a> 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.
<a name="desc_theme">theme</a> professional Default theme to use on the site
<a name="desc_layout_url">layout_url</a> Site URL path, with layout dir and default layout Location of the default layout
<a name="desc_path_themes">path_themes</a> /path/to/geeklog/public_html/layout/ Directory where all themes reside
<a name="desc_path_layout">path_layout</a> /path/to/geeklog/public_html/layout/professional/ Path to current theme directory
<a name="desc_allow_user_themes">allow_user_themes</a> Can be 1 or 0 If set to 1, users can set their own theme that the site uses
<a name="desc_allow_user_language">allow_user_language</a> Can be 1 or 0 If set to 1, users can select the language for the site navigation
<a name="desc_allow_user_photo">allow_user_photo</a> Can be 1 or 0 If set to 1, users can upload a photo to their profile
<a name="desc_hide_author_exclusion">hide_author_exclusion</a> 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.
<a name="desc_show_fullname">show_fullname</a> 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.
<a name="desc_remoteauthentication">remoteauthentication</a> 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: Blogger 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 Blogger but not LiveJournal users (or vice versa),
simply remove the class file for the unwanted service(s).
<a name="desc_show_servicename">show_servicename</a> true If you allow users to log in with accounts on remote
       services (like Blogger 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.
<a name="desc_site_enabled">site_enabled</a> true A Geeklog site can be disabled quickly (e.g. for maintenance) by setting this to 'false'.
<a name="desc_site_disabled_msg">site_disabled_msg</a> '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.
<a name="desc_sort_admin">sort_admin</a> false If set to true will sort the entries in the
       Admin's block and the icons on the Submissions page (moderation.php)
alphabetically.
<a name="desc_link_documentation">link_documentation</a> 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.
<a name="desc_menu_elements">menu_elements</a> array('contribute', 'calendar', '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',
       'calendar', 'search', '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).
<a name="desc_custom_registration">custom_registration</a> 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.
<a name="desc_spamx">spamx</a> 128 Tells Geeklog's <a href="http://www.geeklog.net/docs/spamx.html" rel="nofollow">Spam-X</a>
       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.
<a name="desc_rootdebug">rootdebug</a> 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!
<a name="desc_lastlogin">lastlogin</a> true Whether to keep track of when a user last logged in (= true) or not (= false).
<a name="desc_cron_schedule_interval">cron_schedule_interval</a> 86400 Geeklog can emulate a <a href="http://en.wikipedia.org/wiki/Cronjob">cronjob</a>,
       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.
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.

<a name="locale">Locale Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_language">language</a> english Name of your language file. Additional language files may
       be available for download at <a href="http://www.geeklog.net/">http://www.geeklog.net</a>.
       If you translate a language file, please send it to us. Also see <a href="http://www.geeklog.net/docs/config.html#Localization">Localization</a>
below.
<a name="desc_locale">locale</a> en_GB <a href="http://en.wikipedia.org/wiki/Locale">Locale</a>
       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).
<a name="desc_date">date</a> %A, %B %d %Y @ %I:%M %p %Z Date format used for most of the site, including story
       displays. See <a href="http://www.geeklog.net/docs/config.html#date_formats">date
formats</a> below.
<a name="desc_daytime">daytime</a> %m/%d %I:%M%p Date format used when a shorter date is needed. See <a href="http://www.geeklog.net/docs/config.html#date_formats">date formats</a> below.
<a name="desc_shortdate">shortdate</a> %x Date format this is the shortest date. See <a href="http://www.geeklog.net/docs/config.html#date_formats">date formats</a> below.
<a name="desc_dateonly">dateonly</a> %d-%b Short date format (day and month only), to be used e.g.
       in the Upcoming Events and Older Stories blocks. See <a href="http://www.geeklog.net/docs/config.html#date_formats">date
formats</a> below.
<a name="desc_timeonly">timeonly</a> %I:%M %p %Z Format string for the time only, to be used e.g. on the
       Event Details page. See <a href="http://www.geeklog.net/docs/config.html#date_formats">date
formats</a> below.
<a name="desc_week_start">week_start</a> Sun First day of the week in the calendar. Can be either 'Sun' (Sunday) or 'Mon' (Monday).
<a name="desc_hour_mode">hour_mode</a> 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).
<a name="desc_default_charset">default_charset</a> 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 <a href="http://wiki.geeklog.net/wiki/index.php/Multilingual_Support">multilingualism</a> setups, using 'utf-8' as the default character set is
recommended.
<a name="desc_thousand_separator">thousand_separator</a> , Character to use between every group of thousands.
<a name="desc_decimal_separator">decimal_separator</a> . Character to use before decimals.
<a name="desc_decimal_count">decimal_count</a> 2 How many decimal places to display.
<a name="desc_timezone">timezone</a> (commented out) 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 "<a href="http://www.geeklog.net/forum/viewtopic.php?showtopic=21232">timezone
hack</a>" and may not work on some servers.

<a name="session">Session Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_cookie_ip">cookie_ip</a> 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)
<a name="desc_default_perm_cookie_timeout">default_perm_cookie_timeout</a> 28800 Permanent cookie timeout in seconds (28800 = 8 hours).
<a name="desc_session_cookie_timeout">session_cookie_timeout</a> 7200 Session cookie timeout (in seconds).
<a name="desc_cookie_path">cookie_path</a> / Cookie path (see the <a href="http://www.php.net/manual/en/function.setcookie.php">PHP manual</a> for details).
<a name="desc_cookiedomain">cookiedomain</a> (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 <a href="http://www.php.net/manual/en/function.setcookie.php">PHP
manual</a> for details.
<a name="desc_cookiesecure">cookiesecure</a> 0 Only set to 1 if your site uses HTTPS (see the <a href="http://www.php.net/manual/en/function.setcookie.php">PHP manual</a> for details).

<a name="cookie">Cookie Names</a>

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.

<tbody> </tbody>
Variable Default Value Description
<a name="desc_cookie_session">cookie_session</a> gl_session Name of the cookie that stores the session ID.
<a name="desc_cookie_name">cookie_name</a> geeklog Name of the permanent cookie.
<a name="desc_cookie_password">cookie_password</a> password Name of the password cookie.
<a name="desc_cookie_theme">cookie_theme</a> theme Name of the theme cookie.
<a name="desc_cookie_language">cookie_language</a> language Name of the language cookie.

<a name="desc_mail_settings">E-Mail Settings</a><a name="email"></a>

Starting with Geeklog 1.3.9, Geeklog uses the PEAR::Mail class to send all emails. You can then select whether emails should be sent through SMTP, sendmail, or PHP's mail() function.

Within $_CONF['mail_settings'] you have the following options:

<tbody> </tbody>
Variable Default Value Description
<a name="desc_backend">backend</a> mail Used to select how to send email. Can be one of 'smtp', 'sendmail', or 'mail'.
<a name="desc_sendmail_path">sendmail_path</a> /usr/bin/sendmail If you chose 'sendmail' for the backend setting, this specifies the complete path to the sendmail binary.
<a name="desc_sendmail_args">sendmail_args</a> (empty) If you chose 'sendmail' for the backend setting, this
       variable can be used to pass additional parameters to the sendmail
binary.
<a name="desc_host">host</a> smtp.example.com If you chose 'smtp' for the backend setting, this is the SMTP server to use.
<a name="desc_port">port</a> 25 If you chose 'smtp' for the backend setting, this is the port number to talk to on the SMTP server.
<a name="desc_auth">auth</a> false If you chose 'smtp' for the backend setting, set this to true
       if your SMTP server requires authorization, and false if it
doesn't.
<a name="desc_username">username</a> smtp-username If you chose 'smtp' for the backend setting, this is the name of your SMTP account.
<a name="desc_password">password</a> smtp-password If you chose 'smtp' for the backend setting, this is the password for your SMTP account.

<a name="login">Login Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_loginrequired">loginrequired</a> 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.
<a name="desc_submitloginrequired">submitloginrequired</a> 0 When set to 1, only registered users can submit stories and items handled by plugins, e.g. links and events
<a name="desc_commentsloginrequired">commentsloginrequired</a> 0 When set to 1, only registered users can submit comments
<a name="desc_calendarloginrequired">calendarloginrequired</a> 0 When set to 1, only registered users can access the calendar
<a name="desc_statsloginrequired">statsloginrequired</a> 0 When set to 1, only registered users can access the site stats
<a name="desc_searchloginrequired">searchloginrequired</a> 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.
<a name="desc_profileloginrequired">profileloginrequired</a> 0 When set to 1, only registered users can view another user's profile
<a name="desc_emailuserloginrequired">emailuserloginrequired</a> 0 When set to 1, only registered users can use the email submission form to send an email to another user
<a name="desc_emailstoryloginrequired">emailstoryloginrequired</a> 0 When set to 1, only registered users can email stories
<a name="desc_directoryloginrequired">directoryloginrequired</a> 0 When set to 1, only registered users can access the list of past articles

<a name="submission">Submission Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_storysubmission">storysubmission</a> 1 Enable (1) or disable (0) the story submission queue
<a name="desc_usersubmission">usersubmission</a> 0 Enable (1) or disable (0) the user submission queue (i.e. new users must be approved before they receive their password)
<a name="desc_disable_new_user_registration">disable_new_user_registration</a> false When set to true completely disables all options to sign up as a new user.
<a name="desc_allow_domains">allow_domains</a> 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'
<a name="desc_disallow_domains">disallow_domains</a> 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$'
<a name="desc_notification">notification</a> 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.
<a name="desc_listdraftstories">listdraftstories</a> 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.
<a name="desc_postmode">postmode</a> plaintext Sets the default submission mode to 'html' or 'plaintext'
<a name="desc_speedlimit">speedlimit</a> 45 Minimum delay between submissions in seconds. This helps prevent Denial of Service (DOS) attacks
<a name="desc_skip_preview">skip_preview</a> 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).
<a name="desc_advanced_editor">advanced_editor</a> false Enable (if set to true) a WYSIWYG editor for story and comment submissions and static pages. Geeklog ships with <a href="http://www.fckeditor.net/">FCKeditor</a>.

<a name="trackback">Trackback, Pingback, and Ping Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_trackback_enabled">trackback_enabled</a> true Enable (true) or disable (true) <a href="http://en.wikipedia.org/wiki/Trackback">trackback</a> comments. This applies to both sending and receiving trackback comments.
<a name="desc_pingback_enabled">pingback_enabled</a> true Enable (true) or disable (true) <a href="http://en.wikipedia.org/wiki/Pingback">pingback</a> support. This applies to both sending and receiving pingbacks.
<a name="desc_ping_enabled">ping_enabled</a> true Enable (true) or disable (true) the ability to ping weblog directory services like <a href="http://technorati.com/">Technorati</a>.
<a name="desc_trackback_code">trackback_code</a> 0 Default value for new stories: Trackback enabled (0) or disabled (-1)
<a name="desc_multiple_trackbacks">multiple_trackbacks</a> 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
<a name="desc_trackbackspeedlimit">trackbackspeedlimit</a> 300 Number of seconds between two trackbacks / pingbacks from the same IP address.
<a name="desc_check_trackback_link">check_trackback_link</a> 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)
<a name="desc_pingback_self">pingback_self</a> 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.

<a name="misc">Topic, What's New, and E-mail Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_sortmethod">sortmethod</a> sortnum alpha = Sort topics in topic list alphabetically
sortnum = Sort topics in topic list by sort number
<a name="desc_showstorycount">showstorycount</a> 1 Show the number of stories in a topic in the Sections block (0=no, 1=yes)
<a name="desc_showsubmissioncount">showsubmissioncount</a> 1 Show the number of story submissions for a topic in the Sections block (0=no, 1=yes)
<a name="desc_hide_home_link">hide_home_link</a> 0 Hide the "Home" link from the Sections block (0=no, 1=yes)
<a name="desc_whosonline_threshold">whosonline_threshold</a> 300 How long, in seconds, users can be idle before removing them from the whosonline block
<a name="desc_whosonline_anonymous">whosonline_anonymous</a> 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.
<a name="desc_emailstories">emailstories</a> 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.
<a name="desc_emailstorieslength">emailstorieslength</a> 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)
<a name="desc_emailstoriesperdefault">emailstoriesperdefault</a> 0 When set to 1, new users will be subscribed to the daily digest automatically when they register with the site.
<a name="desc_newstoriesinterval">newstoriesinterval</a> 86400 Stories are "new" if they are this many seconds old.
<a name="desc_newcommentsinterval">newcommentsinterval</a> 172800 Comments are "new" if they are this many seconds old.
<a name="desc_newtrackbackinterval">newtrackbackinterval</a> 172800 Trackback comments are "new" if they are this many seconds old.
<a name="desc_hidenewstories">hidenewstories</a> 0 Set to 1 to hide new stories from the What's New block.
<a name="desc_hidenewcomments">hidenewcomments</a> 0 Set to 1 to hide new comments from the What's New block.
<a name="desc_hidenewtrackbacks">hidenewtrackbacks</a> 0 Set to 1 to hide new trackback comments from the What's New block.
<a name="desc_hidenewplugins">hidenewplugins</a> 0 Set to 1 to hide new entries by plugins from the What's New block.
<a name="desc_title_trim_length">title_trim_length</a> 20 Max. length of the title of items listed in the What's New block.
<a name="desc_copyrightyear">copyrightyear</a> (commented out) 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.
<a name="desc_allow_username_change">allow_username_change</a> 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.
<a name="desc_allow_account_delete">allow_account_delete</a> 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".
<a name="desc_passwordspeedlimit">passwordspeedlimit</a> 300 Minimum delay between two requests for a new password, in seconds.
<a name="desc_login_attempts">login_attempts</a> 3 Max. number of login attempts before the speedlimit (see
       below) kicks in and further logins are blocked for the given amount of
time.
<a name="desc_login_speedlimit">login_speedlimit</a> 300 How many seconds have to pass before another login
       attempt can be made after $_CONF['login_attempts'] (see
above) login attempts have failed.
<a name="desc_ip_lookup">ip_lookup</a> 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 <a href="http://sourceforge.net/project/showfiles.php?group_id=68255&package_id=95743">NetTools</a> package, in which case the correct setting would be $_CONF['ip_lookup']
= $_CONF['site_url'] . '/nettools/whois.php?domain=*';
<a name="desc_num_search_results">num_search_results</a> 10 Number of search results per page (and per type).

<a name="story">Story Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_maximagesperarticle">maximagesperarticle</a> 5 max. number of images you can have in a story
<a name="desc_limitnews">limitnews</a> 10 Number of stories to limit the index page to, this same number will appear in the older stuff block
<a name="desc_minnews">minnews</a> 1 Minimum numbers of stories than can appear on a topic page
<a name="desc_contributedbyline">contributedbyline</a> 1 Show author username to public, and enable search by username (0=no, 1=yes)
<a name="desc_hideviewscount">hideviewscount</a> 0 Whether to show (= 0) or to hide (= 1) the number of views a story has had.
<a name="desc_article_image_align">article_image_align</a> right Which side of article the topic image should be shown (right or left)
<a name="desc_show_topic_icon">show_topic_icon</a> 1 Default setting for new stories and story submissions: Whether to show the topic icon (1) or not (0).
<a name="desc_draft_flag">draft_flag</a> 0 Default setting for new stories created by Story Admins: Whether the story's draft flag should be set (1) or not (0).
<a name="desc_frontpage">frontpage</a> 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.
<a name="desc_onlyrootfeatures">onlyrootfeatures</a> 0 When set to 1, this will only allow members of the Root
       group to make a story "featured", i.e. the sticky top story on
the site.
<a name="desc_hideemailicon">hideemailicon</a> 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.
<a name="desc_hideprintericon">hideprintericon</a> 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.
<a name="desc_hide_no_news_msg">hide_no_news_msg</a> 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)
<a name="desc_hide_main_page_navigation">hide_main_page_navigation</a> 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.
<a name="desc_allow_page_breaks">allow_page_breaks</a> 1 Allow usage of the [page_break] tag in stories (when set to 1), so that stories can spread over multiple pages.
<a name="desc_page_break_comments">page_break_comments</a> 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.
<a name="desc_show_right_blocks">show_right_blocks</a> false If set to true, the right-side column of blocks
       will be displayed on all pages (instead of only on the index
page).
<a name="desc_showfirstasfeatured">showfirstasfeatured</a> 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.
<a name="desc_showfirstasfeatured">onlyrootfeatures</a> 0 This restricts the featuring of stories to root user(s).
       If you have several story admins that 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.
<a name="desc_left_blocks_in_footer">left_blocks_in_footer</a> 0 When set to 1, this will make the {left_blocks}
       variable available in footer.thtml (and disable it in header.thtml).
       This is really only useful for two-column layouts where you want the
       left column contain the stories and the right columni contain the
standard blocks.

<a name="comment">Comment Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_commentspeedlimit">commentspeedlimit</a> 45 Number of seconds between posting a comment for the user
<a name="desc_comment_limit">comment_limit</a> 100 Most number of comments to show at any one time
<a name="desc_comment_mode">comment_mode</a> threaded How to display comments (threaded, nested, flat or nocomments)
<a name="desc_comment_code">comment_code</a> 0 Default value for new stories: Comments enabled (0) or disabled (-1)

<a name="image">Image Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_image_lib">image_lib</a> (empty string) Set this to either 'imagemagick', 'netpbm', or 'gdlib' if
       images should be resized during upload. Leave as  if you don't want
images to be resized or if you don't have those packages available.
<a name="desc_path_to_mogrify">path_to_mogrify</a> (commented out) 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'.
You will need a fairly recent version of <a href="http://www.imagemagick.org/">ImageMagick</a>
for this to work (version 5.4.9 or newer is recommended).
<a name="desc_path_to_netpbm">path_to_netpbm</a> (commented out) 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 of the netpbm package for various platforms can be downloaded from the <a href="http://sourceforge.net/projects/gallery/">Homepage
of the Gallery project</a>.
<a name="desc_keep_unscaled_image">keep_unscaled_image</a> 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).
<a name="desc_allow_user_scaling">allow_user_scaling</a> 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).
<a name="desc_max_image_width">max_image_width</a> 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).
<a name="desc_max_image_height">max_image_height</a> 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).
<a name="desc_max_image_size">max_image_size</a> 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).
<a name="desc_max_topicicon_width">max_topicicon_width</a> 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).
<a name="desc_max_topicicon_height">max_topicicon_height</a> 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).
<a name="desc_max_topicicon_size">max_topicicon_size</a> 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).
<a name="desc_debug_image_upload">debug_image_upload</a> (commented out) When not commented out(!) and 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.

<a name="userphoto">User photo</a>

Additional options for the user photo.

<tbody> </tbody>
Variable Default Value Description
<a name="desc_max_photo_width">max_photo_width</a> 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).
<a name="desc_max_photo_height">max_photo_height</a> 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).
<a name="desc_max_photo_size">max_photo_size</a> 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).
<a name="desc_use_gravatar">use_gravatar</a> false If enabled (set to true), a user's avatar image
       will be requested from <a href="http://gravatar.com/">gravatar.com</a>
       if the user didn't upload a user photo (i.e. an uploaded photo always
       takes priority).
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).
<a name="desc_gravatar_rating">gravatar_rating</a> (commented out) Avatars submitted to gravatar.com are <a href="http://gravatar.com/rating.php">rated</a>
       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).
<a name="desc_force_photo_width">force_photo_width</a> (commented out) 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).
<a name="desc_default_photo">default_photo</a> (commented out) 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.

<a name="rdf">Syndication Settings</a>

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.

<tbody> </tbody>
Variable Default Value Description
<a name="desc_backend">backend</a> 1 Create a feed file for the stories in rdf_file (0=no, 1=yes)
<a name="desc_rdf_file">rdf_file</a> 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
<a name="desc_rdf_language">rdf_language</a> 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).
<a name="desc_rdf_limit">rdf_limit</a> 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.
<a name="desc_rdf_storytext">rdf_storytext</a> 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.
<a name="desc_syndication_max_headlines">syndication_max_headlines</a> 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.

<a name="content">Content Control Settings</a>

<tbody> </tbody>
Variable Default Value Description
<a name="desc_user_html">user_html</a> <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.
<a name="desc_admin_html">admin_html</a> 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.
<a name="desc_allowed_protocols">allowed_protocols</a> array ('http', 'https', 'ftp'); Defines which protocols are allowed in links (i.e. HTML <a> tags).
<a name="desc_skip_html_filter_for_root">skip_html_filter_for_root</a> 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!
<a name="desc_disable_autolinks">disable_autolinks</a> 0 If set to 1, disables the autolinks. I.e. links using the [story:] etc. syntax are not interpreted any more.
<a name="desc_censormode">censormode</a> 1 Censor submissions and comments (0=no, 1=yes)
<a name="desc_censorreplace">censorreplace</a> *censored* Text to replace a censored word with
<a name="desc_censorlist">censorlist</a> array(a list of "bad" words goes here ...) An array of censored words

<a name="url-rewrite">URL Rewriting</a>

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 completely 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.

<tbody> </tbody>
Variable Default Value Description
<a name="desc_url_rewrite">url_rewrite</a> false Enable (true) or disable (false) URL rewriting.

<a name="unused">Unused Settings</a>

This is a list of config.php options that are currently unused, e.g. because the feature they were intended for has not been implemented yet.

<tbody> </tbody>
Variable Default Value Description
<a name="desc_ostype">ostype</a> PHP_OS Identifies the operating system running on your webserver.
<a name="desc_pdf_enabled">pdf_enabled</a> 0 PDF conversion of stories has not been fully implemented
       yet. Leave this option as is to prevent unfinished options from showing
up on your site.

<a name="Localization">Localization</a>

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 <a href="http://lists.geeklog.net/listinfo/geeklog-translations">geeklog-translations</a> mailing list. All important information concerning translating Geeklog will be posted there.

<a name="date_formats">Locale and Date Formats</a>

You can set the locale and date format in the config.php file. 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: <a href="http://www.opengroup.org/onlinepubs/7908799/xbd/locale.html">http://www.opengroup.org/onlinepubs/7908799/xbd/locale.html</a>
More info on localdef: <a href="http://www.opengroup.org/onlinepubs/7908799/xcu/localedef.html">http://www.opengroup.org/onlinepubs/7908799/xcu/localedef.html</a>

Date Format Syntax

  • %a - abbreviated weekday name according to the current locale
  • %A - full weekday name according to the current locale
  • %b - abbreviated month name according to the current locale
  • %B - full month name according to the current locale
  • %c - preferred date and time representation for the current locale
  • %C - century number (the year divided by 100 and truncated to an integer, range 00 to 99)
  • %d - day of the month as a decimal number (range 00 to 31)
  • %D - same as %m/%d/%y
  • %e - day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')
  • %h - same as %b
  • %H - hour as a decimal number using a 24-hour clock (range 00 to 23)
  • %I - hour as a decimal number using a 12-hour clock (range 01 to 12)
  • %j - day of the year as a decimal number (range 001 to 366)
  • %m - month as a decimal number (range 1 to 12)
  • %M - minute as a decimal number
  • %n - newline character
  • %p - either `am' or `pm' according to the given time value, or the corresponding strings for the current locale
  • %r - time in a.m. and p.m. notation
  • %R - time in 24 hour notation
  • %S - second as a decimal number
  • %t - tab character
  • %T - current time, equal to %H:%M:%S
  • %u - weekday as a decimal number [1,7], with 1 representing Monday
  • %U - week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week
  • %V - The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.
  • %W - week number of the current year as a decimal number, starting with the first Monday as the first day of the first week
  • %w - day of the week as a decimal, Sunday being 0
  • %x - preferred date representation for the current locale without the time
  • %X - preferred time representation for the current locale without the date
  • %y - year as a decimal number without a century (range 00 to 99)
  • %Y - year as a decimal number including the century
  • %Z - time zone or name or abbreviation
  • %% - a literal `%' character