3 declare(strict_types = 1);
18 use TYPO3\HtmlSanitizer\Behavior;
19 use TYPO3\HtmlSanitizer\Builder\CommonBuilder;
20 use TYPO3\HtmlSanitizer\Sanitizer;
21 use TYPO3\HtmlSanitizer\Visitor\CommonVisitor;
33 parent::__construct();
35 $isOnCurrentHost =
new Behavior\ClosureAttrValue(
36 function (
string $value):
bool {
37 return GeneralUtility::isValidUrl($value) && GeneralUtility::isOnCurrentHost($value)
38 || GeneralUtility::isAbsPath($value) && GeneralUtility::isAllowedAbsPath($value);
42 $isTypo3Uri =
new Behavior\RegExpAttrValue(
'#^t3://#');
44 $isSpamProtectedEmailUri =
new Behavior\RegExpAttrValue(
'#^javascript:linkTo_UnCryptMailto#');
47 $this->srcAttr->addValues($isOnCurrentHost);
48 $this->srcsetAttr->addValues($isOnCurrentHost);
49 $this->hrefAttr->addValues($isOnCurrentHost, $isTypo3Uri, $isSpamProtectedEmailUri);
52 $this->globalAttrs[] =
new Behavior\Attr(
'style');
58 $visitor = GeneralUtility::makeInstance(CommonVisitor::class, $behavior);
59 return GeneralUtility::makeInstance(Sanitizer::class, $visitor);
65 $tags = parent::createBasicTags();
69 (
new Behavior\Attr(
'onclick'))
70 ->addValues(
new Behavior\RegExpAttrValue(
'#^openPic\(#'))
77 return parent::createBehavior()
78 ->withName(
'default');