+
+ /**
+ * Enables or disables language support
+ *
+ * @param $languageSupport New language support setting
+ * @return void
+ */
+ public final function enableLanguageSupport ($languageSupport = true) {
+ $this->languageSupport = (bool) $languageSupport;
+ }
+
+ /**
+ * Checks whether language support is enabled
+ *
+ * @return $languageSupport Whether language support is enabled or disabled
+ */
+ public final function isLanguageSupportEnabled () {
+ return $this->languageSupport;
+ }
+
+ /**
+ * Enables or disables XML compacting
+ *
+ * @param $xmlCompacting New XML compacting setting
+ * @return void
+ */
+ public final function enableXmlCompacting ($xmlCompacting = true) {
+ $this->xmlCompacting = (bool) $xmlCompacting;
+ }
+
+ /**
+ * Checks whether XML compacting is enabled
+ *
+ * @return $xmlCompacting Whether XML compacting is enabled or disabled
+ */
+ public final function isXmlCompactingEnabled () {
+ return $this->xmlCompacting;
+ }
+
+ /**
+ * Removes all commentd, tabs and new-line characters to compact the content
+ *
+ * @param $uncompactedContent The uncompacted content
+ * @return $compactedContent The compacted content
+ */
+ public function compactContent ($uncompactedContent) {
+ // First, remove all tab/new-line/revert characters
+ $compactedContent = str_replace(chr(9), '', str_replace(chr(10), '', str_replace(chr(13), '', $uncompactedContent)));
+
+ // Then regex all comments like <!-- //--> away
+ preg_match_all('/<!--[\w\W]*?(\/\/){0,1}-->/', $compactedContent, $matches);
+
+ // Do we have entries?
+ if (isset($matches[0][0])) {
+ // Remove all
+ foreach ($matches[0] as $match) {
+ // Remove the match
+ $compactedContent = str_replace($match, '', $compactedContent);
+ } // END - foreach
+ } // END - if
+
+ // Set the content again
+ $this->setRawTemplateData($compactedContent);
+
+ // Return compacted content
+ return $compactedContent;
+ }