summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php')
-rw-r--r--www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php b/www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php
new file mode 100644
index 00000000..b6e89d03
--- /dev/null
+++ b/www/wiki/extensions/AbuseFilter/includes/parser/AFPUserVisibleException.php
@@ -0,0 +1,40 @@
+<?php
+
+// Exceptions that we might conceivably want to report to ordinary users
+// (i.e. exceptions that don't represent bugs in the extension itself)
+class AFPUserVisibleException extends AFPException {
+ public $mExceptionId;
+ public $mPosition;
+ public $mParams;
+
+ /**
+ * @param string $exception_id
+ * @param int $position
+ * @param array $params
+ */
+ function __construct( $exception_id, $position, $params ) {
+ $this->mExceptionID = $exception_id;
+ $this->mPosition = $position;
+ $this->mParams = $params;
+
+ // Exception message text for logs should be in English.
+ $msg = $this->getMessageObj()->inLanguage( 'en' )->useDatabase( false )->text();
+ parent::__construct( $msg );
+ }
+
+ public function getMessageObj() {
+ // Give grep a chance to find the usages:
+ // abusefilter-exception-unexpectedatend, abusefilter-exception-expectednotfound
+ // abusefilter-exception-unrecognisedkeyword, abusefilter-exception-unexpectedtoken
+ // abusefilter-exception-unclosedstring, abusefilter-exception-invalidoperator
+ // abusefilter-exception-unrecognisedtoken, abusefilter-exception-noparams
+ // abusefilter-exception-dividebyzero, abusefilter-exception-unrecognisedvar
+ // abusefilter-exception-notenoughargs, abusefilter-exception-regexfailure
+ // abusefilter-exception-overridebuiltin, abusefilter-exception-outofbounds
+ // abusefilter-exception-notlist, abusefilter-exception-unclosedcomment
+ return wfMessage(
+ 'abusefilter-exception-' . $this->mExceptionID,
+ array_merge( [ $this->mPosition ], $this->mParams )
+ );
+ }
+}