[Phpfreechat-svn] SF.net SVN: phpfreechat: [1237] branches/pfc-comet/misc/comet-tests/iframe2
Status: Beta
Brought to you by:
kerphi
|
From: <ke...@us...> - 2008-03-27 17:11:44
|
Revision: 1237
http://phpfreechat.svn.sourceforge.net/phpfreechat/?rev=1237&view=rev
Author: kerphi
Date: 2008-03-27 10:11:51 -0700 (Thu, 27 Mar 2008)
Log Message:
-----------
improve the pfccomet classe
Modified Paths:
--------------
branches/pfc-comet/misc/comet-tests/iframe2/pfccomet.class.php
branches/pfc-comet/misc/comet-tests/iframe2/tester-loop.php
Modified: branches/pfc-comet/misc/comet-tests/iframe2/pfccomet.class.php
===================================================================
--- branches/pfc-comet/misc/comet-tests/iframe2/pfccomet.class.php 2008-03-27 16:03:04 UTC (rev 1236)
+++ branches/pfc-comet/misc/comet-tests/iframe2/pfccomet.class.php 2008-03-27 17:11:51 UTC (rev 1237)
@@ -1,31 +1,37 @@
<?php
class pfcComet {
- var $pfccometjs_url = './pfccomet.js';
- var $prototypejs_url = './prototype.js';
- var $backend_url = '';
- var $backend_url_flag = 'backend';
- var $backend_callback = null;
- var $backend_loop = false;
- var $backend_loop_sleep = 1000000; // microseconds
- var $onresponse_callback = null;
- var $onconnect_callback = null;
- var $ondisconnect_callback = null;
+ private $pfccometjs_url = './pfccomet.js';
+ private $prototypejs_url = './prototype.js';
+ private $instance_name = 'pfccomet';
+ private $backend_url = '';
+ private $backend_url_flag = 'backend';
+ private $backend_callback = null;
+ private $backend_loop = false;
+ private $backend_loop_sleep = 1000000; // 1000000 microseconds = 1 second
+ private $onresponse_callback = null;
+ private $onconnect_callback = null;
+ private $ondisconnect_callback = null;
- function pfcComet()
- {
- if ($this->backend_url == '')
- $this->backend_url = $_SERVER['PHP_SELF'];
- }
+ public function __construct($params = array())
+ {
+ foreach(get_object_vars($this) as $k => $v)
+ {
+ if (isset($params[$k]))
+ $this->$k = $params[$k];
+ }
+ if ($this->backend_url == '')
+ $this->backend_url = $_SERVER['PHP_SELF'];
+ }
- function run()
- {
- if (isset($_REQUEST[$this->backend_url_flag]))
+ public function run()
{
- header("Cache-Control: no-cache, must-revalidate");
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- flush();
- echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+ if (isset($_REQUEST[$this->backend_url_flag]))
+ {
+ header("Cache-Control: no-cache, must-revalidate");
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ flush();
+ echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>pfcComet backend iframe</title>
@@ -43,68 +49,68 @@
// head[0].appendChild(prototypejs);
// }
// load the comet object
- var pfccomet = window.parent.pfccomet;
+ var '.$this->instance_name.' = window.parent.'.$this->instance_name.';
</script>
<body>
';
- flush();
+ flush();
- // trigger the onConnect callback
- echo '<script type="text/javascript">pfccomet._onConnect();</script>'."\n";
- flush();
+ // trigger the onConnect callback
+ echo '<script type="text/javascript">'.$this->instance_name.'._onConnect();</script>'."\n";
+ flush();
- // trigger the backend callback
- do {
- if (is_callable($this->backend_callback))
- {
- $func = $this->backend_callback;
- if ( is_array($func) ){
- echo $this->formatResponse($func[0]->$func[1]($this));
- } else {
- echo $this->formatResponse($func($this));
- }
- }
- flush();
- if ($this->backend_loop) // do not sleep if the loop is finished
- usleep($this->backend_loop_sleep);
- } while($this->backend_loop);
+ // trigger the backend callback
+ do {
+ if (is_callable($this->backend_callback))
+ {
+ $func = $this->backend_callback;
+ if ( is_array($func) ){
+ echo $this->_formatResponse($func[0]->$func[1]($this));
+ } else {
+ echo $this->_formatResponse($func($this));
+ }
+ }
+ flush();
+ if ($this->backend_loop) // do not sleep if the loop is finished
+ usleep($this->backend_loop_sleep);
+ } while($this->backend_loop);
- // trigger the onDisconnect callback
- echo '<script type="text/javascript">pfccomet._onDisconnect();</script>'."\n";
- echo '</body></html>';
- flush();
+ // trigger the onDisconnect callback
+ echo '<script type="text/javascript">'.$this->instance_name.'._onDisconnect();</script>'."\n";
+ echo '</body></html>';
+ flush();
- die();
+ die();
+ }
}
- }
- function formatResponse($data)
- {
- return '<script type="text/javascript">pfccomet._onResponse('.json_encode($data).');</script>'."\n";
- }
+ protected function _formatResponse($data)
+ {
+ return '<script type="text/javascript">'.$this->instance_name.'._onResponse('.json_encode($data).');</script>'."\n";
+ }
- function printJavascript($return = false)
- {
- $output = '<script type="text/javascript" src="'.$this->prototypejs_url.'"></script>'."\n";
- $output .= '<script type="text/javascript" src="'.$this->pfccometjs_url.'"></script>'."\n";
- $output .= '<script type="text/javascript">
+ public function printJavascript($return = false)
+ {
+ $output = '<script type="text/javascript" src="'.$this->prototypejs_url.'"></script>'."\n";
+ $output .= '<script type="text/javascript" src="'.$this->pfccometjs_url.'"></script>'."\n";
+ $output .= '<script type="text/javascript">
Event.observe(window, "load", function() {
- pfccomet = new pfcComet({"url":"'.$this->backend_url.'?'.$this->backend_url_flag.'"});'."\n";
- if ( $this->onresponse_callback )
- $output .= ' pfccomet.onResponse = '.$this->onresponse_callback.';'."\n";
- if ( $this->onconnect_callback )
- $output .= ' pfccomet.onConnect = '.$this->onconnect_callback.';'."\n";
- if ( $this->ondisconnect_callback )
- $output .= ' pfccomet.onDisconnect = '.$this->ondisconnect_callback.';'."\n";
- $output .= '
- pfccomet.connect();
+ '.$this->instance_name.' = new pfcComet({"url":"'.$this->backend_url.'?'.$this->backend_url_flag.'"});'."\n";
+ if ( $this->onresponse_callback )
+ $output .= ' '.$this->instance_name.'.onResponse = '.$this->onresponse_callback.';'."\n";
+ if ( $this->onconnect_callback )
+ $output .= ' '.$this->instance_name.'.onConnect = '.$this->onconnect_callback.';'."\n";
+ if ( $this->ondisconnect_callback )
+ $output .= ' '.$this->instance_name.'.onDisconnect = '.$this->ondisconnect_callback.';'."\n";
+ $output .= '
+ '.$this->instance_name.'.connect();
});
</script>'."\n";
- if ($return)
- return $output;
- else
- echo $output;
- }
+ if ($return)
+ return $output;
+ else
+ echo $output;
+ }
}
Modified: branches/pfc-comet/misc/comet-tests/iframe2/tester-loop.php
===================================================================
--- branches/pfc-comet/misc/comet-tests/iframe2/tester-loop.php 2008-03-27 16:03:04 UTC (rev 1236)
+++ branches/pfc-comet/misc/comet-tests/iframe2/tester-loop.php 2008-03-27 17:11:51 UTC (rev 1237)
@@ -8,14 +8,16 @@
}
require_once 'pfccomet.class.php';
-$pfccomet = new pfcComet();
-$pfccomet->pfccometjs_url = './pfccomet.js';
-$pfccomet->prototypejs_url = '../../../data/public/js/prototype.js';
-$pfccomet->backend_loop = true;
-$pfccomet->backend_loop_sleep = 500000; // 100000 microsec = 100 milisec
-$pfccomet->backend_url = './'.basename(__FILE__);
-$pfccomet->backend_callback = 'macallback';
-$pfccomet->onresponse_callback = 'update_servertime_area';
+$params = array();
+$params['pfccometjs_url'] = './pfccomet.js';
+$params['prototypejs_url'] = '../../../data/public/js/prototype.js';
+$params['instance_name'] = 'mypfccomet';
+$params['backend_loop'] = true;
+$params['backend_loop_sleep'] = 500000; // 100000 microsec = 100 milisec
+$params['backend_url'] = './'.basename(__FILE__);
+$params['backend_callback'] = 'macallback';
+$params['onresponse_callback'] = 'update_servertime_area';
+$pfccomet = new pfcComet($params);
$pfccomet->run();
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -38,8 +40,8 @@
<body>
<div id="date">here will be displayed the server time</div>
- <input type="button" value="Disconnect" onclick="pfccomet.disconnect()" />
- <input type="button" value="Connect" onclick="pfccomet.connect()" />
+ <input type="button" value="Disconnect" onclick="<?php echo $params['instance_name']; ?>.disconnect()" />
+ <input type="button" value="Connect" onclick="<?php echo $params['instance_name']; ?>.connect()" />
</body>
</html>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|