TWiki::Prefs::PrefsCache
The PrefsCache package holds a cache of topics that have been read in, using the TopicPrefs class. These functions manage that cache.
We maintain 2 hashes of values:
As each cache level is built, the values are copied down from the parent cache level. This sounds monstrously inefficient, but in fact perl does this a lot better than doing a multi-level lookup when a value is referenced. This is especially important when many prefs lookups may be done in a session, for example when searching.
Creates a new Prefs object.
$prefs
- controlling TWiki::Prefs object
$parent
- the PrefsCache object to use to initialise values from
$type
- Type of prefs object to create, see notes.
$web
- web containing topic to load from (required is $topic
is set)
$topic
- topic to load from
$prefix
- key prefix for all preferences (used for plugins)
Finalise preferences in this cache, by freezing any preferences listed in FINALPREFERENCES at their current value.
Loads preferences from a topic. All settings loaded are prefixed with the key prefix (default '').
Loads preferences from text and optional metadata. All settings loaded
are prefixed with the key prefix (default ''). If $meta
is defined,
then metadata will be taken from that object. Otherwise, $text
will
be parsed to extract meta-data.
Adds a key-value pair of the given type to the object. Type is Set or Local. Callback used for the Prefs::Parser object, or can be used to add arbitrary new entries to a prefs cache.
Note that attempts to redefine final preferences will be ignored.
Returns 1 if the preference was defined, 0 otherwise.
Generate an (HTML if $html) representation of the content of this cache.