Files
admin
doz
fachprojekt
html2pdf_v4.03
htmlpurifier-4.10.0
art
benchmarks
configdoc
docs
extras
library
HTMLPurifier
AttrDef
AttrTransform
ChildDef
ConfigSchema
DefinitionCache
EntityLookup
Filter
HTMLModule
Injector
Language
Lexer
Node
Printer
Strategy
TagTransform
Token
URIFilter
URIScheme
VarParser
Arborize.php
AttrCollections.php
AttrDef.php
AttrTransform.php
AttrTypes.php
AttrValidator.php
Bootstrap.php
CSSDefinition.php
ChildDef.php
Config.php
ConfigSchema.php
ContentSets.php
Context.php
Definition.php
DefinitionCache.php
DefinitionCacheFactory.php
Doctype.php
DoctypeRegistry.php
ElementDef.php
Encoder.php
EntityLookup.php
EntityParser.php
ErrorCollector.php
ErrorStruct.php
Exception.php
Filter.php
Generator.php
HTMLDefinition.php
HTMLModule.php
HTMLModuleManager.php
IDAccumulator.php
Injector.php
Language.php
LanguageFactory.php
Length.php
Lexer.php
Node.php
PercentEncoder.php
Printer.php
PropertyList.php
PropertyListIterator.php
Queue.php
Strategy.php
StringHash.php
StringHashParser.php
TagTransform.php
Token.php
TokenFactory.php
URI.php
URIDefinition.php
URIFilter.php
URIParser.php
URIScheme.php
URISchemeRegistry.php
UnitConverter.php
VarParser.php
VarParserException.php
Zipper.php
HTMLPurifier.auto.php
HTMLPurifier.autoload-legacy.php
HTMLPurifier.autoload.php
HTMLPurifier.composer.php
HTMLPurifier.func.php
HTMLPurifier.includes.php
HTMLPurifier.kses.php
HTMLPurifier.path.php
HTMLPurifier.php
HTMLPurifier.safe-includes.php
maintenance
plugins
smoketests
tests
.gitattributes
.gitignore
.travis.yml
CREDITS
Doxyfile
INSTALL
INSTALL.fr.utf8
LICENSE
NEWS
README.md
TODO
VERSION
WHATSNEW
WYSIWYG
composer.json
phpdoc.ini
images
prints
prints3
Kennwortwechsel.php
hauptframe.php
index.php
index_alt.php
index_db.php
index_frame.htm
index_ldap.php
login.php
logout.php
menuframe.htm
styles_pc.css
topframe.php
fachprojekt/htmlpurifier-4.10.0/library/HTMLPurifier/PropertyList.php
2023-02-27 12:57:51 +01:00

123 lines
2.8 KiB
PHP
Executable File

<?php
/**
* Generic property list implementation
*/
class HTMLPurifier_PropertyList
{
/**
* Internal data-structure for properties.
* @type array
*/
protected $data = array();
/**
* Parent plist.
* @type HTMLPurifier_PropertyList
*/
protected $parent;
/**
* Cache.
* @type array
*/
protected $cache;
/**
* @param HTMLPurifier_PropertyList $parent Parent plist
*/
public function __construct($parent = null)
{
$this->parent = $parent;
}
/**
* Recursively retrieves the value for a key
* @param string $name
* @throws HTMLPurifier_Exception
*/
public function get($name)
{
if ($this->has($name)) {
return $this->data[$name];
}
// possible performance bottleneck, convert to iterative if necessary
if ($this->parent) {
return $this->parent->get($name);
}
throw new HTMLPurifier_Exception("Key '$name' not found");
}
/**
* Sets the value of a key, for this plist
* @param string $name
* @param mixed $value
*/
public function set($name, $value)
{
$this->data[$name] = $value;
}
/**
* Returns true if a given key exists
* @param string $name
* @return bool
*/
public function has($name)
{
return array_key_exists($name, $this->data);
}
/**
* Resets a value to the value of it's parent, usually the default. If
* no value is specified, the entire plist is reset.
* @param string $name
*/
public function reset($name = null)
{
if ($name == null) {
$this->data = array();
} else {
unset($this->data[$name]);
}
}
/**
* Squashes this property list and all of its property lists into a single
* array, and returns the array. This value is cached by default.
* @param bool $force If true, ignores the cache and regenerates the array.
* @return array
*/
public function squash($force = false)
{
if ($this->cache !== null && !$force) {
return $this->cache;
}
if ($this->parent) {
return $this->cache = array_merge($this->parent->squash($force), $this->data);
} else {
return $this->cache = $this->data;
}
}
/**
* Returns the parent plist.
* @return HTMLPurifier_PropertyList
*/
public function getParent()
{
return $this->parent;
}
/**
* Sets the parent plist.
* @param HTMLPurifier_PropertyList $plist Parent plist
*/
public function setParent($plist)
{
$this->parent = $plist;
}
}
// vim: et sw=4 sts=4