DokuWiki

It's better when it's simple

User Tools

Site Tools


devel:environment

Environment

This page should give you a brief overview about available variables and constants you can use in plugin or template development.

Global Variables

$ACT

Holds the current action, see Action Modes. (reference)

:!: $ACT can also be an array instead of a string depending on when it is used. So if you compare it using a string comparison function (e.g. strcmp(), strncmp()) then you better make sure that it is not an array using !is_array($ACT). Otherwise the result may be undefined. :!:

:!: If you are handling an ACTION_ACT_PREPROCESS event, use $event->data instead of $ACT.

$auth

The globally available $auth object represents an instance of the used authentication plugin, which inherites from AuthPlugin. (reference)

$conf

The globally available $conf array holds all of DokuWiki's configuration settings. In general it follows the following structure:

  • $conf[<setting_name>] — DokuWiki settings (refer config)
  • $conf[<setting_group>][<setting_name>] — Some DokuWiki settings use this format, e.g. ftp, proxy and target settings.
  • $conf['tpl'][<template_name>][<setting_name>] — Template configuration settings, refer to the template documentation. Note only one template at a time is enabled.
  • $conf['plugin'][<plugin_name>][<setting_name>] — Plugin configuration settings, refer to the plugin documentation.
  • $conf['plugin'][<auth_plugin_name>][<setting_name>] — Auth plugin settings, refer to the auth plugin documentation.

Normally you don't need to access this array directly. Both, Plugins and Templates have their own methods to accessing their respective configuration settings.

(reference)

$ID

Holds the pagename of the currently rendered page. This page is usually the currently viewed page, but not necessarily - see the $INFO['id'] below. (reference)

$INFO

This is an associative array, populated with information provided by inc/common.php function pageinfo().

Current elements are:

  • id — pagename of main page currently viewed. Usually the same as $ID but might sometimes be different. See 1320 for some detail.
  • rev — revision of the main page currently viewed, usually the same as $REV.
  • userinfo — only set for a logged user, an associative array…
    • pass — password, encrypted
    • name — full name
    • mail — email address
    • grps — groups the user belongs to (Array :!:)
    • buid — a special id constructed from details of the user's browser and IP address
  • perm — the user's permissions related to the current page ($ID)
  • subscribed — true if the user has subscribed to this page, false otherwise
  • namespace — the namespace the current page ($ID) belongs to
  • locked — true if the page is locked, false otherwise
  • filepath — the file system path to the raw wiki data for the current page ($ID+$REV)
  • exists — true if the raw wiki data for the current page exists ($ID+$REV), false otherwise
  • rev — the revision id for the current page ($ID), an empty string if the current revision
  • writable — true if for the current page ($ID+$REV) the combination of file existence, file permissions and the user's ACL permissions allow them to, write to an existing file or to create a nonexistent file. False otherwise.
  • editable — true if the current page ($ID+$REV) is writable and not currently locked.
  • lastmod — timestamp of the last modification to the current page ($ID+$REV)
  • metametadata for the current page ($ID)
  • ip — IP address of the last editor of the current page ($ID+$REV)
  • user — username of the last editor of the current page ($ID+$REV)
  • sum — edit summary annotation for the current page ($ID+$REV)
  • editor — user name (or IP address if user name is unknown) of the last editor of the current page ($ID+$REV)
  • isadmin — true if the currently logged in user is a superuser
  • ismanager — true if the currently logged in user is a manager
  • draft — contains the file name of a draft file if it exists for the current user and page
  • ismobile — true if the page is browsed from a mobile device or phone
  • client — name of a user currently logged in

On $INFO array is an example array dumped.

$lang

An associative array which hold all translation strings of the interface, plugins and templates. (reference)

$REV

Holds the revision timestamp of the currently rendered page. This is '' (empty string) when the most current page is meant. (reference)

$_SERVER['REMOTE_USER']

This variable is explicitly set by DokuWiki's authentication mechanism when a user logs in and holds the users name.

$userid = $INPUT->server->str('REMOTE_USER');

$TEXT

On save and preview this global variable holds the text submitted via the edit form. (reference)

$TOC

This variable will, if populated, be used by tpl_toc() to build the TOC of a page. Normally this variable is empty and tpl_toc() builds the TOC from the page metadata. (reference)

$USERINFO

An globally available associative array which hold some information of an authenticated user.

  • pass - hash of the users' password
  • name - the users' full name
  • mail - the users' mail address
  • grps - array of groups the user is part of

If logged out, or not logged in, this global is set to null.

(reference )

The array is filled in auth_setCookie() after login, or from existing session auth_login(). Or if the authentication plugin uses trustExternal(), it is already set there.

$JSINFO

This array contained information that is passed to the JavaScript as global variable.

Read more:

Constants

Here follows a list of the most important constants.

AUTH_<*>

The AUTH_<*> type constants represent the permission levels, as integer value, used in DokuWiki's ACL system. They can be used to let ACL checks for a given page/namespace look a little bit more verbose.

if (auth_quickaclcheck($ID) >= AUTH_READ) {
    // do sth.
}

AUTH_NONE

AUTH_READ

AUTH_EDIT

AUTH_CREATE

AUTH_UPLOAD

AUTH_DELETE

AUTH_ADMIN

DOKU_<*>

The DOKU_<*> type constants hold information about various system information for DokuWiki's internal use.

DOKU_BASE

The URL base of the DokuWiki install. (reference)

/dokuwiki/

Or if canonical is set:

http://domain.org/dokuwiki/

DOKU_REL

The URL base path to the DokuWiki install. (reference)

/dokuwiki/

DOKU_URL

The absolute URL to the DokuWiki install. (reference)

http://domain.org/dokuwiki/

DOKU_INC

The server side include path of the DokuWiki install. (reference)

/var/www/dokuwiki/

DOKU_CONF

The server side conf path of the DokuWiki install. (reference)

/var/www/dokuwiki/conf/  

DOKU_TPL

(deprecated) The URL base path to the current used template. (reference)

/dokuwiki/lib/tpl/<template>/

Or if canonical is set:

http://domain.org/lib/tpl/<template>/

Note: this define is deprecated and should be replaced by call to tpl_basedir().

DOKU_TPLINC

(deprecated) The server side include path of the current used template. (reference)

/var/www/dokuwiki/lib/tpl/<template>/

Note: this define is deprecated and should be replaced by call to tpl_incdir().

DOKU_PLUGIN

The server side include path of the plugins install. (reference)

/var/www/dokuwiki/lib/plugins/

Request Variables

Since 2012-09-10 “Adora Belle”, request variables are accessible through the Input class. For further information please have a look at request_vars.

devel/environment.txt · Last modified: 2023-11-05 14:50 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki