From: Roland Häder Date: Thu, 5 Nov 2009 19:32:58 +0000 (+0000) Subject: Several fixes for template engine, JavaScripts, etc. X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=commitdiff_plain;h=735545e765720a954a345bc068239e2fffa0dbe1 Several fixes for template engine, JavaScripts, etc. --- diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index a24402a167..7a068539c6 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -475,7 +475,7 @@ class CacheSystem { // String or non-string? ;-) if (is_string($value)) { // String... - $line = '$this->' . $prefix . "['".$this->name."']['" . $key . "']" . $extender . " = '" . smartAddSlashes($value) . "';\n"; + $line = '$this->' . $prefix . "['".$this->name."']['" . $key . "']" . $extender . " = '" . addslashes($value) . "';\n"; } elseif (is_null($value)) { // Null $line = '$this->' . $prefix . "['".$this->name."']['" . $key . "']" . $extender . " = null;\n"; diff --git a/inc/db/lib-mysql3.php b/inc/db/lib-mysql3.php index e75d09fc57..8c20de47cf 100644 --- a/inc/db/lib-mysql3.php +++ b/inc/db/lib-mysql3.php @@ -313,8 +313,8 @@ function SQL_ESCAPE ($str, $secureString=true, $strip=true) { } // END - if if (!SQL_IS_LINK_UP()) { - // Fall-back to smartAddSlashes() when there is no link - $ret = smartAddSlashes($str); + // Fall-back to addslashes() when there is no link + $ret = addslashes($str); } elseif (function_exists('mysql_real_escape_string')) { // The new and improved version //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'str='.$str); @@ -323,8 +323,8 @@ function SQL_ESCAPE ($str, $secureString=true, $strip=true) { // The obsolete function $ret = mysql_escape_string($str, SQL_GET_LINK()); } else { - // If nothing else works, fall back to smartAddSlashes() again - $ret = smartAddSlashes($str); + // If nothing else works, fall back to addslashes() again + $ret = addslashes($str); } // Cache result diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index a9d1ed2910..3ea8b87b0b 100644 --- a/inc/extensions-functions.php +++ b/inc/extensions-functions.php @@ -520,9 +520,9 @@ function isExtensionActive ($ext_name) { } // Get version from extensions -function getExtensionVersion ($ext_name) { +function getExtensionVersion ($ext_name, $force = false) { // By default no extension is found - $ext_ver = 'invalid'; + $ext_ver = 'false'; // Empty extension name should be fixed! if (empty($ext_name)) { @@ -565,7 +565,7 @@ function getExtensionVersion ($ext_name) { } // Extension version should not be invalid - if ($ext_ver == 'invalid') { + if (($ext_ver == 'false') && ($force === false)) { // Please report this trouble debug_report_bug(sprintf("Extension %s has empty version!", $ext_name)); } // END - if diff --git a/inc/filters.php b/inc/filters.php index 3bcc77e333..d18c91e741 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -452,27 +452,28 @@ function FILTER_COMPILE_EXTENSION ($code) { if ((count($matches) > 0) && (count($matches[3]) > 0)) { // Replace all matches foreach ($matches[3] as $key => $cmd) { - // By default we have no extension installed, so 'false' is assumed - $replacer = 'false'; + // Init replacer variable + $replacer = ''; // Is the extension installed or code provided? if ($cmd == 'code') { // Code asked for - $replacer = getCode($matches[4][$key]); - } elseif (isExtensionActive($matches[4][$key])) { + $replacer = "\".getCode(\"" . $matches[4][$key] . "\").\""; + } else { // Construct call-back function name $functionName = 'getExtension' . ucfirst(strtolower($cmd)); - // Call the function - $replacer = call_user_func_array($functionName, $matches[4][$key]); - } // END - if + // Construct call of the function + $replacer = "\".call_user_func_array('" . $functionName . "', array('" . $matches[4][$key] . "', true)).\""; + } // Replace it and insert parameter for GET request - $code = str_replace($matches[0][$key], sprintf("&%s=%s&rev=%s", $cmd, $replacer, getConfig('CURR_SVN_REVISION')), $code); + $code = str_replace($matches[0][$key], sprintf("&%s=%s&rev=\".getConfig('CURR_SVN_REVISION').\"", $cmd, $replacer), $code); } // END - foreach } // END - if // Return compiled code + //* DEBUG: */ die('
'.htmlentities($code).'
'); return $code; } diff --git a/inc/functions.php b/inc/functions.php index 2add576617..25cb94adb1 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -103,49 +103,16 @@ function outputHtml ($htmlCode, $newLine = true) { clearOutputBuffer(); } // END - if - // Send HTTP header - sendHeader('HTTP/1.1 200'); - - // Used later - $now = gmdate('D, d M Y H:i:s') . ' GMT'; - - // General headers for no caching - sendHeader('Expired: ' . $now); // RFC2616 - Section 14.21 - sendHeader('Last-Modified: ' . $now); - sendHeader('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1 - sendHeader('Pragma: no-cache'); // HTTP/1.0 - sendHeader('Connection: Close'); - sendHeader('Content-Type: ' . getContentType() . '; charset=UTF-8'); - sendHeader('Content-language: ' . getLanguage()); - // Extension 'rewrite' installed? if ((isExtensionActive('rewrite')) && (getOutputMode() != 1)) { $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']); } // END - if - // Init counter - $cnt = '0'; - // Compile and run finished rendered HTML code - while (((strpos($GLOBALS['output'], '{--') > 0) || (strpos($GLOBALS['output'], '{!') > 0) || (strpos($GLOBALS['output'], '{?') > 0)) && ($cnt < 3)) { - // Prepare the content and eval() it... - $content = array(); - $newContent = ''; - - // Compile it - $eval = "\$newContent = \"".compileCode(smartAddSlashes($GLOBALS['output']))."\";"; - eval($eval); - - // Was that eval okay? - if (empty($newContent)) { - // Something went wrong! - debug_report_bug('Evaluation error:
' . linenumberCode($eval) . '
'); - } // END - if - $GLOBALS['output'] = $newContent; + compileFinalOutput(); - // Count round - $cnt++; - } // END - while + // Send all HTTP headers + sendHttpHeaders(); // Output code here, DO NOT REMOVE! ;-) outputRawCode($GLOBALS['output']); @@ -156,19 +123,68 @@ function outputHtml ($htmlCode, $newLine = true) { } // END - if // Compile and run finished rendered HTML code - while (strpos($GLOBALS['output'], '{!') > 0) { - eval("\$GLOBALS['output'] = \"".compileCode(smartAddSlashes($GLOBALS['output']))."\";"); - } // END - while + compileFinalOutput(); + + // Send all HTTP headers + sendHttpHeaders(); // Output code here, DO NOT REMOVE! ;-) outputRawCode($GLOBALS['output']); } } +// Sends out all headers required for HTTP/1.1 reply +function sendHttpHeaders () { + // Used later + $now = gmdate('D, d M Y H:i:s') . ' GMT'; + + // Send HTTP header + sendHeader('HTTP/1.1 200'); + + // General headers for no caching + sendHeader('Expired: ' . $now); // RFC2616 - Section 14.21 + sendHeader('Last-Modified: ' . $now); + sendHeader('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1 + sendHeader('Pragma: no-cache'); // HTTP/1.0 + sendHeader('Connection: Close'); + sendHeader('Content-Type: ' . getContentType() . '; charset=UTF-8'); + sendHeader('Content-Language: ' . getLanguage()); +} + +// Compiles the final output +function compileFinalOutput () { + // Init counter + $cnt = '0'; + + // Compile all out + while (((strpos($GLOBALS['output'], '{--') > 0) || (strpos($GLOBALS['output'], '{!') > 0) || (strpos($GLOBALS['output'], '{?') > 0)) && ($cnt < 3)) { + // Init common variables + $content = array(); + $newContent = ''; + + // Compile it + $eval = "\$newContent = \"".compileCode(addslashes($GLOBALS['output']))."\";"; + eval($eval); + + // Was that eval okay? + if (empty($newContent)) { + // Something went wrong! + debug_report_bug('Evaluation error:
' . linenumberCode($eval) . '
'); + } // END - if + $GLOBALS['output'] = $newContent; + + // Count round + $cnt++; + } // END - while + + // Add final length + sendHeader('Content-Length: ' . strlen($GLOBALS['output'])); +} + // Output the raw HTML code function outputRawCode ($htmlCode) { // Output stripped HTML code to avoid broken JavaScript code, etc. - print(stripslashes(stripslashes($htmlCode))); + print($htmlCode); // Flush the output if only getPhpCaching() is not 'on' if (getPhpCaching() != 'on') { @@ -330,18 +346,18 @@ function loadTemplate ($template, $return=false, $content=array()) { $ret = "\n" . $GLOBALS['tpl_content'] . "\n"; // Prepare eval() command - $eval = '$ret = "' . compileCode(smartAddSlashes($ret)) . '";'; + $eval = '$ret = "' . compileCode(addslashes($ret)) . '";'; } elseif (substr($template, 0, 3) == 'js_') { - // JavaScripts don't like entities - $eval = '$ret = decodeEntities("' . compileCode(smartAddSlashes($GLOBALS['tpl_content'])) . '");'; + // JavaScripts don't like entities and timings + $eval = '$ret = decodeEntities("' . compileRawCode(addslashes($GLOBALS['tpl_content'])) . '");'; } else { // Prepare eval() command - $eval = '$ret = "' . compileCode(smartAddSlashes($GLOBALS['tpl_content'])) . '";'; + $eval = '$ret = "' . compileCode(addslashes($GLOBALS['tpl_content'])) . '";'; } } else { // Add surrounding HTML comments to help finding bugs faster $ret = "\n" . $GLOBALS['tpl_content'] . "\n"; - $eval = '$ret = "' . smartAddSlashes($ret) . '";'; + $eval = '$ret = "' . addslashes($ret) . '";'; } // END - if // Cache the eval() command here @@ -498,7 +514,7 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') { $GLOBALS['tpl_content'] = readFromFile($FQFN); // Run code - $GLOBALS['tpl_content'] = "\$newContent = decodeEntities(\"".compileRawCode(smartAddSlashes($GLOBALS['tpl_content']))."\");"; + $GLOBALS['tpl_content'] = "\$newContent = decodeEntities(\"".compileRawCode(addslashes($GLOBALS['tpl_content']))."\");"; eval($GLOBALS['tpl_content']); } elseif (!empty($template)) { // Template file not found! @@ -529,7 +545,7 @@ function loadEmailTemplate ($template, $content = array(), $UID = '0') { unset($DATA); // Compile the code and eval it - $eval = '$newContent = "' . compileRawCode(smartAddSlashes($newContent)) . '";'; + $eval = '$newContent = "' . compileRawCode(addslashes($newContent)) . '";'; eval($eval); // Return content @@ -541,7 +557,7 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' //* DEBUG: */ outputHtml(__FUNCTION__."(".__LINE__."):TO={$toEmail},SUBJECT={$subject}
"); // Compile subject line (for POINTS constant etc.) - eval("\$subject = decodeEntities(\"".compileRawCode(smartAddSlashes($subject))."\");"); + eval("\$subject = decodeEntities(\"".compileRawCode(addslashes($subject))."\");"); // Set from header if ((!eregi('@', $toEmail)) && ($toEmail > 0)) { @@ -587,10 +603,10 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' } // Compile "TO" - eval("\$toEmail = \"".compileRawCode(smartAddSlashes($toEmail))."\";"); + eval("\$toEmail = \"".compileRawCode(addslashes($toEmail))."\";"); // Compile "MSG" - eval("\$message = \"".compileRawCode(smartAddSlashes($message))."\";"); + eval("\$message = \"".compileRawCode(addslashes($message))."\";"); // Fix HTML parameter (default is no!) if (empty($isHtml)) $isHtml = 'N'; diff --git a/inc/libs/html_mail_functions.php b/inc/libs/html_mail_functions.php index 91f9504bcc..beeb5562da 100644 --- a/inc/libs/html_mail_functions.php +++ b/inc/libs/html_mail_functions.php @@ -60,7 +60,7 @@ function checkHtmlTags ($html) { $check = str_replace('/', '', $check); if (!in_array($check, $GLOBALS['html_tags'])) { // Invalid tag found! - return ""; + return ''; } $test = substr($test, strpos($test, '>') + 1); } diff --git a/inc/libs/sponsor_functions.php b/inc/libs/sponsor_functions.php index 51d3510e97..e1ee608916 100644 --- a/inc/libs/sponsor_functions.php +++ b/inc/libs/sponsor_functions.php @@ -175,10 +175,12 @@ function handlSponsorRequest (&$postData, $update=false, $messageArray=array(), $OUT = ''; foreach ($postData as $k => $v) { // Do not add 'force' ! - if ($k != "force") { - $OUT .= "\n"; - } - } + if ($k != 'force') { + $OUT .= "\n"; + } // END - if + } // END - foreach + + // Remember data $content['hidden'] = $OUT; $content['email'] = $postData['email']; diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index e19b1689b0..cc9b9aedca 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -2222,7 +2222,7 @@ function reduceRecipientReceivedMails ($column, $id, $count) { function createNewTask ($subject, $notes, $taskType, $userid = '0', $adminId = '0', $strip = true) { // Insert the task data into the database SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_task_system` (`assigned_admin`, `userid`, `status`, `task_type`, `subject`, `text`, `task_created`) VALUES (%s,%s,'NEW','%s','%s','%s', UNIX_TIMESTAMP())", - array($adminId, $userid, $taskType, $subject, smartAddSlashes($notes)), __FUNCTION__, __LINE__, true, $strip); + array($adminId, $userid, $taskType, $subject, addslashes($notes)), __FUNCTION__, __LINE__, true, $strip); } // Updates last module / online time diff --git a/inc/wrapper-functions.php b/inc/wrapper-functions.php index cd1eddf236..64ac4a9660 100644 --- a/inc/wrapper-functions.php +++ b/inc/wrapper-functions.php @@ -137,21 +137,6 @@ function decodeString ($str, $decompress = true) { return $str; } -// Smartly adds slashes -function smartAddSlashes ($unquoted) { - // Do we have cache? - if (!isset($GLOBALS['smart_addslashes'][$unquoted])) { - // Remove slashe - $unquoted = str_replace("\\", '', $unquoted); - - // Put it in cache and add slashes - $GLOBALS['smart_addslashes'][$unquoted] = addslashes($unquoted); - } // END - if - - // Return result - return $GLOBALS['smart_addslashes'][$unquoted]; -} - // Decode entities in a nicer way function decodeEntities ($str) { // Decode the entities to UTF-8 now diff --git a/templates/de/html/js/js_jquery.tpl b/templates/de/html/js/js_jquery.tpl index 926357433e..462cde56c3 100644 --- a/templates/de/html/js/js_jquery.tpl +++ b/templates/de/html/js/js_jquery.tpl @@ -1266,150 +1266,150 @@ jQuery.each({ function num(elem, prop) { return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0; } -var expando = "jQuery" + now(), uuid = 0, windowData = {}; - -jQuery.extend({ - cache: {}, - - data: function( elem, name, data ) { - elem = elem == window ? - windowData : - elem; - - var id = elem[ expando ]; - - // Compute a unique ID for the element - if ( !id ) - id = elem[ expando ] = ++uuid; - - // Only generate the data cache if we're - // trying to access or manipulate it - if ( name && !jQuery.cache[ id ] ) - jQuery.cache[ id ] = {}; - - // Prevent overriding the named cache with undefined values - if ( data !== undefined ) - jQuery.cache[ id ][ name ] = data; - - // Return the named cache data, or the ID for the element - return name ? - jQuery.cache[ id ][ name ] : - id; - }, - - removeData: function( elem, name ) { - elem = elem == window ? - windowData : - elem; - - var id = elem[ expando ]; - - // If we want to remove a specific section of the element's data - if ( name ) { - if ( jQuery.cache[ id ] ) { - // Remove the section of cache data - delete jQuery.cache[ id ][ name ]; - - // If we've removed all the data, remove the element's cache - name = ""; - - for ( name in jQuery.cache[ id ] ) - break; - - if ( !name ) - jQuery.removeData( elem ); - } - - // Otherwise, we want to remove all of the element's data - } else { - // Clean up the element expando - try { - delete elem[ expando ]; - } catch(e){ - // IE has trouble directly removing the expando - // but it's ok with using removeAttribute - if ( elem.removeAttribute ) - elem.removeAttribute( expando ); - } - - // Completely remove the data cache - delete jQuery.cache[ id ]; - } - }, - queue: function( elem, type, data ) { - if ( elem ){ - - type = (type || "fx") + "queue"; - - var q = jQuery.data( elem, type ); - - if ( !q || jQuery.isArray(data) ) - q = jQuery.data( elem, type, jQuery.makeArray(data) ); - else if( data ) - q.push( data ); - - } - return q; - }, - - dequeue: function( elem, type ){ - var queue = jQuery.queue( elem, type ), - fn = queue.shift(); - - if( !type || type === "fx" ) - fn = queue[0]; - - if( fn !== undefined ) - fn.call(elem); - } -}); - -jQuery.fn.extend({ - data: function( key, value ){ - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - if ( data === undefined && this.length ) - data = jQuery.data( this[0], key ); - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - } else - return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ - jQuery.data( this, key, value ); - }); - }, - - removeData: function( key ){ - return this.each(function(){ - jQuery.removeData( this, key ); - }); - }, - queue: function(type, data){ - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) - return jQuery.queue( this[0], type ); - - return this.each(function(){ - var queue = jQuery.queue( this, type, data ); - - if( type == "fx" && queue.length == 1 ) - queue[0].call(this); - }); - }, - dequeue: function(type){ - return this.each(function(){ - jQuery.dequeue( this, type ); - }); - } +var expando = "jQuery" + now(), uuid = 0, windowData = {}; + +jQuery.extend({ + cache: {}, + + data: function( elem, name, data ) { + elem = elem == window ? + windowData : + elem; + + var id = elem[ expando ]; + + // Compute a unique ID for the element + if ( !id ) + id = elem[ expando ] = ++uuid; + + // Only generate the data cache if we're + // trying to access or manipulate it + if ( name && !jQuery.cache[ id ] ) + jQuery.cache[ id ] = {}; + + // Prevent overriding the named cache with undefined values + if ( data !== undefined ) + jQuery.cache[ id ][ name ] = data; + + // Return the named cache data, or the ID for the element + return name ? + jQuery.cache[ id ][ name ] : + id; + }, + + removeData: function( elem, name ) { + elem = elem == window ? + windowData : + elem; + + var id = elem[ expando ]; + + // If we want to remove a specific section of the element's data + if ( name ) { + if ( jQuery.cache[ id ] ) { + // Remove the section of cache data + delete jQuery.cache[ id ][ name ]; + + // If we've removed all the data, remove the element's cache + name = ""; + + for ( name in jQuery.cache[ id ] ) + break; + + if ( !name ) + jQuery.removeData( elem ); + } + + // Otherwise, we want to remove all of the element's data + } else { + // Clean up the element expando + try { + delete elem[ expando ]; + } catch(e){ + // IE has trouble directly removing the expando + // but it's ok with using removeAttribute + if ( elem.removeAttribute ) + elem.removeAttribute( expando ); + } + + // Completely remove the data cache + delete jQuery.cache[ id ]; + } + }, + queue: function( elem, type, data ) { + if ( elem ){ + + type = (type || "fx") + "queue"; + + var q = jQuery.data( elem, type ); + + if ( !q || jQuery.isArray(data) ) + q = jQuery.data( elem, type, jQuery.makeArray(data) ); + else if( data ) + q.push( data ); + + } + return q; + }, + + dequeue: function( elem, type ){ + var queue = jQuery.queue( elem, type ), + fn = queue.shift(); + + if( !type || type === "fx" ) + fn = queue[0]; + + if( fn !== undefined ) + fn.call(elem); + } +}); + +jQuery.fn.extend({ + data: function( key, value ){ + var parts = key.split("."); + parts[1] = parts[1] ? "." + parts[1] : ""; + + if ( value === undefined ) { + var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + + if ( data === undefined && this.length ) + data = jQuery.data( this[0], key ); + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + } else + return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ + jQuery.data( this, key, value ); + }); + }, + + removeData: function( key ){ + return this.each(function(){ + jQuery.removeData( this, key ); + }); + }, + queue: function(type, data){ + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + } + + if ( data === undefined ) + return jQuery.queue( this[0], type ); + + return this.each(function(){ + var queue = jQuery.queue( this, type, data ); + + if( type == "fx" && queue.length == 1 ) + queue[0].call(this); + }); + }, + dequeue: function(type){ + return this.each(function(){ + jQuery.dequeue( this, type ); + }); + } });/*! * Sizzle CSS Selector Engine - v0.9.3 * Copyright 2009, The Dojo Foundation diff --git a/templates/de/html/login_failed_js.tpl b/templates/de/html/login_failed_js.tpl index 4b21264629..4728d90ec3 100644 --- a/templates/de/html/login_failed_js.tpl +++ b/templates/de/html/login_failed_js.tpl @@ -1,2 +1 @@ - + diff --git a/templates/de/html/member/member_order_send.tpl b/templates/de/html/member/member_order_send.tpl index 08dadaf0bc..170e0c1312 100644 --- a/templates/de/html/member/member_order_send.tpl +++ b/templates/de/html/member/member_order_send.tpl @@ -1,6 +1,5 @@
{--MEMBER_ORDER_PLEASE_WAIT_1--}10{--MEMBER_ORDER_PLEASE_WAIT_2--}
- +
diff --git a/templates/de/html/member/member_surfbar_book_dynamic.tpl b/templates/de/html/member/member_surfbar_book_dynamic.tpl index e30526aa94..ed00275bf3 100644 --- a/templates/de/html/member/member_surfbar_book_dynamic.tpl +++ b/templates/de/html/member/member_surfbar_book_dynamic.tpl @@ -34,8 +34,8 @@ - + Die maximalen Kosten bzw. Einnahmen pro Surfbaraufruf richten sich nach diff --git a/templates/de/html/member/member_surfbar_book_static.tpl b/templates/de/html/member/member_surfbar_book_static.tpl index 6e03731707..870f4161bb 100644 --- a/templates/de/html/member/member_surfbar_book_static.tpl +++ b/templates/de/html/member/member_surfbar_book_static.tpl @@ -34,7 +34,6 @@ - + diff --git a/templates/de/html/member/member_surfbar_edit_action_form.tpl b/templates/de/html/member/member_surfbar_edit_action_form.tpl index b8a279c9f9..57d0b1b7eb 100644 --- a/templates/de/html/member/member_surfbar_edit_action_form.tpl +++ b/templates/de/html/member/member_surfbar_edit_action_form.tpl @@ -27,6 +27,6 @@ - + diff --git a/templates/de/html/page_header.tpl b/templates/de/html/page_header.tpl index e3a0b58061..fb13505a8a 100644 --- a/templates/de/html/page_header.tpl +++ b/templates/de/html/page_header.tpl @@ -7,5 +7,4 @@ - + diff --git a/templates/de/html/surfbar/surfbar_stopped.tpl b/templates/de/html/surfbar/surfbar_stopped.tpl index 8305e61aec..c7e1c38cf8 100644 --- a/templates/de/html/surfbar/surfbar_stopped.tpl +++ b/templates/de/html/surfbar/surfbar_stopped.tpl @@ -11,6 +11,5 @@ - + diff --git a/templates/de/html/uberwach/uberwach_snippet.tpl b/templates/de/html/uberwach/uberwach_snippet.tpl index 226f201f41..df769f07b2 100644 --- a/templates/de/html/uberwach/uberwach_snippet.tpl +++ b/templates/de/html/uberwach/uberwach_snippet.tpl @@ -3,6 +3,6 @@ - +