Package TWiki::Prefs
The Prefs class is a singleton that implements management of preferences.
It uses a stack of TWiki::Prefs::PrefsCache objects to store the
preferences for global, web, user and topic contexts, and provides
the means to look up preferences in these.
Preferences from different places stack on top of each other, so there
are global preferences, then site, then web (and subweb and subsubweb),
then topic, included topic and so on. Each level of the stack is tagged with
a type identifier.
The module also maintains a separate of the preferences found in every topic
and web it reads. This supports the lookup of preferences for webs and topics
that are not on the stack, and must not be chained in (you can't allow
a user to override protections from their home topic!)
On this page:
- ClassMethod new ($session[,$cache])
- ObjectMethod finish ()
- ObjectMethod pushPreferences ($web,$topic,$type)
- ObjectMethod pushWebPreferences ($web)
- ObjectMethod pushGlobalPreferences ()
- ObjectMethod pushPreferencesValues ($type,\%values)
- ObjectMethod mark ()
- ObjectMethod restore ($mark)
- ObjectMethod getPreferencesValue ($key) -> $value
- ObjectMethod isFinalised ($key)
- ObjectMethod getTopicPreferencesValue ($key,$web,$topic) -> $value
- getTextPreferencesValue( $key, $text, $meta, $web, $topic ) -> $value
- ObjectMethod getWebPreferencesValue ($key,$web) -> $value
- ObjectMethod stringify() -> $text
ClassMethod new ($session[,$cache])
Creates a new Prefs object. If $cache is defined, it will be pushed onto the stack.ObjectMethod finish ()
Break circular references.ObjectMethod pushPreferences ($web,$topic,$type)
-
$web
- web to read from -
$topic
- topic to read -
$type
- DEFAULT, SITE, USER, SESSION, WEB, TOPIC or PLUGIN -
$prefix
- key prefix for all preferences (used for plugins)
ObjectMethod pushWebPreferences ($web)
Pushes web preferences. Web preferences for a particular web depend on the preferences of all containing webs.ObjectMethod pushGlobalPreferences ()
Add global preferences to this preferences stack.ObjectMethod pushPreferencesValues ($type,\%values)
Push a new preference level using type and values givenObjectMethod mark ()
Return a marker representing the current top of the preferences stack. Used to remember the stack when new web and topic preferences are pushed during a topic include.ObjectMethod restore ($mark)
Resets the preferences stack to the given mark, to recover after a topic include.ObjectMethod getPreferencesValue ($key) -> $value
- =$key - key to look up
$key
, or undef.
Looks up local preferences when the level
topic is the same as the current web,topic in the session.