1. <?php
  2. /**
  3. * Default display driver that used the basic QF renderer.
  4. *
  5. * @category   PEAR
  6. * @package    PEAR_PackageFileManager_Frontend_Web
  7. * @author     Laurent Laville <pear@laurent-laville.org>
  8. * @copyright  2005-2006 Laurent Laville
  9. * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
  10. * @since      File available since Release 0.1.0
  11. */
  12.  
  13. /**
  14. * Default display driver that used the basic QF renderer.
  15. *
  16. * @category   PEAR
  17. * @package    PEAR_PackageFileManager_Frontend_Web
  18. * @author     Laurent Laville <pear@laurent-laville.org>
  19. * @copyright  2005-2006 Laurent Laville
  20. * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
  21. * @since      Class available since Release 0.1.0
  22. */
  23. class ActionDisplay extends HTML_QuickForm_Action_Display
  24. {
  25.     /**
  26.      *
  27.      * @since  0.1.0
  28.      * @access private
  29.      */
  30.     function _renderForm(&$page)
  31.     {
  32.  
  33.         $formTemplate = "\n<form{attributes}>"
  34.                       . "\n<table class=\"maintable\">"
  35.                       . "\n{content}"
  36.                       . "\n</table>"
  37.                       . "\n</form>";
  38.  
  39.         $headerTemplate = "\n<tr>"
  40.                         . "\n\t<td class=\"hdr\" colspan=\"2\">"
  41.                         . "\n\t\t{header}"
  42.                         . "\n\t</td>"
  43.                         . "\n</tr>";
  44.  
  45.         $elementNavig    = "\n<tr valign=\"top\">"
  46.                          . "\n\t<td colspan=\"2\">"
  47.                          . "\n\t{element}"
  48.                          . "\n\t</td>"
  49.                          . "\n</tr>";
  50.  
  51.         $elementTemplate = "\n<tr>"
  52.                          . "\n\t<td class=\"form-label\"><!-- BEGIN required --><span style=\"color: #ff0000\">*</span>&nbsp;<!-- END required --><!-- BEGIN label --><b>{label}</b><!-- END label --></td>"
  53.                          . "\n\t<td class=\"form-input\">{element}<!-- BEGIN error --><br /><span style=\"color: #ff0000\">{error}</span><!-- END error --></td>"
  54.                          . "\n</tr>";
  55.  
  56.         $groupTemplate = "\n\t\t<table cellspacing=\"0\">"
  57.                        . "\n\t\t<tr>"
  58.                        . "\n\t\t\t{content}"
  59.                        . "\n\t\t</tr>"
  60.                        . "\n\t\t</table>\n\t";
  61.  
  62.         $groupElementTemplate = "<td valign=\"top\">{element}"
  63.                               . "<!-- BEGIN label --><br />"
  64.                               . "<span style=\"font-size:90%;\">{label}<!-- BEGIN required --><span style=\"color: #ff0000\">*</span><!-- END required --></span>"
  65.                               . "<!-- END label -->"
  66.                               . "</td>";
  67.  
  68.         $renderer =& $page->defaultRenderer();
  69.  
  70.         $renderer->setFormTemplate($formTemplate);
  71.         $renderer->setHeaderTemplate($headerTemplate);
  72.         $renderer->setElementTemplate($elementTemplate);
  73.  
  74.         $renderer->setElementTemplate($elementNavig, 'tabs');
  75.         $renderer->setElementTemplate($elementNavig, 'buttons');
  76.  
  77.         $groups = array('pearInstaller', 'phpVersion',              // on page 1
  78.                         'releaseLicense',                           // on page 2
  79.                         'plugin'                                    // on page 5
  80.                         );
  81.  
  82.         foreach ($groups as $grp) {
  83.             $renderer->setGroupTemplate($groupTemplate, $grp);
  84.             $renderer->setGroupElementTemplate($groupElementTemplate, $grp);
  85.         }
  86.  
  87.         $page->accept($renderer);
  88.         $styles = file_get_contents(PEAR_PACKAGEFILEMANAGER_FRONTEND_WEBDIR . 'styles.css');
  89.         $js     = file_get_contents(PEAR_PACKAGEFILEMANAGER_FRONTEND_WEBDIR . 'doSelection.js');
  90.         $body   = $renderer->toHtml();
  91.  
  92.         $html = <<<HTML
  93. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  94. <html>
  95. <head>
  96. <title>PEAR_PackageFileManager Web Frontend</title>
  97. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  98. <style type="text/css">
  99. <!--
  100. $styles
  101. // -->
  102. </style>
  103. <script type="text/javascript">
  104. //<![CDATA[
  105. $js
  106. //]]>
  107. </script>
  108. </head>
  109. <body>
  110. <h1>PEAR_PackageFileManager Web Frontend</h1>
  111. $body
  112. </body>
  113. </html>
  114. HTML;
  115.         echo $html;
  116.     }
  117. }
  118. ?>