├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── actions
│ ├── build
│ │ ├── image
│ │ │ └── action.yaml
│ │ └── package
│ │ │ └── action.yaml
│ ├── test
│ │ └── action.yaml
│ └── version
│ │ └── action.yaml
└── workflows
│ ├── close-inactive-issues.yaml
│ ├── codeql.yml
│ ├── master.yaml
│ ├── release.yaml
│ └── test.yaml
├── .gitignore
├── .pre-commit-config.yaml
├── CODEOWNERS
├── CREDITS
├── LICENSE
├── Makefile.in
├── README.md
├── RELEASE_NOTES
├── SECURITY.md
├── VERSION
├── aclocal.m4
├── build
├── Dockerfile.bionic
├── Dockerfile.focal
├── Dockerfile.jammy
├── Dockerfile.noble
├── Dockerfile.oracle8
├── Dockerfile.oracle9
├── README.md
├── fpm-piler-after-install.sh
├── fpm-piler-before-install.sh
├── piler.conf
└── run.sh
├── config.php.in
├── configure
├── configure.in
├── contrib
├── README
├── export-attachments
│ └── export-attachments.php
├── imap
│ ├── Makefile.in
│ └── imap-seen.c
├── installer
│ ├── compile-on-ubuntu.sh
│ ├── focal.sh
│ └── jammy.sh
├── milter
│ └── pilter.pl
├── mime
│ └── mime.types
├── o365
│ ├── README.md
│ ├── config.py
│ ├── download-emails.py
│ └── requirements.txt
├── pop3
│ └── batch-import-without-removing.sh
├── proxmox-lxc
│ ├── README
│ ├── create_lxc.sh
│ ├── mailpiler.orig
│ ├── matrix.orig
│ └── zmb_mem.orig
├── selinux
│ ├── README
│ └── piler.te
├── smtp
│ ├── dictionary.txt
│ └── smtp-source.py
└── webserver
│ ├── piler-apache-2.x.conf
│ └── piler-nginx.conf
├── cppcheck.sh
├── docker
├── Dockerfile
├── README.md
├── build.sh
├── docker-compose.yaml
├── manticore.conf
├── piler.cnf
└── start.sh
├── etc
├── Makefile.in
├── config-site.dist.php
├── cron.jobs.in
├── example.conf
├── manticore.conf.in
├── smtp.acl.example
└── sphinx.conf.in
├── init.d
├── Makefile.in
├── rc.piler.in
└── rc.searchd.in
├── install-sh
├── mkinstalldirs
├── piler-config.h.in
├── src
├── Makefile.in
├── archive.c
├── attachment.c
├── bdat.c
├── cfg.c
├── cfg.h
├── config.h
├── counters.c
├── decoder.c
├── decoder.h
├── defs.h
├── digest.c
├── dirs.c
├── errmsg.h
├── extract.c
├── hash.c
├── hash.h
├── htmlentities.h
├── imap.c
├── import.c
├── import.h
├── import_imap.c
├── import_mailbox.c
├── import_maildir.c
├── import_pilerexport.c
├── import_pop3.c
├── memc.c
├── memc.h
├── message.c
├── misc.c
├── misc.h
├── mydomains.c
├── mysql.c
├── parser.c
├── parser.h
├── parser_utils.c
├── piler-smtp.c
├── piler.c
├── piler.h
├── pileraget.c
├── pilerconf.c
├── pilerexport.c
├── pilerget.c
├── pilerimport.c
├── pop3.c
├── reindex.c
├── rules.c
├── rules.h
├── screen.c
├── screen.h
├── session.c
├── sig.c
├── sig.h
├── smtp.c
├── smtp.h
├── smtpcodes.h
├── sql.h
├── stats.c
├── store.c
├── tai.c
├── tai.h
├── test.c
├── tokenizer.c
└── trans.h
├── suppressions.txt
├── systemd
├── Makefile.in
├── piler-smtp.service
├── piler.service
└── pilersearch.service
├── test_files
├── 1.eml
├── 2.eml
├── 3.eml
├── 4.eml
├── 5.eml
├── 6.eml
├── 7.eml
└── 8.eml
├── tests
├── addons.sh
├── config-site-extras.php
├── run.sh
├── setup.sh
└── setup.sql
├── unit_tests
├── 1.eml
├── 13-xlsx.eml
├── 15-image-only-spam.eml
├── 16-rfc822-attachment-1.eml
├── 17-attached-text-bogus-mime.eml
├── 18-spam-html-encoding.eml
├── 19-pdf-attachment-bad-mime.eml
├── 2.eml
├── 20-pdf-attachment-bad-mime.eml
├── 21-register-tricky-urls.eml
├── 3.eml
├── 30-subject.eml
├── 31-subject.eml
├── 32-subject.eml
├── 33-subject.eml
├── 35-encrypted-zip.eml
├── 4.eml
├── 5-ibm-images.eml
├── 5.eml
├── 6.eml
├── 7.eml
├── 8.eml
├── 9-attached-text.eml
├── Makefile.in
├── check_attachments.c
├── check_decoder.c
├── check_digest.c
├── check_hash.c
├── check_misc.c
├── check_mydomains.c
├── check_parser.c
├── check_parser_utils.c
├── check_rules.c
├── common.c
├── run.sh
├── smtp.c
├── test.conf
├── test.h
└── words.h
├── util
├── Makefile.in
├── automated-search.php
├── config-site.php.in
├── daily-report.php
├── db-mysql-root.sql.in
├── db-mysql.sql
├── db-upgrade-0.1.18-vs-0.1.19.sql
├── db-upgrade-0.1.19-vs-0.1.20.sql
├── db-upgrade-0.1.20-vs-0.1.21.sql
├── db-upgrade-0.1.21-vs-0.1.22.sql
├── db-upgrade-0.1.22-vs-0.1.23.sql
├── db-upgrade-0.1.23-vs-0.1.24.sql
├── db-upgrade-0.1.24-vs-1.1.0.sql
├── db-upgrade-1.1.0-vs-1.2.0.sql
├── db-upgrade.sql
├── deduphelper
├── download-imap.php
├── generate_stats.php
├── get-token.py
├── gmail-imap-import.php
├── healthcheck.sh
├── imapfetch.py
├── import.sh.in
├── indexer.attachment.sh.in
├── indexer.delta.sh.in
├── indexer.main.sh.in
├── mailstat.php
├── pilerpurge.py
├── postinstall.sh.in
├── purge.sh
├── refresh-token.py
├── reindex.sh
└── sign.php
└── webui
├── .htaccess
├── Makefile.in
├── Zend
├── Exception.php
├── Mail.php
├── Mail
│ ├── Exception.php
│ ├── Header
│ │ ├── HeaderName.php
│ │ └── HeaderValue.php
│ ├── Message.php
│ ├── Message
│ │ ├── File.php
│ │ └── Interface.php
│ ├── Part.php
│ ├── Part
│ │ ├── File.php
│ │ └── Interface.php
│ ├── Protocol
│ │ ├── Abstract.php
│ │ ├── Exception.php
│ │ ├── Imap.php
│ │ ├── Pop3.php
│ │ ├── Smtp.php
│ │ └── Smtp
│ │ │ └── Auth
│ │ │ ├── Crammd5.php
│ │ │ ├── Login.php
│ │ │ └── Plain.php
│ ├── Storage.php
│ ├── Storage
│ │ ├── Abstract.php
│ │ ├── Exception.php
│ │ ├── Folder.php
│ │ ├── Folder
│ │ │ ├── Interface.php
│ │ │ ├── Maildir.php
│ │ │ └── Mbox.php
│ │ ├── Imap.php
│ │ ├── Maildir.php
│ │ ├── Mbox.php
│ │ ├── Pop3.php
│ │ └── Writable
│ │ │ ├── Interface.php
│ │ │ └── Maildir.php
│ └── Transport
│ │ ├── Abstract.php
│ │ ├── Exception.php
│ │ ├── File.php
│ │ ├── Sendmail.php
│ │ └── Smtp.php
├── Mime.php
└── Mime
│ ├── Decode.php
│ ├── Exception.php
│ ├── Message.php
│ └── Part.php
├── assets
├── css
│ └── piler.css
├── font
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ └── fontawesome-webfont.woff
├── ico
│ ├── apple-touch-icon-114-precomposed.png
│ ├── apple-touch-icon-144-precomposed.png
│ ├── apple-touch-icon-57-precomposed.png
│ ├── apple-touch-icon-72-precomposed.png
│ └── favicon.png
├── images
│ ├── 1x1.gif
│ ├── archive-logo-lg.png
│ ├── archive-logo-sm.png
│ ├── branding-logo.png
│ ├── fileicons
│ │ ├── audio.png
│ │ ├── doc.png
│ │ ├── file.png
│ │ ├── image.png
│ │ ├── odf.png
│ │ ├── pdf.png
│ │ ├── ppt.png
│ │ ├── rar.png
│ │ ├── swf.png
│ │ ├── txt.png
│ │ ├── vcf.png
│ │ ├── video.png
│ │ └── xls.png
│ ├── glyphicons-halflings-white.png
│ ├── glyphicons-halflings.png
│ └── remote.gif
└── js
│ ├── fileupload.js
│ ├── piler.js
│ └── resizer.js
├── controller
├── accounting
│ └── accounting.php
├── audit
│ ├── audit.php
│ ├── download.php
│ ├── helper.php
│ └── removal.php
├── common
│ ├── error.php
│ ├── footer.php
│ ├── layout-audit-removal.php
│ ├── layout-audit.php
│ ├── layout-email.php
│ ├── layout-empty.php
│ ├── layout-search.php
│ ├── layout.php
│ ├── menu.php
│ └── not_found.php
├── customer
│ ├── list.php
│ ├── remove.php
│ └── removelogo.php
├── domain
│ ├── domain.php
│ ├── domains.php
│ └── remove.php
├── folder
│ ├── copy.php
│ ├── edit.php
│ ├── folder.php
│ └── list.php
├── group
│ ├── add.php
│ ├── edit.php
│ ├── group.php
│ ├── list.php
│ └── remove.php
├── health
│ ├── health.php
│ └── worker.php
├── import
│ ├── jobs.php
│ ├── list.php
│ ├── remove.php
│ └── test.php
├── ldap
│ ├── domains.php
│ ├── list.php
│ ├── remove.php
│ └── test.php
├── login
│ ├── foureyes.php
│ ├── ga.php
│ ├── google.php
│ ├── login.php
│ ├── logout.php
│ └── sso.php
├── message
│ ├── attachment.php
│ ├── attachments.php
│ ├── bulkpdf.php
│ ├── bulkremove.php
│ ├── bulkrestore.php
│ ├── dl.php
│ ├── download.php
│ ├── folder.php
│ ├── headers.php
│ ├── journal.php
│ ├── note.php
│ ├── notspam.php
│ ├── pdf.php
│ ├── private.php
│ ├── rejectremove.php
│ ├── remove.php
│ ├── restore.php
│ └── view.php
├── policy
│ ├── apply.php
│ ├── exclusion.php
│ ├── folder.php
│ ├── legalhold.php
│ ├── removeexclusion.php
│ ├── removefolder.php
│ ├── removehold.php
│ ├── removeretention.php
│ ├── retention.php
│ └── updateretention.php
├── search
│ ├── autosearch.php
│ ├── folder.php
│ ├── helper.php
│ ├── load.php
│ ├── remove.php
│ ├── save.php
│ ├── search.php
│ └── tag.php
├── stat
│ ├── online.php
│ └── stat.php
└── user
│ ├── add.php
│ ├── edit.php
│ ├── list.php
│ ├── remove.php
│ └── settings.php
├── google-api
├── apiClient.php
├── auth
│ ├── apiAuth.php
│ ├── apiAuthNone.php
│ ├── apiLoginTicket.php
│ ├── apiOAuth.php
│ ├── apiOAuth2.php
│ ├── apiP12Signer.php
│ ├── apiPemVerifier.php
│ ├── apiSigner.php
│ └── apiVerifier.php
├── cache
│ ├── apiApcCache.php
│ ├── apiCache.php
│ ├── apiFileCache.php
│ └── apiMemcacheCache.php
├── config.php
├── contrib
│ ├── apiAdsenseService.php
│ ├── apiAnalyticsService.php
│ ├── apiBigqueryService.php
│ ├── apiBloggerService.php
│ ├── apiBooksService.php
│ ├── apiCalendarService.php
│ ├── apiCustomsearchService.php
│ ├── apiFreebaseService.php
│ ├── apiGanService.php
│ ├── apiLatitudeService.php
│ ├── apiModeratorService.php
│ ├── apiOauth2Service.php
│ ├── apiOrkutService.php
│ ├── apiPagespeedonlineService.php
│ ├── apiPlusService.php
│ ├── apiPredictionService.php
│ ├── apiShoppingService.php
│ ├── apiSiteVerificationService.php
│ ├── apiTasksService.php
│ ├── apiTranslateService.php
│ ├── apiUrlshortenerService.php
│ └── apiWebfontsService.php
├── external
│ ├── OAuth.php
│ └── URITemplateParser.php
├── io
│ ├── apiCacheParser.php
│ ├── apiCurlIO.php
│ ├── apiHttpRequest.php
│ ├── apiIO.php
│ ├── apiREST.php
│ ├── apiRPC.php
│ └── cacerts.pem
└── service
│ ├── apiBatch.php
│ ├── apiMediaFileUpload.php
│ ├── apiModel.php
│ ├── apiService.php
│ ├── apiServiceRequest.php
│ ├── apiServiceResource.php
│ └── apiUtils.php
├── images
└── .nofile
├── index.php
├── js.php
├── language
├── cn
│ └── messages.php
├── cz
│ └── messages.php
├── de
│ └── messages.php
├── en
│ └── messages.php
├── es
│ └── messages.php
├── fr
│ └── messages.php
├── hu
│ └── messages.php
├── it
│ └── messages.php
├── ja
│ └── messages.php
├── pl
│ └── messages.php
├── pt
│ └── messages.php
├── ru
│ └── messages.php
├── tr
│ └── messages.php
├── tw
│ └── messages.php
└── uk
│ └── messages.php
├── log
├── .htaccess
└── lock
├── model
├── accounting
│ └── accounting.php
├── audit
│ ├── audit.php
│ └── removal.php
├── domain
│ └── domain.php
├── folder
│ └── folder.php
├── google
│ └── google.php
├── group
│ └── group.php
├── health
│ └── health.php
├── mail
│ └── mail.php
├── message
│ ├── attachment.php
│ ├── pdf.php
│ ├── restore.php
│ └── zip.php
├── policy
│ ├── exclusion.php
│ ├── folder.php
│ ├── hold.php
│ └── retention.php
├── saas
│ ├── customer.php
│ ├── import.php
│ └── ldap.php
├── search
│ ├── auto.php
│ ├── message.php
│ └── search.php
├── stat
│ ├── chart.php
│ └── counter.php
└── user
│ ├── auth.php
│ ├── google.php
│ ├── import.php
│ ├── prefs.php
│ └── user.php
├── ok.txt
├── phpunit.xml
├── qr.php
├── securimage
├── AHGBold.ttf
├── LICENSE.txt
├── README.FONT.txt
├── README.txt
├── WavFile.php
├── backgrounds
│ ├── bg3.jpg
│ ├── bg4.jpg
│ ├── bg5.jpg
│ └── bg6.png
├── database
│ ├── .htaccess
│ ├── index.html
│ └── securimage.sq3
├── images
│ ├── audio_icon.png
│ └── refresh.png
├── securimage.php
├── securimage_play.php
├── securimage_play.swf
├── securimage_show.php
└── words
│ └── words.txt
├── sso.php
├── system
├── controller.php
├── database
│ ├── ldap.php
│ ├── mysql.php
│ ├── sphinx.php
│ └── sqlite.php
├── db.php
├── document.php
├── front.php
├── helper
│ ├── HTMLPurifier.standalone.php
│ ├── PHPGangsta_GoogleAuthenticator.php
│ ├── TrustedTimestamps.php
│ ├── mime.php
│ ├── phpqrcode
│ │ ├── CHANGELOG
│ │ ├── INSTALL
│ │ ├── LICENSE
│ │ ├── README
│ │ ├── VERSION
│ │ ├── bindings
│ │ │ └── tcpdf
│ │ │ │ └── qrcode.php
│ │ ├── index.php
│ │ ├── phpqrcode.php
│ │ ├── qrbitstream.php
│ │ ├── qrconfig.php
│ │ ├── qrconst.php
│ │ ├── qrencode.php
│ │ ├── qrimage.php
│ │ ├── qrinput.php
│ │ ├── qrlib.php
│ │ ├── qrmask.php
│ │ ├── qrrscode.php
│ │ ├── qrspec.php
│ │ ├── qrsplit.php
│ │ ├── qrtools.php
│ │ └── tools
│ │ │ ├── merge.bat
│ │ │ ├── merge.php
│ │ │ ├── merge.sh
│ │ │ ├── merged_config.php
│ │ │ └── merged_header.php
│ └── standalone
│ │ └── HTMLPurifier
│ │ ├── ConfigSchema
│ │ ├── Builder
│ │ │ ├── ConfigSchema.php
│ │ │ └── Xml.php
│ │ ├── Exception.php
│ │ ├── Interchange.php
│ │ ├── Interchange
│ │ │ ├── Directive.php
│ │ │ └── Id.php
│ │ ├── InterchangeBuilder.php
│ │ ├── Validator.php
│ │ ├── ValidatorAtom.php
│ │ ├── schema.ser
│ │ └── schema
│ │ │ ├── Attr.AllowedClasses.txt
│ │ │ ├── Attr.AllowedFrameTargets.txt
│ │ │ ├── Attr.AllowedRel.txt
│ │ │ ├── Attr.AllowedRev.txt
│ │ │ ├── Attr.ClassUseCDATA.txt
│ │ │ ├── Attr.DefaultImageAlt.txt
│ │ │ ├── Attr.DefaultInvalidImage.txt
│ │ │ ├── Attr.DefaultInvalidImageAlt.txt
│ │ │ ├── Attr.DefaultTextDir.txt
│ │ │ ├── Attr.EnableID.txt
│ │ │ ├── Attr.ForbiddenClasses.txt
│ │ │ ├── Attr.ID.HTML5.txt
│ │ │ ├── Attr.IDBlacklist.txt
│ │ │ ├── Attr.IDBlacklistRegexp.txt
│ │ │ ├── Attr.IDPrefix.txt
│ │ │ ├── Attr.IDPrefixLocal.txt
│ │ │ ├── AutoFormat.AutoParagraph.txt
│ │ │ ├── AutoFormat.Custom.txt
│ │ │ ├── AutoFormat.DisplayLinkURI.txt
│ │ │ ├── AutoFormat.Linkify.txt
│ │ │ ├── AutoFormat.PurifierLinkify.DocURL.txt
│ │ │ ├── AutoFormat.PurifierLinkify.txt
│ │ │ ├── AutoFormat.RemoveEmpty.Predicate.txt
│ │ │ ├── AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
│ │ │ ├── AutoFormat.RemoveEmpty.RemoveNbsp.txt
│ │ │ ├── AutoFormat.RemoveEmpty.txt
│ │ │ ├── AutoFormat.RemoveSpansWithoutAttributes.txt
│ │ │ ├── CSS.AllowDuplicates.txt
│ │ │ ├── CSS.AllowImportant.txt
│ │ │ ├── CSS.AllowTricky.txt
│ │ │ ├── CSS.AllowedFonts.txt
│ │ │ ├── CSS.AllowedProperties.txt
│ │ │ ├── CSS.DefinitionRev.txt
│ │ │ ├── CSS.ForbiddenProperties.txt
│ │ │ ├── CSS.MaxImgLength.txt
│ │ │ ├── CSS.Proprietary.txt
│ │ │ ├── CSS.Trusted.txt
│ │ │ ├── Cache.DefinitionImpl.txt
│ │ │ ├── Cache.SerializerPath.txt
│ │ │ ├── Cache.SerializerPermissions.txt
│ │ │ ├── Core.AggressivelyFixLt.txt
│ │ │ ├── Core.AllowHostnameUnderscore.txt
│ │ │ ├── Core.CollectErrors.txt
│ │ │ ├── Core.ColorKeywords.txt
│ │ │ ├── Core.ConvertDocumentToFragment.txt
│ │ │ ├── Core.DirectLexLineNumberSyncInterval.txt
│ │ │ ├── Core.DisableExcludes.txt
│ │ │ ├── Core.EnableIDNA.txt
│ │ │ ├── Core.Encoding.txt
│ │ │ ├── Core.EscapeInvalidChildren.txt
│ │ │ ├── Core.EscapeInvalidTags.txt
│ │ │ ├── Core.EscapeNonASCIICharacters.txt
│ │ │ ├── Core.HiddenElements.txt
│ │ │ ├── Core.Language.txt
│ │ │ ├── Core.LexerImpl.txt
│ │ │ ├── Core.MaintainLineNumbers.txt
│ │ │ ├── Core.NormalizeNewlines.txt
│ │ │ ├── Core.RemoveInvalidImg.txt
│ │ │ ├── Core.RemoveProcessingInstructions.txt
│ │ │ ├── Core.RemoveScriptContents.txt
│ │ │ ├── Filter.Custom.txt
│ │ │ ├── Filter.ExtractStyleBlocks.Escaping.txt
│ │ │ ├── Filter.ExtractStyleBlocks.Scope.txt
│ │ │ ├── Filter.ExtractStyleBlocks.TidyImpl.txt
│ │ │ ├── Filter.ExtractStyleBlocks.txt
│ │ │ ├── Filter.YouTube.txt
│ │ │ ├── HTML.Allowed.txt
│ │ │ ├── HTML.AllowedAttributes.txt
│ │ │ ├── HTML.AllowedComments.txt
│ │ │ ├── HTML.AllowedCommentsRegexp.txt
│ │ │ ├── HTML.AllowedElements.txt
│ │ │ ├── HTML.AllowedModules.txt
│ │ │ ├── HTML.Attr.Name.UseCDATA.txt
│ │ │ ├── HTML.BlockWrapper.txt
│ │ │ ├── HTML.CoreModules.txt
│ │ │ ├── HTML.CustomDoctype.txt
│ │ │ ├── HTML.DefinitionID.txt
│ │ │ ├── HTML.DefinitionRev.txt
│ │ │ ├── HTML.Doctype.txt
│ │ │ ├── HTML.FlashAllowFullScreen.txt
│ │ │ ├── HTML.ForbiddenAttributes.txt
│ │ │ ├── HTML.ForbiddenElements.txt
│ │ │ ├── HTML.MaxImgLength.txt
│ │ │ ├── HTML.Nofollow.txt
│ │ │ ├── HTML.Parent.txt
│ │ │ ├── HTML.Proprietary.txt
│ │ │ ├── HTML.SafeEmbed.txt
│ │ │ ├── HTML.SafeIframe.txt
│ │ │ ├── HTML.SafeObject.txt
│ │ │ ├── HTML.SafeScripting.txt
│ │ │ ├── HTML.Strict.txt
│ │ │ ├── HTML.TargetBlank.txt
│ │ │ ├── HTML.TargetNoreferrer.txt
│ │ │ ├── HTML.TidyAdd.txt
│ │ │ ├── HTML.TidyLevel.txt
│ │ │ ├── HTML.TidyRemove.txt
│ │ │ ├── HTML.Trusted.txt
│ │ │ ├── HTML.XHTML.txt
│ │ │ ├── Output.CommentScriptContents.txt
│ │ │ ├── Output.FixInnerHTML.txt
│ │ │ ├── Output.FlashCompat.txt
│ │ │ ├── Output.Newline.txt
│ │ │ ├── Output.SortAttr.txt
│ │ │ ├── Output.TidyFormat.txt
│ │ │ ├── Test.ForceNoIconv.txt
│ │ │ ├── URI.AllowedSchemes.txt
│ │ │ ├── URI.Base.txt
│ │ │ ├── URI.DefaultScheme.txt
│ │ │ ├── URI.DefinitionID.txt
│ │ │ ├── URI.DefinitionRev.txt
│ │ │ ├── URI.Disable.txt
│ │ │ ├── URI.DisableExternal.txt
│ │ │ ├── URI.DisableExternalResources.txt
│ │ │ ├── URI.DisableResources.txt
│ │ │ ├── URI.Host.txt
│ │ │ ├── URI.HostBlacklist.txt
│ │ │ ├── URI.MakeAbsolute.txt
│ │ │ ├── URI.Munge.txt
│ │ │ ├── URI.MungeResources.txt
│ │ │ ├── URI.MungeSecretKey.txt
│ │ │ ├── URI.OverrideAllowedSchemes.txt
│ │ │ ├── URI.SafeIframeRegexp.txt
│ │ │ └── info.ini
│ │ ├── EntityLookup
│ │ └── entities.ser
│ │ ├── Filter
│ │ ├── ExtractStyleBlocks.php
│ │ └── YouTube.php
│ │ ├── Language
│ │ ├── classes
│ │ │ └── en-x-test.php
│ │ └── messages
│ │ │ ├── en-x-test.php
│ │ │ ├── en-x-testmini.php
│ │ │ └── en.php
│ │ ├── Lexer
│ │ └── PH5P.php
│ │ ├── Printer.php
│ │ └── Printer
│ │ ├── CSSDefinition.php
│ │ ├── ConfigForm.css
│ │ ├── ConfigForm.js
│ │ ├── ConfigForm.php
│ │ └── HTMLDefinition.php
├── language.php
├── ldap.php
├── loader.php
├── mail.php
├── misc.php
├── model.php
├── registry.php
├── request.php
├── router.php
└── startup.php
├── templates
├── accounting
│ ├── accounting.tpl
│ └── accounts.tpl
├── audit
│ ├── audit.tpl
│ ├── helper.tpl
│ ├── removal.tpl
│ └── remove.tpl
├── common
│ ├── common.tpl
│ ├── error.tpl
│ ├── footer.tpl
│ ├── layout-audit-removal.tpl
│ ├── layout-audit.tpl
│ ├── layout-email.tpl
│ ├── layout-empty.tpl
│ ├── layout-search.tpl
│ ├── layout.tpl
│ ├── menu.tpl
│ ├── not_found.tpl
│ └── paging.tpl
├── customer
│ ├── list.tpl
│ └── remove.tpl
├── domain
│ ├── domains.tpl
│ ├── list.tpl
│ └── remove.tpl
├── folder
│ ├── edit.tpl
│ └── list.tpl
├── group
│ ├── add.tpl
│ ├── edit.tpl
│ └── list.tpl
├── health
│ ├── daily-report.tpl
│ ├── health.tpl
│ └── worker.tpl
├── import
│ ├── jobs.tpl
│ ├── list.tpl
│ └── remove.tpl
├── ldap
│ ├── domains.tpl
│ ├── list.tpl
│ └── remove.tpl
├── login
│ ├── foureyes.tpl
│ ├── ga.tpl
│ ├── login.tpl
│ └── logout.tpl
├── message
│ ├── auto.tpl
│ ├── bulkremove.tpl
│ ├── bulkrestore.tpl
│ ├── headers.tpl
│ ├── journal.tpl
│ ├── restore.tpl
│ └── view.tpl
├── policy
│ ├── apply.tpl
│ ├── exclusion.tpl
│ ├── folder.tpl
│ ├── legalhold.tpl
│ ├── retention.tpl
│ └── updateretention.tpl
├── search
│ ├── auto.tpl
│ ├── autosearch.tpl
│ ├── folder.tpl
│ ├── helper.tpl
│ ├── load.tpl
│ ├── modals.tpl
│ ├── search.tpl
│ └── tag.tpl
├── stat
│ ├── online.tpl
│ └── stat.tpl
└── user
│ ├── add.tpl
│ ├── edit.tpl
│ ├── list.tpl
│ ├── remove.tpl
│ └── settings.tpl
├── tests
├── EmailTest.php
├── FormatTest.php
├── MiscTest.php
├── ParseMessageTest.php
└── SplitMessageTest.php
└── tmp
└── index.html
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: jsuto
14 | thanks_dev: # Replace with a single thanks.dev username
15 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
16 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: "[BUG] "
5 | labels: ''
6 | assignees: jsuto
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Piler version:**
27 | - "piler -V" output
28 |
29 | **Additional context**
30 | Add any other context about the problem here.
31 |
32 | **Notes**
33 | If sensitive data is required to understand the situation, then don't copy it to the issue, rather send it to my address (see piler -V output)
34 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Create a feature request to improve the product
4 | title: "[FEATURE] "
5 | labels: ''
6 | assignees: jsuto
7 |
8 | ---
9 |
10 | **Describe the feature**
11 | A clear and concise description of what the feature is, how it should work
12 |
13 | **Additional context**
14 | Add any other context about the problem here.
15 |
16 | **Notes**
17 | If sensitive data is required to understand the situation, then don't copy it to the issue, rather send it to my address (see piler -V output)
18 |
--------------------------------------------------------------------------------
/.github/actions/build/image/action.yaml:
--------------------------------------------------------------------------------
1 | name: 'Build image'
2 |
3 | inputs:
4 | DOCKER_USERNAME:
5 | required: true
6 | DOCKER_TOKEN:
7 | required: true
8 | IMAGE_NAME:
9 | required: true
10 | LOAD:
11 | required: false
12 | default: true
13 | PACKAGE:
14 | required: true
15 | PLATFORMS:
16 | required: true
17 | PUSH:
18 | required: false
19 | default: false
20 |
21 | runs:
22 | using: 'composite'
23 |
24 | steps:
25 | - name: Set up Docker Buildx
26 | uses: docker/setup-buildx-action@v3
27 |
28 | - name: Login to Docker Hub
29 | if: github.workflow == 'Create release'
30 | uses: docker/login-action@v3
31 | with:
32 | username: ${{ inputs.DOCKER_USERNAME }}
33 | password: ${{ inputs.DOCKER_TOKEN }}
34 |
35 | - name: Build image from package
36 | uses: docker/build-push-action@v5
37 | with:
38 | context: docker
39 | push: ${{ inputs.PUSH }}
40 | load: ${{ inputs.LOAD }}
41 | tags: ${{ inputs.IMAGE_NAME }}
42 | platforms: ${{ inputs.PLATFORMS }}
43 | build-args: |
44 | PACKAGE=${{ inputs.PACKAGE }}
45 |
--------------------------------------------------------------------------------
/.github/actions/version/action.yaml:
--------------------------------------------------------------------------------
1 | name: 'Get version'
2 |
3 | outputs:
4 | COMMIT_ID:
5 | description: 'The short commit hash, eg. deadbeef'
6 | value: ${{ steps.generate-version.outputs.COMMIT_ID }}
7 |
8 | IMAGE_TAG:
9 | description: 'The image tag, eg. 1.2.3-deadbeef'
10 | value: ${{ steps.generate-version.outputs.IMAGE_TAG }}
11 |
12 | VERSION:
13 | description: 'The version number'
14 | value: ${{ steps.generate-version.outputs.VERSION }}
15 |
16 | runs:
17 | using: 'composite'
18 |
19 | steps:
20 | - name: 'Get version tag'
21 | id: generate-version
22 | run: |
23 | git log -1
24 | read -r VERSION < VERSION
25 | COMMIT_ID="$( git rev-parse --short HEAD )"
26 | IMAGE_TAG="${VERSION}-${COMMIT_ID}"
27 |
28 | echo "COMMIT_ID=$COMMIT_ID" >> $GITHUB_OUTPUT
29 | echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_OUTPUT
30 | echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
31 |
32 | echo "image tag: $IMAGE_TAG"
33 | shell: bash
34 |
--------------------------------------------------------------------------------
/.github/workflows/close-inactive-issues.yaml:
--------------------------------------------------------------------------------
1 | name: Close inactive issues
2 | on:
3 | schedule:
4 | - cron: "30 1 * * *"
5 |
6 | jobs:
7 | close-issues:
8 | runs-on: ubuntu-latest
9 | permissions:
10 | issues: write
11 | pull-requests: write
12 | steps:
13 | - uses: actions/stale@v5
14 | with:
15 | days-before-issue-stale: 14
16 | days-before-issue-close: 7
17 | stale-issue-label: "stale"
18 | stale-issue-message: "This issue is stale because it has been open for 14 days with no activity."
19 | close-issue-message: "This issue was closed because it has been inactive for 7 days since being marked as stale."
20 | days-before-pr-stale: -1
21 | days-before-pr-close: -1
22 | repo-token: ${{ secrets.GITHUB_TOKEN }}
23 |
--------------------------------------------------------------------------------
/.github/workflows/master.yaml:
--------------------------------------------------------------------------------
1 | name: Check master merge
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 |
8 | jobs:
9 |
10 | get-version:
11 | if: github.ref_name == 'master'
12 |
13 | runs-on:
14 | - self-hosted
15 | - X64
16 |
17 | outputs:
18 | IMAGE_TAG: ${{ steps.get-version.outputs.IMAGE_TAG }}
19 | COMMIT_ID: ${{ steps.get-version.outputs.COMMIT_ID }}
20 | VERSION: ${{ steps.get-version.outputs.VERSION }}
21 |
22 | steps:
23 | - uses: actions/checkout@v4
24 | with:
25 | sparse-checkout: |
26 | VERSION
27 | .github
28 | sparse-checkout-cone-mode: false
29 |
30 | - name: Get version
31 | id: get-version
32 | uses: ./.github/actions/version
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | Makefile
2 | *.o
3 | *.so
4 | *.a
5 | *.deb
6 | src/libpiler.so.0*
7 | src/piler
8 | src/pilerconf
9 | src/piler-smtp
10 | src/pileraget
11 | src/pilerexport
12 | src/pilerget
13 | src/pilerimport
14 | src/pilerstats
15 | src/pilertest
16 | src/reindex
17 | unit_tests/check_attachments
18 | unit_tests/check_decoder
19 | unit_tests/check_digest
20 | unit_tests/check_hash
21 | unit_tests/check_misc
22 | unit_tests/check_mydomains
23 | unit_tests/check_parser
24 | unit_tests/check_parser_utils
25 | unit_tests/check_rules
26 | unit_tests/smtp
27 | config.log
28 | config.status
29 | etc/piler.conf
30 | init.d/rc.piler
31 | init.d/rc.searchd
32 | params.h
33 | piler-config.h
34 | stamp-h1
35 | util/import.sh
36 | util/indexer.attachment.sh
37 | util/indexer.delta.sh
38 | util/indexer.main.sh
39 | util/postinstall.sh
40 | webui/config.php
41 |
--------------------------------------------------------------------------------
/.pre-commit-config.yaml:
--------------------------------------------------------------------------------
1 | # See https://pre-commit.com for more information
2 | # See https://pre-commit.com/hooks.html for more hooks
3 | # pre-commit run
4 | exclude: '^configure$'
5 | repos:
6 | - repo: https://github.com/pre-commit/pre-commit-hooks
7 | rev: v3.2.0
8 | hooks:
9 | - id: trailing-whitespace
10 | - id: end-of-file-fixer
11 | - id: check-yaml
12 | - id: check-added-large-files
13 | - repo: https://github.com/hadolint/hadolint
14 | rev: v2.10.0
15 | hooks:
16 | - id: hadolint
17 | - repo: https://github.com/shellcheck-py/shellcheck-py
18 | rev: v0.8.0.4
19 | hooks:
20 | - id: shellcheck
21 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @jsuto
2 |
--------------------------------------------------------------------------------
/CREDITS:
--------------------------------------------------------------------------------
1 | The FSF.hu Foundation (http://fsf.hu/) supported and donated piler within the
2 | "Free Software Application 2011 project." (http://fsf.hu/2011/09/27/szabad-szoftver-palyazat-2011/)
3 |
4 | Nemeth Adam reviewed the web interface, and gave lots of useful hints and insights to
5 | improve the web ui of piler.
6 |
7 | Remi Smith improved the restricted auditor feature for a better multitenancy,
8 | and invented the default theme.
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | piler, an enterprise level email archiving application
2 |
3 | Copyright (C) 2012-2024, Janos SUTO \n";
27 |
28 | exit;
29 | }
30 | else if(isset($_GET['toggle'])) {
31 | $p->toggle_ga($session->get('username'), $_GET['toggle']);
32 | }
33 |
34 |
35 | $ga = $p->get_ga_settings($session->get('username'));
36 |
37 | QRcode::png("otpauth://totp/" . SITE_NAME . "?secret=" . $ga['ga_secret'], false, "L", 4, 2);
38 |
--------------------------------------------------------------------------------
/webui/securimage/AHGBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/AHGBold.ttf
--------------------------------------------------------------------------------
/webui/securimage/README.FONT.txt:
--------------------------------------------------------------------------------
1 | AHGBold.ttf is used by Securimage under the following license:
2 |
3 | Alte Haas Grotesk is a typeface that look like an helvetica printed in an old Muller-Brockmann Book.
4 |
5 | These fonts are freeware and can be distributed as long as they are
6 | together with this text file.
7 |
8 | I would appreciate very much to see what you have done with it anyway.
9 |
10 | yann le coroller
11 | www.yannlecoroller.com
12 | yann@lecoroller.com
--------------------------------------------------------------------------------
/webui/securimage/backgrounds/bg3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/backgrounds/bg3.jpg
--------------------------------------------------------------------------------
/webui/securimage/backgrounds/bg4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/backgrounds/bg4.jpg
--------------------------------------------------------------------------------
/webui/securimage/backgrounds/bg5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/backgrounds/bg5.jpg
--------------------------------------------------------------------------------
/webui/securimage/backgrounds/bg6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/backgrounds/bg6.png
--------------------------------------------------------------------------------
/webui/securimage/database/.htaccess:
--------------------------------------------------------------------------------
1 | deny from all
2 |
--------------------------------------------------------------------------------
/webui/securimage/database/index.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webui/securimage/database/securimage.sq3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/database/securimage.sq3
--------------------------------------------------------------------------------
/webui/securimage/images/audio_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/images/audio_icon.png
--------------------------------------------------------------------------------
/webui/securimage/images/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/images/refresh.png
--------------------------------------------------------------------------------
/webui/securimage/securimage_play.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsuto/piler/0b9881448a2bf1ef44b61498b04d8f240ba59392/webui/securimage/securimage_play.swf
--------------------------------------------------------------------------------
/webui/sso.php:
--------------------------------------------------------------------------------
1 | dispatch($action, new Router('common/not_found'));
43 |
--------------------------------------------------------------------------------
/webui/system/db.php:
--------------------------------------------------------------------------------
1 | driver = new $driver($hostname, $username, $password, $database, $prefix);
13 | $this->database = $database;
14 | }
15 |
16 |
17 | public function select_db($db) {
18 | $this->driver->select_db($db);
19 | }
20 |
21 |
22 | public function query($sql, $arr = array()) {
23 | return $this->driver->query($sql, $arr);
24 | }
25 |
26 |
27 | public function countAffected() {
28 | return $this->driver->countAffected();
29 | }
30 |
31 |
32 | public function getLastId() {
33 | return $this->driver->getLastId();
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/webui/system/document.php:
--------------------------------------------------------------------------------
1 |
8 | This directive turns on auto-paragraphing, where double newlines are
9 | converted in to paragraphs whenever possible. Auto-paragraphing:
10 |
18 | p
tags must be allowed for this directive to take effect.
19 | We do not use br
tags for paragraphing, as that is
20 | semantically incorrect.
21 |
23 | To prevent auto-paragraphing as a content-producer, refrain from using
24 | double-newlines except to specify a new paragraph or in contexts where
25 | it has special meaning (whitespace usually has no meaning except in
26 | tags like pre
, so this should not be difficult.) To prevent
27 | the paragraphing of inline text adjacent to block elements, wrap them
28 | in div
tags (the behavior is slightly different outside of
29 | the root node.)
30 |
8 | This directive can be used to add custom auto-format injectors. 9 | Specify an array of injector names (class name minus the prefix) 10 | or concrete implementations. Injector class must exist. 11 |
12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt: -------------------------------------------------------------------------------- 1 | AutoFormat.DisplayLinkURI 2 | TYPE: bool 3 | VERSION: 3.2.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | This directive turns on the in-text display of URIs in <a> tags, and disables 8 | those links. For example, example becomes 9 | example (http://example.com). 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt: -------------------------------------------------------------------------------- 1 | AutoFormat.Linkify 2 | TYPE: bool 3 | VERSION: 2.0.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | 7 |
8 | This directive turns on linkification, auto-linking http, ftp and
9 | https URLs. a
tags with the href
attribute
10 | must be allowed.
11 |
8 | Location of configuration documentation to link to, let %s substitute 9 | into the configuration's namespace and directive names sans the percent 10 | sign. 11 |
12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt: -------------------------------------------------------------------------------- 1 | AutoFormat.PurifierLinkify 2 | TYPE: bool 3 | VERSION: 2.0.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | 7 |
8 | Internal auto-formatter that converts configuration directives in
9 | syntax %Namespace.Directive to links. a
tags
10 | with the href
attribute must be allowed.
11 |
7 | Given that an element has no contents, it will be removed by default, unless
8 | this predicate dictates otherwise. The predicate can either be an associative
9 | map from tag name to list of attributes that must be present for the element
10 | to be considered preserved: thus, the default always preserves colgroup
,
11 | th
and td
, and also iframe
if it
12 | has a src
.
13 |
7 | When %AutoFormat.RemoveEmpty and %AutoFormat.RemoveEmpty.RemoveNbsp 8 | are enabled, this directive defines what HTML elements should not be 9 | removede if they have only a non-breaking space in them. 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt: -------------------------------------------------------------------------------- 1 | AutoFormat.RemoveEmpty.RemoveNbsp 2 | TYPE: bool 3 | VERSION: 4.0.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | When enabled, HTML Purifier will treat any elements that contain only 8 | non-breaking spaces as well as regular whitespace as empty, and remove 9 | them when %AutoForamt.RemoveEmpty is enabled. 10 |
11 |12 | See %AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions for a list of elements 13 | that don't have this behavior applied to them. 14 |
15 | --# vim: et sw=4 sts=4 16 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt: -------------------------------------------------------------------------------- 1 | AutoFormat.RemoveSpansWithoutAttributes 2 | TYPE: bool 3 | VERSION: 4.0.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |
7 | This directive causes span
tags without any attributes
8 | to be removed. It will also remove spans that had all attributes
9 | removed during processing.
10 |
7 | By default, HTML Purifier removes duplicate CSS properties,
8 | like color:red; color:blue
. If this is set to
9 | true, duplicate properties are allowed.
10 |
display:none;
is considered a tricky property that
10 | will only be allowed if this directive is set to true.
11 | --# vim: et sw=4 sts=4
12 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt:
--------------------------------------------------------------------------------
1 | CSS.AllowedFonts
2 | TYPE: lookup/null
3 | VERSION: 4.3.0
4 | DEFAULT: NULL
5 | --DESCRIPTION--
6 |
7 | Allows you to manually specify a set of allowed fonts. If
8 | NULL
, all fonts are allowed. This directive
9 | affects generic names (serif, sans-serif, monospace, cursive,
10 | fantasy) as well as specific font families.
11 |
8 | If HTML Purifier's style attributes set is unsatisfactory for your needs, 9 | you can overload it with your own list of tags to allow. Note that this 10 | method is subtractive: it does its job by taking away from HTML Purifier 11 | usual feature set, so you cannot add an attribute that HTML Purifier never 12 | supported in the first place. 13 |
14 |15 | Warning: If another directive conflicts with the 16 | elements here, that directive will win and override. 17 |
18 | --# vim: et sw=4 sts=4 19 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt: -------------------------------------------------------------------------------- 1 | CSS.DefinitionRev 2 | TYPE: int 3 | VERSION: 2.0.0 4 | DEFAULT: 1 5 | --DESCRIPTION-- 6 | 7 |8 | Revision identifier for your custom definition. See 9 | %HTML.DefinitionRev for details. 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt: -------------------------------------------------------------------------------- 1 | CSS.ForbiddenProperties 2 | TYPE: lookup 3 | VERSION: 4.2.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 |7 | This is the logical inverse of %CSS.AllowedProperties, and it will 8 | override that directive or any other directive. If possible, 9 | %CSS.AllowedProperties is recommended over this directive, 10 | because it can sometimes be difficult to tell whether or not you've 11 | forbidden all of the CSS properties you truly would like to disallow. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt: -------------------------------------------------------------------------------- 1 | CSS.MaxImgLength 2 | TYPE: string/null 3 | DEFAULT: '1200px' 4 | VERSION: 3.1.1 5 | --DESCRIPTION-- 6 |
7 | This parameter sets the maximum allowed length on img
tags,
8 | effectively the width
and height
properties.
9 | Only absolute units of measurement (in, pt, pc, mm, cm) and pixels (px) are allowed. This is
10 | in place to prevent imagecrash attacks, disable with null at your own risk.
11 | This directive is similar to %HTML.MaxImgLength, and both should be
12 | concurrently edited, although there are
13 | subtle differences in the input format (the CSS max is a number with
14 | a unit).
15 |
8 | Whether or not to allow safe, proprietary CSS values. 9 |
10 | --# vim: et sw=4 sts=4 11 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt: -------------------------------------------------------------------------------- 1 | CSS.Trusted 2 | TYPE: bool 3 | VERSION: 4.2.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | Indicates whether or not the user's CSS input is trusted or not. If the 7 | input is trusted, a more expansive set of allowed properties. See 8 | also %HTML.Trusted. 9 | --# vim: et sw=4 sts=4 10 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt: -------------------------------------------------------------------------------- 1 | Cache.DefinitionImpl 2 | TYPE: string/null 3 | VERSION: 2.0.0 4 | DEFAULT: 'Serializer' 5 | --DESCRIPTION-- 6 | 7 | This directive defines which method to use when caching definitions, 8 | the complex data-type that makes HTML Purifier tick. Set to null 9 | to disable caching (not recommended, as you will see a definite 10 | performance degradation). 11 | 12 | --ALIASES-- 13 | Core.DefinitionCache 14 | --# vim: et sw=4 sts=4 15 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt: -------------------------------------------------------------------------------- 1 | Cache.SerializerPath 2 | TYPE: string/null 3 | VERSION: 2.0.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |8 | Absolute path with no trailing slash to store serialized definitions in. 9 | Default is within the 10 | HTML Purifier library inside DefinitionCache/Serializer. This 11 | path must be writable by the webserver. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt: -------------------------------------------------------------------------------- 1 | Cache.SerializerPermissions 2 | TYPE: int/null 3 | VERSION: 4.3.0 4 | DEFAULT: 0755 5 | --DESCRIPTION-- 6 | 7 |8 | Directory permissions of the files and directories created inside 9 | the DefinitionCache/Serializer or other custom serializer path. 10 |
11 |
12 | In HTML Purifier 4.8.0, this also supports NULL
,
13 | which means that no chmod'ing or directory creation shall
14 | occur.
15 |
7 | This directive enables aggressive pre-filter fixes HTML Purifier can 8 | perform in order to ensure that open angled-brackets do not get killed 9 | during parsing stage. Enabling this will result in two preg_replace_callback 10 | calls and at least two preg_replace calls for every HTML document parsed; 11 | if your users make very well-formed HTML, you can set this directive false. 12 | This has no effect when DirectLex is used. 13 |
14 |15 | Notice: This directive's default turned from false to true 16 | in HTML Purifier 3.2.0. 17 |
18 | --# vim: et sw=4 sts=4 19 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt: -------------------------------------------------------------------------------- 1 | Core.AllowHostnameUnderscore 2 | TYPE: bool 3 | VERSION: 4.6.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | By RFC 1123, underscores are not permitted in host names. 8 | (This is in contrast to the specification for DNS, RFC 9 | 2181, which allows underscores.) 10 | However, most browsers do the right thing when faced with 11 | an underscore in the host name, and so some poorly written 12 | websites are written with the expectation this should work. 13 | Setting this parameter to true relaxes our allowed character 14 | check so that underscores are permitted. 15 |
16 | --# vim: et sw=4 sts=4 17 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt: -------------------------------------------------------------------------------- 1 | Core.CollectErrors 2 | TYPE: bool 3 | VERSION: 2.0.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | 7 | Whether or not to collect errors found while filtering the document. This 8 | is a useful way to give feedback to your users. Warning: 9 | Currently this feature is very patchy and experimental, with lots of 10 | possible error messages not yet implemented. It will not cause any 11 | problems, but it may not help your users either. 12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt: -------------------------------------------------------------------------------- 1 | Core.ColorKeywords 2 | TYPE: hash 3 | VERSION: 2.0.0 4 | --DEFAULT-- 5 | array ( 6 | 'maroon' => '#800000', 7 | 'red' => '#FF0000', 8 | 'orange' => '#FFA500', 9 | 'yellow' => '#FFFF00', 10 | 'olive' => '#808000', 11 | 'purple' => '#800080', 12 | 'fuchsia' => '#FF00FF', 13 | 'white' => '#FFFFFF', 14 | 'lime' => '#00FF00', 15 | 'green' => '#008000', 16 | 'navy' => '#000080', 17 | 'blue' => '#0000FF', 18 | 'aqua' => '#00FFFF', 19 | 'teal' => '#008080', 20 | 'black' => '#000000', 21 | 'silver' => '#C0C0C0', 22 | 'gray' => '#808080', 23 | ) 24 | --DESCRIPTION-- 25 | 26 | Lookup array of color names to six digit hexadecimal number corresponding 27 | to color, with preceding hash mark. Used when parsing colors. The lookup 28 | is done in a case-insensitive manner. 29 | --# vim: et sw=4 sts=4 30 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt: -------------------------------------------------------------------------------- 1 | Core.ConvertDocumentToFragment 2 | TYPE: bool 3 | DEFAULT: true 4 | --DESCRIPTION-- 5 | 6 | This parameter determines whether or not the filter should convert 7 | input that is a full document with html and body tags to a fragment 8 | of just the contents of a body tag. This parameter is simply something 9 | HTML Purifier can do during an edge-case: for most inputs, this 10 | processing is not necessary. 11 | 12 | --ALIASES-- 13 | Core.AcceptFullDocuments 14 | --# vim: et sw=4 sts=4 15 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt: -------------------------------------------------------------------------------- 1 | Core.DirectLexLineNumberSyncInterval 2 | TYPE: int 3 | VERSION: 2.0.0 4 | DEFAULT: 0 5 | --DESCRIPTION-- 6 | 7 |8 | Specifies the number of tokens the DirectLex line number tracking 9 | implementations should process before attempting to resyncronize the 10 | current line count by manually counting all previous new-lines. When 11 | at 0, this functionality is disabled. Lower values will decrease 12 | performance, and this is only strictly necessary if the counting 13 | algorithm is buggy (in which case you should report it as a bug). 14 | This has no effect when %Core.MaintainLineNumbers is disabled or DirectLex is 15 | not being used. 16 |
17 | --# vim: et sw=4 sts=4 18 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt: -------------------------------------------------------------------------------- 1 | Core.DisableExcludes 2 | TYPE: bool 3 | DEFAULT: false 4 | VERSION: 4.5.0 5 | --DESCRIPTION-- 6 |
7 | This directive disables SGML-style exclusions, e.g. the exclusion of
8 | <object>
in any descendant of a
9 | <pre>
tag. Disabling excludes will allow some
10 | invalid documents to pass through HTML Purifier, but HTML Purifier
11 | will also be less likely to accidentally remove large documents during
12 | processing.
13 |
Warning: this configuration option is no longer does anything as of 4.6.0.
6 | 7 |When true, a child is found that is not allowed in the context of the 8 | parent element will be transformed into text as if it were ASCII. When 9 | false, that element and all internal tags will be dropped, though text will 10 | be preserved. There is no option for dropping the element but preserving 11 | child nodes.
12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt: -------------------------------------------------------------------------------- 1 | Core.EscapeInvalidTags 2 | TYPE: bool 3 | DEFAULT: false 4 | --DESCRIPTION-- 5 | When true, invalid tags will be written back to the document as plain text. 6 | Otherwise, they are silently dropped. 7 | --# vim: et sw=4 sts=4 8 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt: -------------------------------------------------------------------------------- 1 | Core.EscapeNonASCIICharacters 2 | TYPE: bool 3 | VERSION: 1.4.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | This directive overcomes a deficiency in %Core.Encoding by blindly 7 | converting all non-ASCII characters into decimal numeric entities before 8 | converting it to its native encoding. This means that even characters that 9 | can be expressed in the non-UTF-8 encoding will be entity-ized, which can 10 | be a real downer for encodings like Big5. It also assumes that the ASCII 11 | repetoire is available, although this is the case for almost all encodings. 12 | Anyway, use UTF-8! 13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt: -------------------------------------------------------------------------------- 1 | Core.HiddenElements 2 | TYPE: lookup 3 | --DEFAULT-- 4 | array ( 5 | 'script' => true, 6 | 'style' => true, 7 | ) 8 | --DESCRIPTION-- 9 | 10 |
11 | This directive is a lookup array of elements which should have their
12 | contents removed when they are not allowed by the HTML definition.
13 | For example, the contents of a script
tag are not
14 | normally shown in a document, so if script tags are to be removed,
15 | their contents should be removed to. This is opposed to a b
16 | tag, which defines some presentational changes but does not hide its
17 | contents.
18 |
8 | This parameter determines what lexer implementation can be used. The 9 | valid values are: 10 |
11 |HTMLPurifier_Lexer
.
30 | I may remove this option simply because I don't expect anyone
31 | to use it.
32 | 8 | If true, HTML Purifier will add line number information to all tokens. 9 | This is useful when error reporting is turned on, but can result in 10 | significant performance degradation and should not be used when 11 | unnecessary. This directive must be used with the DirectLex lexer, 12 | as the DOMLex lexer does not (yet) support this functionality. 13 | If the value is null, an appropriate value will be selected based 14 | on other configuration. 15 |
16 | --# vim: et sw=4 sts=4 17 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt: -------------------------------------------------------------------------------- 1 | Core.NormalizeNewlines 2 | TYPE: bool 3 | VERSION: 4.2.0 4 | DEFAULT: true 5 | --DESCRIPTION-- 6 |
7 | Whether or not to normalize newlines to the operating
8 | system default. When false
, HTML Purifier
9 | will attempt to preserve mixed newline files.
10 |
8 | This directive enables pre-emptive URI checking in img
9 | tags, as the attribute validation strategy is not authorized to
10 | remove elements from the document. Revert to pre-1.3.0 behavior by setting to false.
11 |
<? ...
7 | ?>
, remove it out-right. This may be useful if the HTML
8 | you are validating contains XML processing instruction gunk, however,
9 | it can also be user-unfriendly for people attempting to post PHP
10 | snippets.
11 | --# vim: et sw=4 sts=4
12 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt:
--------------------------------------------------------------------------------
1 | Core.RemoveScriptContents
2 | TYPE: bool/null
3 | DEFAULT: NULL
4 | VERSION: 2.0.0
5 | DEPRECATED-VERSION: 2.1.0
6 | DEPRECATED-USE: Core.HiddenElements
7 | --DESCRIPTION--
8 | 9 | This directive enables HTML Purifier to remove not only script tags 10 | but all of their contents. 11 |
12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt: -------------------------------------------------------------------------------- 1 | Filter.Custom 2 | TYPE: list 3 | VERSION: 3.1.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 |
7 | This directive can be used to add custom filters; it is nearly the
8 | equivalent of the now deprecated HTMLPurifier->addFilter()
9 | method. Specify an array of concrete implementations.
10 |
9 | Whether or not to escape the dangerous characters <, > and & 10 | as \3C, \3E and \26, respectively. This is can be safely set to false 11 | if the contents of StyleBlocks will be placed in an external stylesheet, 12 | where there is no risk of it being interpreted as HTML. 13 |
14 | --# vim: et sw=4 sts=4 15 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt: -------------------------------------------------------------------------------- 1 | Filter.ExtractStyleBlocks.TidyImpl 2 | TYPE: mixed/null 3 | VERSION: 3.1.0 4 | DEFAULT: NULL 5 | ALIASES: FilterParam.ExtractStyleBlocksTidyImpl 6 | --DESCRIPTION-- 7 |
8 | If left NULL, HTML Purifier will attempt to instantiate a csstidy
9 | class to use for internal cleaning. This will usually be good enough.
10 |
12 | However, for trusted user input, you can set this to false
to
13 | disable cleaning. In addition, you can supply your own concrete implementation
14 | of Tidy's interface to use, although I don't know why you'd want to do that.
15 |
7 | Warning: Deprecated in favor of %HTML.SafeObject and 8 | %Output.FlashCompat (turn both on to allow YouTube videos and other 9 | Flash content). 10 |
11 |12 | This directive enables YouTube video embedding in HTML Purifier. Check 13 | this document 14 | on embedding videos for more information on what this filter does. 15 |
16 | --# vim: et sw=4 sts=4 17 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt: -------------------------------------------------------------------------------- 1 | HTML.Allowed 2 | TYPE: itext/null 3 | VERSION: 2.0.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |
8 | This is a preferred convenience directive that combines
9 | %HTML.AllowedElements and %HTML.AllowedAttributes.
10 | Specify elements and attributes that are allowed using:
11 | element1[attr1|attr2],element2...
. For example,
12 | if you would like to only allow paragraphs and links, specify
13 | a[href],p
. You can specify attributes that apply
14 | to all elements using an asterisk, e.g. *[lang]
.
15 | You can also use newlines instead of commas to separate elements.
16 |
18 | Warning:
19 | All of the constraints on the component directives are still enforced.
20 | The syntax is a subset of TinyMCE's valid_elements
21 | whitelist: directly copy-pasting it here will probably result in
22 | broken whitelists. If %HTML.AllowedElements or %HTML.AllowedAttributes
23 | are set, this directive has no effect.
24 |
8 | If HTML Purifier's attribute set is unsatisfactory, overload it! 9 | The syntax is "tag.attr" or "*.attr" for the global attributes 10 | (style, id, class, dir, lang, xml:lang). 11 |
12 |13 | Warning: If another directive conflicts with the 14 | elements here, that directive will win and override. For 15 | example, %HTML.EnableAttrID will take precedence over *.id in this 16 | directive. You must set that directive to true before you can use 17 | IDs at all. 18 |
19 | --# vim: et sw=4 sts=4 20 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt: -------------------------------------------------------------------------------- 1 | HTML.AllowedComments 2 | TYPE: lookup 3 | VERSION: 4.4.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 | A whitelist which indicates what explicit comment bodies should be 7 | allowed, modulo leading and trailing whitespace. See also %HTML.AllowedCommentsRegexp 8 | (these directives are union'ed together, so a comment is considered 9 | valid if any directive deems it valid.) 10 | --# vim: et sw=4 sts=4 11 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt: -------------------------------------------------------------------------------- 1 | HTML.AllowedCommentsRegexp 2 | TYPE: string/null 3 | VERSION: 4.4.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | A regexp, which if it matches the body of a comment, indicates that 7 | it should be allowed. Trailing and leading spaces are removed prior 8 | to running this regular expression. 9 | Warning: Make sure you specify 10 | correct anchor metacharacters^regex$
, otherwise you may accept
11 | comments that you did not mean to! In particular, the regex /foo|bar/
12 | is probably not sufficiently strict, since it also allows foobar
.
13 | See also %HTML.AllowedComments (these directives are union'ed together,
14 | so a comment is considered valid if any directive deems it valid.)
15 | --# vim: et sw=4 sts=4
16 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt:
--------------------------------------------------------------------------------
1 | HTML.AllowedElements
2 | TYPE: lookup/null
3 | VERSION: 1.3.0
4 | DEFAULT: NULL
5 | --DESCRIPTION--
6 | 7 | If HTML Purifier's tag set is unsatisfactory for your needs, you can 8 | overload it with your own list of tags to allow. If you change 9 | this, you probably also want to change %HTML.AllowedAttributes; see 10 | also %HTML.Allowed which lets you set allowed elements and 11 | attributes at the same time. 12 |
13 |14 | If you attempt to allow an element that HTML Purifier does not know 15 | about, HTML Purifier will raise an error. You will need to manually 16 | tell HTML Purifier about this element by using the 17 | advanced customization features. 18 |
19 |20 | Warning: If another directive conflicts with the 21 | elements here, that directive will win and override. 22 |
23 | --# vim: et sw=4 sts=4 24 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt: -------------------------------------------------------------------------------- 1 | HTML.AllowedModules 2 | TYPE: lookup/null 3 | VERSION: 2.0.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |8 | A doctype comes with a set of usual modules to use. Without having 9 | to mucking about with the doctypes, you can quickly activate or 10 | disable these modules by specifying which modules you wish to allow 11 | with this directive. This is most useful for unit testing specific 12 | modules, although end users may find it useful for their own ends. 13 |
14 |15 | If you specify a module that does not exist, the manager will silently 16 | fail to use it, so be careful! User-defined modules are not affected 17 | by this directive. Modules defined in %HTML.CoreModules are not 18 | affected by this directive. 19 |
20 | --# vim: et sw=4 sts=4 21 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt: -------------------------------------------------------------------------------- 1 | HTML.Attr.Name.UseCDATA 2 | TYPE: bool 3 | DEFAULT: false 4 | VERSION: 4.0.0 5 | --DESCRIPTION-- 6 | The W3C specification DTD defines the name attribute to be CDATA, not ID, due 7 | to limitations of DTD. In certain documents, this relaxed behavior is desired, 8 | whether it is to specify duplicate names, or to specify names that would be 9 | illegal IDs (for example, names that begin with a digit.) Set this configuration 10 | directive to true to use the relaxed parsing rules. 11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt: -------------------------------------------------------------------------------- 1 | HTML.BlockWrapper 2 | TYPE: string 3 | VERSION: 1.3.0 4 | DEFAULT: 'p' 5 | --DESCRIPTION-- 6 | 7 |8 | String name of element to wrap inline elements that are inside a block 9 | context. This only occurs in the children of blockquote in strict mode. 10 |
11 |
12 | Example: by default value,
13 | <blockquote>Foo</blockquote>
would become
14 | <blockquote><p>Foo</p></blockquote>
.
15 | The <p>
tags can be replaced with whatever you desire,
16 | as long as it is a block level element.
17 |
17 | Certain modularized doctypes (XHTML, namely), have certain modules 18 | that must be included for the doctype to be an conforming document 19 | type: put those modules here. By default, XHTML's core modules 20 | are used. You can set this to a blank array to disable core module 21 | protection, but this is not recommended. 22 |
23 | --# vim: et sw=4 sts=4 24 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt: -------------------------------------------------------------------------------- 1 | HTML.CustomDoctype 2 | TYPE: string/null 3 | VERSION: 2.0.1 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 | A custom doctype for power-users who defined their own document 8 | type. This directive only applies when %HTML.Doctype is blank. 9 | --# vim: et sw=4 sts=4 10 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt: -------------------------------------------------------------------------------- 1 | HTML.DefinitionRev 2 | TYPE: int 3 | VERSION: 2.0.0 4 | DEFAULT: 1 5 | --DESCRIPTION-- 6 | 7 |8 | Revision identifier for your custom definition specified in 9 | %HTML.DefinitionID. This serves the same purpose: uniquely identifying 10 | your custom definition, but this one does so in a chronological 11 | context: revision 3 is more up-to-date then revision 2. Thus, when 12 | this gets incremented, the cache handling is smart enough to clean 13 | up any older revisions of your definition as well as flush the 14 | cache. 15 |
16 | --# vim: et sw=4 sts=4 17 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt: -------------------------------------------------------------------------------- 1 | HTML.Doctype 2 | TYPE: string/null 3 | DEFAULT: NULL 4 | --DESCRIPTION-- 5 | Doctype to use during filtering. Technically speaking this is not actually 6 | a doctype (as it does not identify a corresponding DTD), but we are using 7 | this name for sake of simplicity. When non-blank, this will override any 8 | older directives like %HTML.XHTML or %HTML.Strict. 9 | --ALLOWED-- 10 | 'HTML 4.01 Transitional', 'HTML 4.01 Strict', 'XHTML 1.0 Transitional', 'XHTML 1.0 Strict', 'XHTML 1.1' 11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt: -------------------------------------------------------------------------------- 1 | HTML.FlashAllowFullScreen 2 | TYPE: bool 3 | VERSION: 4.2.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |
7 | Whether or not to permit embedded Flash content from
8 | %HTML.SafeObject to expand to the full screen. Corresponds to
9 | the allowFullScreen
parameter.
10 |
7 | While this directive is similar to %HTML.AllowedAttributes, for
8 | forwards-compatibility with XML, this attribute has a different syntax. Instead of
9 | tag.attr
, use tag@attr
. To disallow href
10 | attributes in a
tags, set this directive to
11 | a@href
. You can also disallow an attribute globally with
12 | attr
or *@attr
(either syntax is fine; the latter
13 | is provided for consistency with %HTML.AllowedAttributes).
14 |
16 | Warning: This directive complements %HTML.ForbiddenElements, 17 | accordingly, check 18 | out that directive for a discussion of why you 19 | should think twice before using this directive. 20 |
21 | --# vim: et sw=4 sts=4 22 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt: -------------------------------------------------------------------------------- 1 | HTML.ForbiddenElements 2 | TYPE: lookup 3 | VERSION: 3.1.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 |7 | This was, perhaps, the most requested feature ever in HTML 8 | Purifier. Please don't abuse it! This is the logical inverse of 9 | %HTML.AllowedElements, and it will override that directive, or any 10 | other directive. 11 |
12 |
13 | If possible, %HTML.Allowed is recommended over this directive, because it
14 | can sometimes be difficult to tell whether or not you've forbidden all of
15 | the behavior you would like to disallow. If you forbid img
16 | with the expectation of preventing images on your site, you'll be in for
17 | a nasty surprise when people start using the background-image
18 | CSS property.
19 |
7 | This directive controls the maximum number of pixels in the width and
8 | height attributes in img
tags. This is
9 | in place to prevent imagecrash attacks, disable with null at your own risk.
10 | This directive is similar to %CSS.MaxImgLength, and both should be
11 | concurrently edited, although there are
12 | subtle differences in the input format (the HTML max is an integer).
13 |
8 | String name of element that HTML fragment passed to library will be 9 | inserted in. An interesting variation would be using span as the 10 | parent element, meaning that only inline tags would be allowed. 11 |
12 | --# vim: et sw=4 sts=4 13 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt: -------------------------------------------------------------------------------- 1 | HTML.Proprietary 2 | TYPE: bool 3 | VERSION: 3.1.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |
7 | Whether or not to allow proprietary elements and attributes in your
8 | documents, as per HTMLPurifier_HTMLModule_Proprietary
.
9 | Warning: This can cause your documents to stop
10 | validating!
11 |
7 | Whether or not to permit embed tags in documents, with a number of extra 8 | security features added to prevent script execution. This is similar to 9 | what websites like MySpace do to embed tags. Embed is a proprietary 10 | element and will cause your website to stop validating; you should 11 | see if you can use %Output.FlashCompat with %HTML.SafeObject instead 12 | first.
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt: -------------------------------------------------------------------------------- 1 | HTML.SafeIframe 2 | TYPE: bool 3 | VERSION: 4.4.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | Whether or not to permit iframe tags in untrusted documents. This 8 | directive must be accompanied by a whitelist of permitted iframes, 9 | such as %URI.SafeIframeRegexp, otherwise it will fatally error. 10 | This directive has no effect on strict doctypes, as iframes are not 11 | valid. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt: -------------------------------------------------------------------------------- 1 | HTML.SafeObject 2 | TYPE: bool 3 | VERSION: 3.1.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | Whether or not to permit object tags in documents, with a number of extra 8 | security features added to prevent script execution. This is similar to 9 | what websites like MySpace do to object tags. You should also enable 10 | %Output.FlashCompat in order to generate Internet Explorer 11 | compatibility code for your object tags. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt: -------------------------------------------------------------------------------- 1 | HTML.SafeScripting 2 | TYPE: lookup 3 | VERSION: 4.5.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 |7 | Whether or not to permit script tags to external scripts in documents. 8 | Inline scripting is not allowed, and the script must match an explicit whitelist. 9 |
10 | --# vim: et sw=4 sts=4 11 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt: -------------------------------------------------------------------------------- 1 | HTML.Strict 2 | TYPE: bool 3 | VERSION: 1.3.0 4 | DEFAULT: false 5 | DEPRECATED-VERSION: 1.7.0 6 | DEPRECATED-USE: HTML.Doctype 7 | --DESCRIPTION-- 8 | Determines whether or not to use Transitional (loose) or Strict rulesets. 9 | --# vim: et sw=4 sts=4 10 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt: -------------------------------------------------------------------------------- 1 | HTML.TargetBlank 2 | TYPE: bool 3 | VERSION: 4.4.0 4 | DEFAULT: FALSE 5 | --DESCRIPTION-- 6 | If enabled,target=blank
attributes are added to all outgoing links.
7 | (This includes links from an HTTPS version of a page to an HTTP version.)
8 | --# vim: et sw=4 sts=4
9 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt:
--------------------------------------------------------------------------------
1 | HTML.TargetNoreferrer
2 | TYPE: bool
3 | VERSION: 4.8.0
4 | DEFAULT: TRUE
5 | --DESCRIPTION--
6 | If enabled, noreferrer rel attributes are added to links which have
7 | a target attribute associated with them. This prevents malicious
8 | destinations from overwriting the original window.
9 | --# vim: et sw=4 sts=4
10 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt:
--------------------------------------------------------------------------------
1 | HTML.TidyAdd
2 | TYPE: lookup
3 | VERSION: 2.0.0
4 | DEFAULT: array()
5 | --DESCRIPTION--
6 |
7 | Fixes to add to the default set of Tidy fixes as per your level.
8 | --# vim: et sw=4 sts=4
9 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt:
--------------------------------------------------------------------------------
1 | HTML.TidyLevel
2 | TYPE: string
3 | VERSION: 2.0.0
4 | DEFAULT: 'medium'
5 | --DESCRIPTION--
6 |
7 | General level of cleanliness the Tidy module should enforce. 8 | There are four allowed values:
9 |
7 | If true, HTML Purifier will protect against Internet Explorer's
8 | mishandling of the innerHTML
attribute by appending
9 | a space to any attribute that does not contain angled brackets, spaces
10 | or quotes, but contains a backtick. This slightly changes the
11 | semantics of any given attribute, so if this is unacceptable and
12 | you do not use innerHTML
on any of your pages, you can
13 | turn this directive off.
14 |
7 | If true, HTML Purifier will generate Internet Explorer compatibility 8 | code for all object code. This is highly recommended if you enable 9 | %HTML.SafeObject. 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt: -------------------------------------------------------------------------------- 1 | Output.Newline 2 | TYPE: string/null 3 | VERSION: 2.0.1 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |8 | Newline string to format final output with. If left null, HTML Purifier 9 | will auto-detect the default newline type of the system and use that; 10 | you can manually override it here. Remember, \r\n is Windows, \r 11 | is Mac, and \n is Unix. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt: -------------------------------------------------------------------------------- 1 | Output.SortAttr 2 | TYPE: bool 3 | VERSION: 3.2.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |
7 | If true, HTML Purifier will sort attributes by name before writing them back
8 | to the document, converting a tag like: <el b="" a="" c="" />
9 | to <el a="" b="" c="" />
. This is a workaround for
10 | a bug in FCKeditor which causes it to swap attributes order, adding noise
11 | to text diffs. If you're not seeing this bug, chances are, you don't need
12 | this directive.
13 |
7 | Determines whether or not to run Tidy on the final output for pretty 8 | formatting reasons, such as indentation and wrap. 9 |
10 |11 | This can greatly improve readability for editors who are hand-editing 12 | the HTML, but is by no means necessary as HTML Purifier has already 13 | fixed all major errors the HTML may have had. Tidy is a non-default 14 | extension, and this directive will silently fail if Tidy is not 15 | available. 16 |
17 |18 | If you are looking to make the overall look of your page's source 19 | better, I recommend running Tidy on the entire page rather than just 20 | user-content (after all, the indentation relative to the containing 21 | blocks will be incorrect). 22 |
23 | --ALIASES-- 24 | Core.TidyFormat 25 | --# vim: et sw=4 sts=4 26 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt: -------------------------------------------------------------------------------- 1 | Test.ForceNoIconv 2 | TYPE: bool 3 | DEFAULT: false 4 | --DESCRIPTION-- 5 | When set to true, HTMLPurifier_Encoder will act as if iconv does not exist 6 | and use only pure PHP implementations. 7 | --# vim: et sw=4 sts=4 8 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt: -------------------------------------------------------------------------------- 1 | URI.AllowedSchemes 2 | TYPE: lookup 3 | --DEFAULT-- 4 | array ( 5 | 'http' => true, 6 | 'https' => true, 7 | 'mailto' => true, 8 | 'ftp' => true, 9 | 'nntp' => true, 10 | 'news' => true, 11 | 'tel' => true, 12 | ) 13 | --DESCRIPTION-- 14 | Whitelist that defines the schemes that a URI is allowed to have. This 15 | prevents XSS attacks from using pseudo-schemes like javascript or mocha. 16 | There is also support for thedata
and file
17 | URI schemes, but they are not enabled by default.
18 | --# vim: et sw=4 sts=4
19 |
--------------------------------------------------------------------------------
/webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.Base.txt:
--------------------------------------------------------------------------------
1 | URI.Base
2 | TYPE: string/null
3 | VERSION: 2.1.0
4 | DEFAULT: NULL
5 | --DESCRIPTION--
6 |
7 | 8 | The base URI is the URI of the document this purified HTML will be 9 | inserted into. This information is important if HTML Purifier needs 10 | to calculate absolute URIs from relative URIs, such as when %URI.MakeAbsolute 11 | is on. You may use a non-absolute URI for this value, but behavior 12 | may vary (%URI.MakeAbsolute deals nicely with both absolute and 13 | relative paths, but forwards-compatibility is not guaranteed). 14 | Warning: If set, the scheme on this URI 15 | overrides the one specified by %URI.DefaultScheme. 16 |
17 | --# vim: et sw=4 sts=4 18 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt: -------------------------------------------------------------------------------- 1 | URI.DefaultScheme 2 | TYPE: string 3 | DEFAULT: 'http' 4 | --DESCRIPTION-- 5 | 6 |7 | Defines through what scheme the output will be served, in order to 8 | select the proper object validator when no scheme information is present. 9 |
10 | --# vim: et sw=4 sts=4 11 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt: -------------------------------------------------------------------------------- 1 | URI.DefinitionID 2 | TYPE: string/null 3 | VERSION: 2.1.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |8 | Unique identifier for a custom-built URI definition. If you want 9 | to add custom URIFilters, you must specify this value. 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt: -------------------------------------------------------------------------------- 1 | URI.DefinitionRev 2 | TYPE: int 3 | VERSION: 2.1.0 4 | DEFAULT: 1 5 | --DESCRIPTION-- 6 | 7 |8 | Revision identifier for your custom definition. See 9 | %HTML.DefinitionRev for details. 10 |
11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt: -------------------------------------------------------------------------------- 1 | URI.Disable 2 | TYPE: bool 3 | VERSION: 1.3.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | 7 |8 | Disables all URIs in all forms. Not sure why you'd want to do that 9 | (after all, the Internet's founded on the notion of a hyperlink). 10 |
11 | 12 | --ALIASES-- 13 | Attr.DisableURI 14 | --# vim: et sw=4 sts=4 15 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt: -------------------------------------------------------------------------------- 1 | URI.DisableExternal 2 | TYPE: bool 3 | VERSION: 1.2.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | Disables links to external websites. This is a highly effective anti-spam 7 | and anti-pagerank-leech measure, but comes at a hefty price: nolinks or 8 | images outside of your domain will be allowed. Non-linkified URIs will 9 | still be preserved. If you want to be able to link to subdomains or use 10 | absolute URIs, specify %URI.Host for your website. 11 | --# vim: et sw=4 sts=4 12 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt: -------------------------------------------------------------------------------- 1 | URI.DisableExternalResources 2 | TYPE: bool 3 | VERSION: 1.3.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | Disables the embedding of external resources, preventing users from 7 | embedding things like images from other hosts. This prevents access 8 | tracking (good for email viewers), bandwidth leeching, cross-site request 9 | forging, goatse.cx posting, and other nasties, but also results in a loss 10 | of end-user functionality (they can't directly post a pic they posted from 11 | Flickr anymore). Use it if you don't have a robust user-content moderation 12 | team. 13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt: -------------------------------------------------------------------------------- 1 | URI.DisableResources 2 | TYPE: bool 3 | VERSION: 4.2.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |7 | Disables embedding resources, essentially meaning no pictures. You can 8 | still link to them though. See %URI.DisableExternalResources for why 9 | this might be a good idea. 10 |
11 |12 | Note: While this directive has been available since 1.3.0, 13 | it didn't actually start doing anything until 4.2.0. 14 |
15 | --# vim: et sw=4 sts=4 16 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.Host.txt: -------------------------------------------------------------------------------- 1 | URI.Host 2 | TYPE: string/null 3 | VERSION: 1.2.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 | 7 |8 | Defines the domain name of the server, so we can determine whether or 9 | an absolute URI is from your website or not. Not strictly necessary, 10 | as users should be using relative URIs to reference resources on your 11 | website. It will, however, let you use absolute URIs to link to 12 | subdomains of the domain you post here: i.e. example.com will allow 13 | sub.example.com. However, higher up domains will still be excluded: 14 | if you set %URI.Host to sub.example.com, example.com will be blocked. 15 | Note: This directive overrides %URI.Base because 16 | a given page may be on a sub-domain, but you wish HTML Purifier to be 17 | more relaxed and allow some of the parent domains too. 18 |
19 | --# vim: et sw=4 sts=4 20 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt: -------------------------------------------------------------------------------- 1 | URI.HostBlacklist 2 | TYPE: list 3 | VERSION: 1.3.0 4 | DEFAULT: array() 5 | --DESCRIPTION-- 6 | List of strings that are forbidden in the host of any URI. Use it to kill 7 | domain names of spam, etc. Note that it will catch anything in the domain, 8 | so moo.com will catch moo.com.example.com. 9 | --# vim: et sw=4 sts=4 10 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt: -------------------------------------------------------------------------------- 1 | URI.MakeAbsolute 2 | TYPE: bool 3 | VERSION: 2.1.0 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 | 7 |8 | Converts all URIs into absolute forms. This is useful when the HTML 9 | being filtered assumes a specific base path, but will actually be 10 | viewed in a different context (and setting an alternate base URI is 11 | not possible). %URI.Base must be set for this directive to work. 12 |
13 | --# vim: et sw=4 sts=4 14 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt: -------------------------------------------------------------------------------- 1 | URI.MungeResources 2 | TYPE: bool 3 | VERSION: 3.1.1 4 | DEFAULT: false 5 | --DESCRIPTION-- 6 |
7 | If true, any URI munging directives like %URI.Munge
8 | will also apply to embedded resources, such as <img src="">
.
9 | Be careful enabling this directive if you have a redirector script
10 | that does not use the Location
HTTP header; all of your images
11 | and other embedded resources will break.
12 |
14 | Warning: It is strongly advised you use this in conjunction 15 | %URI.MungeSecretKey to mitigate the security risk of an open redirector. 16 |
17 | --# vim: et sw=4 sts=4 18 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt: -------------------------------------------------------------------------------- 1 | URI.MungeSecretKey 2 | TYPE: string/null 3 | VERSION: 3.1.1 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 |7 | This directive enables secure checksum generation along with %URI.Munge. 8 | It should be set to a secure key that is not shared with anyone else. 9 | The checksum can be placed in the URI using %t. Use of this checksum 10 | affords an additional level of protection by allowing a redirector 11 | to check if a URI has passed through HTML Purifier with this line: 12 |
13 | 14 |$checksum === hash_hmac("sha256", $url, $secret_key)15 | 16 |
17 | If the output is TRUE, the redirector script should accept the URI. 18 |
19 | 20 |21 | Please note that it would still be possible for an attacker to procure 22 | secure hashes en-mass by abusing your website's Preview feature or the 23 | like, but this service affords an additional level of protection 24 | that should be combined with website blacklisting. 25 |
26 | 27 |28 | Remember this has no effect if %URI.Munge is not on. 29 |
30 | --# vim: et sw=4 sts=4 31 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt: -------------------------------------------------------------------------------- 1 | URI.OverrideAllowedSchemes 2 | TYPE: bool 3 | DEFAULT: true 4 | --DESCRIPTION-- 5 | If this is set to true (which it is by default), you can override 6 | %URI.AllowedSchemes by simply registering a HTMLPurifier_URIScheme to the 7 | registry. If false, you will also have to update that directive in order 8 | to add more schemes. 9 | --# vim: et sw=4 sts=4 10 | -------------------------------------------------------------------------------- /webui/system/helper/standalone/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt: -------------------------------------------------------------------------------- 1 | URI.SafeIframeRegexp 2 | TYPE: string/null 3 | VERSION: 4.4.0 4 | DEFAULT: NULL 5 | --DESCRIPTION-- 6 |7 | A PCRE regular expression that will be matched against an iframe URI. This is 8 | a relatively inflexible scheme, but works well enough for the most common 9 | use-case of iframes: embedded video. This directive only has an effect if 10 | %HTML.SafeIframe is enabled. Here are some example values: 11 |
12 |%^http://www.youtube.com/embed/%
- Allow YouTube videos%^http://player.vimeo.com/video/%
- Allow Vimeo videos%^http://(www.youtube.com/embed/|player.vimeo.com/video/)%
- Allow both
18 | Note that this directive does not give you enough granularity to, say, disable
19 | all autoplay
videos. Pipe up on the HTML Purifier forums if this
20 | is a capability you want.
21 |
(@) | 15 |
---|
20 | |
.
23 |:
2 | -------------------------------------------------------------------------------- /webui/templates/message/bulkrestore.tpl: -------------------------------------------------------------------------------- 1 |:
2 | -------------------------------------------------------------------------------- /webui/templates/message/journal.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /webui/templates/message/restore.tpl: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /webui/templates/policy/apply.tpl: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /webui/templates/policy/updateretention.tpl: -------------------------------------------------------------------------------- 1 | 2 |11 | | 12 | | 13 | | 14 | |
---|---|---|---|
19 | | 20 | | 21 | | 22 | |