Update of /cvsroot/squirrelmail/squirrelmail/class/template
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv20620/class/template
Modified Files:
template.class.php
Log Message:
Adding template_construct and template_output hooks. Yikes.
Index: template.class.php
===================================================================
RCS file: /cvsroot/squirrelmail/squirrelmail/class/template/template.class.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -w -r1.19 -r1.20
--- template.class.php 21 Sep 2006 13:29:22 -0000 1.19
+++ template.class.php 21 Sep 2006 15:24:41 -0000 1.20
@@ -378,17 +378,46 @@
*/
function display($file)
{
- // Pull in our config file
- $t = &$this->values; // place values array directly in scope
- // Get right template file
+ // get right template file
+ //
$template = $this->get_template_file_path($file);
if (empty($template)) {
- trigger_error('The template "'.htmlspecialchars($file).'" could
not be displayed!', E_USER_ERROR);
+
+ trigger_error('The template "' . htmlspecialchars($file)
+ . '" could not be displayed!', E_USER_ERROR);
+
} else {
+
+ $aPluginOutput = array();
+ $aPluginOutput = do_hook_function('template_construct',
+ array($aPluginOutput, $file,
$this));
+ $this->assign('plugin_output', $aPluginOutput);
+
+ // pull in our config file ($t? let's try to be more verbose
please :-) )
+ //
+ $t = &$this->values; // place values array directly in scope
+
ob_start();
include($template);
+
+ // CAUTION: USE OF THIS HOOK IS HIGHLY DISCOURAGED AND CAN
+ // RESULT IN NOTICABLE PERFORMANCE DEGREDATION. Plugins
+ // using this hook will probably be rejected by the
+ // SquirrelMail team.
+ //
+ // Anyone hooking in here that wants to manipulate the output
+ // buffer has to get the buffer, clean it and then echo the
+ // new buffer like this:
+ // $buffer = ob_get_contents(); ob_clean(); .... echo $new_buffer;
+ //
+ // Don't need to pass buffer contents ourselves
+ // do_hook_function('template_output', array(ob_get_contents()));
+ //
+ do_hook('template_output');
+
ob_end_flush();
+
}
}
@@ -399,18 +428,48 @@
* @return string A string of the results
*/
function fetch($file) {
- $t = &$this->values; // place values array directly in scope
- // Get right template file
+ // get right template file
+ //
$template = $this->get_template_file_path($file);
if (empty($template)) {
- trigger_error('The template "'.htmlspecialchars($file).'" could
not be fetched!', E_USER_ERROR);
+
+ trigger_error('The template "' . htmlspecialchars($file)
+ . '" could not be fetched!', E_USER_ERROR);
+
} else {
+
+ $aPluginOutput = array();
+ $aPluginOutput = do_hook_function('template_construct',
+ array($aPluginOutput, $file,
$this));
+ $this->assign('plugin_output', $aPluginOutput);
+
+ // pull in our config file ($t? let's try to be more verbose
please :-) )
+ //
+ $t = &$this->values; // place values array directly in scope
+
ob_start();
include($template);
+
+ // CAUTION: USE OF THIS HOOK IS HIGHLY DISCOURAGED AND CAN
+ // RESULT IN NOTICABLE PERFORMANCE DEGREDATION. Plugins
+ // using this hook will probably be rejected by the
+ // SquirrelMail team.
+ //
+ // Anyone hooking in here that wants to manipulate the output
+ // buffer has to get the buffer, clean it and then echo the
+ // new buffer like this:
+ // $buffer = ob_get_contents(); ob_clean(); .... echo $new_buffer;
+ //
+ // Don't need to pass buffer contents ourselves
+ // do_hook_function('template_output', array(ob_get_contents()));
+ //
+ do_hook('template_output');
+
$contents = ob_get_contents();
ob_end_clean();
return $contents;
+
}
}
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
|