+// Checks whether the filter chain has been aborted
+function isFilterChainAborted () {
+ // Determine it
+ return ((isset($GLOBALS['filter_chain_interrupted'])) && ($GLOBALS['filter_chain_interrupted'] === TRUE));
+}
+
+// Interrupts the filter chain by enabling flag 'filter_chain_aborted'
+// @TODO Add a filter chain here? E.g.: 'filter_chain_interrupted'
+function interruptFilterChain () {
+ // Make sure that interrupted filter chains are not interrupted twice
+ assert((!isset($GLOBALS['filter_chain_interrupted'])) || ($GLOBALS['filter_chain_interrupted'] === FALSE));
+
+ // Set it
+ $GLOBALS['filter_chain_interrupted'] = TRUE;
+}
+
+// Continues the filter chain by disabling flag 'filter_chain_aborted'
+// @TODO Add a filter chain here? E.g.: 'filter_chain_continued'
+function continueFilterChain () {
+ // Make sure that continued filter chains are not continued twice
+ assert((!isset($GLOBALS['filter_chain_interrupted'])) || ($GLOBALS['filter_chain_interrupted'] === TRUE));
+
+ // Set it
+ $GLOBALS['filter_chain_interrupted'] = FALSE;
+}
+