From: Meik S. <acy...@ph...> - 2009-07-21 10:59:07
|
Author: acydburn Date: Tue Jul 21 10:58:31 2009 New Revision: 9811 Log: Preserve newlines in template files (one newline had been always dropped after a template variable due to PHP's handling of closing tags) Modified: branches/phpBB-3_0_0/phpBB/docs/CHANGELOG.html branches/phpBB-3_0_0/phpBB/includes/functions_template.php branches/phpBB-3_0_0/phpBB/includes/template.php Modified: branches/phpBB-3_0_0/phpBB/docs/CHANGELOG.html ============================================================================== *** branches/phpBB-3_0_0/phpBB/docs/CHANGELOG.html (original) --- branches/phpBB-3_0_0/phpBB/docs/CHANGELOG.html Tue Jul 21 10:58:31 2009 *************** *** 168,173 **** --- 168,174 ---- <li>[Fix] Allow changing forum from select box under certain circumstances. (Bug #37525)</li> <li>[Fix] Display required fields notice on registration above the custom profile fields. (Bug #39665)</li> <li>[Fix] Copy poll options properly when copying topic. (Bug #39065)</li> + <li>[Fix] Preserve newlines in template files (one newline had been always dropped after a template variable due to PHP's handling of closing tags)</li> <li>[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.</li> <li>[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)</li> <li>[Change] Template engine now permits to a limited extent variable includes.</li> Modified: branches/phpBB-3_0_0/phpBB/includes/functions_template.php ============================================================================== *** branches/phpBB-3_0_0/phpBB/includes/functions_template.php (original) --- branches/phpBB-3_0_0/phpBB/includes/functions_template.php Tue Jul 21 10:58:31 2009 *************** *** 251,265 **** $template_php .= (!$no_echo) ? (($trim_check_text != '') ? $text_blocks[$i] : '') . ((isset($compile_blocks[$i])) ? $compile_blocks[$i] : '') : (($trim_check_text != '') ? $text_blocks[$i] : '') . ((isset($compile_blocks[$i])) ? $compile_blocks[$i] : ''); } // There will be a number of occasions where we switch into and out of // PHP mode instantaneously. Rather than "burden" the parser with this // we'll strip out such occurences, minimising such switching if ($no_echo) { ! return "\$$echo_var .= '" . str_replace(' ?><?php ', ' ', $template_php) . "'"; } ! return str_replace(' ?><?php ', ' ', $template_php); } /** --- 251,272 ---- $template_php .= (!$no_echo) ? (($trim_check_text != '') ? $text_blocks[$i] : '') . ((isset($compile_blocks[$i])) ? $compile_blocks[$i] : '') : (($trim_check_text != '') ? $text_blocks[$i] : '') . ((isset($compile_blocks[$i])) ? $compile_blocks[$i] : ''); } + // Remove unused opening/closing tags + $template_php = str_replace(' ?><?php ', ' ', $template_php); + + // Now add a newline after each php closing tag which already has a newline + // PHP itself strips a newline if a closing tag is used (this is documented behaviour) and it is mostly not intended by style authors to remove newlines + $template_php = preg_replace('#\?\>([\r\n])#', '?>\1\1', $template_php); + // There will be a number of occasions where we switch into and out of // PHP mode instantaneously. Rather than "burden" the parser with this // we'll strip out such occurences, minimising such switching if ($no_echo) { ! return "\$$echo_var .= '" . $template_php . "'"; } ! return $template_php; } /** Modified: branches/phpBB-3_0_0/phpBB/includes/template.php ============================================================================== *** branches/phpBB-3_0_0/phpBB/includes/template.php (original) --- branches/phpBB-3_0_0/phpBB/includes/template.php Tue Jul 21 10:58:31 2009 *************** *** 82,87 **** --- 82,89 ---- $this->root = $template_path; $this->cachepath = $phpbb_root_path . 'cache/ctpl_' . str_replace('_', '-', $template_name) . '_'; + $this->_rootref = &$this->_tpldata['.'][0]; + return true; } |