Permalink
Browse files

git-svn-id: file:///svn/phpbb/trunk@8680 89ea8834-ac86-4346-8a33-228a…

…782c2dd0
  • Loading branch information...
1 parent ad739a3 commit 95462dca5876809b70daca6eda3b170fe706bea2 Marek A. R committed Jul 12, 2008
Showing with 21 additions and 6 deletions.
  1. +21 −6 phpBB/includes/functions_template.php
@@ -28,18 +28,29 @@ class template_filter extends php_user_filter
private $block_names = array();
private $block_else_level = array();
+
+ private $chunk;
function filter($in, $out, &$consumed/*, $closing*/)
{
while ($bucket = stream_bucket_make_writeable($in))
{
- $bucket->data = $this->compile($bucket->data);
+ $last_nl = strrpos($bucket->data, "\n");
+ $data = $this->chunk . substr($bucket->data, 0, $last_nl);
+ $this->chunk = substr($bucket->data, $last_nl);
+ $bucket->data = $this->compile($data);
$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
-
+
+ public function onCreate()
+ {
+ $this->chunk = '';
+ return true;
+ }
+
private function compile($data)
{
return preg_replace_callback($this->regex, array($this, 'replace'), $data);
@@ -643,6 +654,8 @@ function generate_block_data_ref($blockname, $include_last_iterator, $defop = fa
*/
class template_compile
{
+ const BUFFER = 8192;
+
private $template;
/**
@@ -652,7 +665,7 @@ function __construct(template &$template)
{
$this->template = &$template;
}
-
+
/**
* Load template source from file
* @access public
@@ -689,13 +702,15 @@ private function compile_write($handle, $source_file)
stream_filter_append($destination_handle, 'template');
@flock($destination_handle, LOCK_EX);
- @stream_copy_to_stream($source_handle, $destination_handle);
+ while (!feof($source_handle))
+ {
+ @fwrite($destination_handle, fread($source_handle, self::BUFFER));
+ }
+ @fwrite($destination_handle, "\n");
@flock($destination_handle, LOCK_UN);
@fclose($destination_handle);
@fclose($source_handle);
-
@chmod($filename, 0666);
-
}
}

0 comments on commit 95462dc

Please sign in to comment.