home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / observer_simple.php < prev    next >
Encoding:
PHP Script  |  2004-03-24  |  2.4 KB  |  98 lines

  1. <?php 
  2. /**
  3.  * Observer ProgressBar example. Uses a custom observer class.
  4.  * 
  5.  * @version    $Id: observer_simple.php,v 1.1 2003/11/15 18:27:10 thesaur Exp $
  6.  * @author     Laurent Laville <pear@laurent-laville.org>
  7.  * @package    HTML_Progress
  8.  */
  9.  
  10. require_once ('HTML/Progress.php');
  11. require_once ('HTML/Progress/observer.php');
  12.  
  13. // 1. Defines ProgressBar observer
  14. class MyObserver extends HTML_Progress_Observer
  15. {
  16.     var $_console;
  17.     var $_out;
  18.     
  19.     function MyObserver($out)
  20.     {
  21.         $this->_console = '.' . DIRECTORY_SEPARATOR . 'observer_complex.log';
  22.         $this->HTML_Progress_Observer();
  23.         $this->_out = strtolower($out);
  24.     }
  25.  
  26.     function notify($event)
  27.     {
  28.         if (is_array($event)) {
  29.             $log = isset($event['log']) ? $event['log'] : "undefined event id.";
  30.             $val = isset($event['value']) ? $event['value'] : "unknown value";
  31.             $msg = "$log = $val";
  32.         } else {
  33.             $msg = $event;
  34.         }
  35.         if ($this->_out == 'file') {
  36.             error_log("$msg \n", 3, $this->_console);
  37.         } else {
  38.             print ("$msg <br />\n");
  39.     }
  40.     }
  41. }
  42.  
  43. // 2. Creates ProgressBar
  44. $bar = new HTML_Progress();
  45. $bar->setIncrement(5);
  46.  
  47. // 3. Creates and attach a listener 
  48. $observer = new MyObserver('screen');
  49. //$observer = new MyObserver('file');
  50.  
  51. $ok = $bar->addListener($observer);
  52. if (!$ok) {
  53.     die ("Cannot add a valid listener to progress bar !");
  54. }
  55.  
  56. // 4. Changes look-and-feel of ProgressBar
  57. $ui = $bar->getUI();
  58. $ui->setStringAttributes('color = red');
  59. $ui->setComment('Simple Observer ProgressBar example');
  60.  
  61. ?>
  62. <!DOCTYPE html
  63.     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  64.     "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  65.  
  66. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  67. <head>
  68. <title>Simple Observer ProgressBar example</title>
  69. <style type="text/css">
  70. <!--
  71. <?php echo $bar->getStyle(); ?>
  72. // -->
  73. </style>
  74. <script type="text/javascript">
  75. <!--
  76. <?php echo $bar->getScript(); ?>
  77. //-->
  78. </script>
  79. </head>
  80. <body>
  81. <h1><?php echo basename(__FILE__); ?></h1>
  82.  
  83. <?php 
  84. echo $bar->toHTML(); 
  85.  
  86. do {
  87.     $bar->display();
  88.     if ($bar->getPercentComplete() == 1) {
  89.         break;   // the progress bar has reached 100%
  90.     }
  91.     $bar->incValue();
  92. } while(1);
  93. ?>
  94.  
  95. <p><< <a href="index.html">Back examples TOC</a></p>
  96.  
  97. </body>
  98. </html>