1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- /**
- * Component of HTMLPurifier_AttrContext that accumulates IDs to prevent dupes
- * @note In Slashdot-speak, dupe means duplicate.
- * @note The default constructor does not accept $config or $context objects:
- * use must use the static build() factory method to perform initialization.
- */
- class HTMLPurifier_IDAccumulator
- {
- /**
- * Lookup table of IDs we've accumulated.
- * @public
- */
- public $ids = array();
- /**
- * Builds an IDAccumulator, also initializing the default blacklist
- * @param $config Instance of HTMLPurifier_Config
- * @param $context Instance of HTMLPurifier_Context
- * @return Fully initialized HTMLPurifier_IDAccumulator
- */
- public static function build($config, $context) {
- $id_accumulator = new HTMLPurifier_IDAccumulator();
- $id_accumulator->load($config->get('Attr.IDBlacklist'));
- return $id_accumulator;
- }
- /**
- * Add an ID to the lookup table.
- * @param $id ID to be added.
- * @return Bool status, true if success, false if there's a dupe
- */
- public function add($id) {
- if (isset($this->ids[$id])) return false;
- return $this->ids[$id] = true;
- }
- /**
- * Load a list of IDs into the lookup table
- * @param $array_of_ids Array of IDs to load
- * @note This function doesn't care about duplicates
- */
- public function load($array_of_ids) {
- foreach ($array_of_ids as $id) {
- $this->ids[$id] = true;
- }
- }
- }
- // vim: et sw=4 sts=4
|