mirror of
https://github.com/moodle/moodle.git
synced 2025-07-17 04:11:29 +02:00
Prior to this change, all the line endings in the imported HTMLPurifier library were using CRLF (\r\n aka Windows style), but the HTMLPurifier source and also the downloadable artefacts use LF (\n aka Linux style) as line endings. This has been the case since510d190382
when with the commit "MDL-38672 import HTML Purifier 4.5.0" all line endings were changed from LF to CRLF. There was no comment in the commit on why this change was done. As the original source uses LF, this commit partly reverts510d190382
and goes back to LF as line endings. Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
61 lines
1.9 KiB
PHP
61 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Processes an entire attribute array for corrections needing multiple values.
|
|
*
|
|
* Occasionally, a certain attribute will need to be removed and popped onto
|
|
* another value. Instead of creating a complex return syntax for
|
|
* HTMLPurifier_AttrDef, we just pass the whole attribute array to a
|
|
* specialized object and have that do the special work. That is the
|
|
* family of HTMLPurifier_AttrTransform.
|
|
*
|
|
* An attribute transformation can be assigned to run before or after
|
|
* HTMLPurifier_AttrDef validation. See HTMLPurifier_HTMLDefinition for
|
|
* more details.
|
|
*/
|
|
|
|
abstract class HTMLPurifier_AttrTransform
|
|
{
|
|
|
|
/**
|
|
* Abstract: makes changes to the attributes dependent on multiple values.
|
|
*
|
|
* @param array $attr Assoc array of attributes, usually from
|
|
* HTMLPurifier_Token_Tag::$attr
|
|
* @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object.
|
|
* @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object
|
|
* @return array Processed attribute array.
|
|
*/
|
|
abstract public function transform($attr, $config, $context);
|
|
|
|
/**
|
|
* Prepends CSS properties to the style attribute, creating the
|
|
* attribute if it doesn't exist.
|
|
* @param array &$attr Attribute array to process (passed by reference)
|
|
* @param string $css CSS to prepend
|
|
*/
|
|
public function prependCSS(&$attr, $css)
|
|
{
|
|
$attr['style'] = isset($attr['style']) ? $attr['style'] : '';
|
|
$attr['style'] = $css . $attr['style'];
|
|
}
|
|
|
|
/**
|
|
* Retrieves and removes an attribute
|
|
* @param array &$attr Attribute array to process (passed by reference)
|
|
* @param mixed $key Key of attribute to confiscate
|
|
* @return mixed
|
|
*/
|
|
public function confiscateAttr(&$attr, $key)
|
|
{
|
|
if (!isset($attr[$key])) {
|
|
return null;
|
|
}
|
|
$value = $attr[$key];
|
|
unset($attr[$key]);
|
|
return $value;
|
|
}
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|