sTEFANs Subversion Web Contol (SWC)
[ class tree: Swc ] [ index: Swc ] [ all elements ]

Source for file index.php

Documentation is available at index.php

  1. <?php
  2. /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3. SVN Web Control
  4. Copyright ©2006 by sTEFANs
  5. Created on 20.02.2006
  6. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or
  10. (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330,
  20. Boston, MA 02111-1307, USA.
  21. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  22. */
  23.  
  24. /**
  25.  * Main page that combines SWC control bar
  26.  * and additional output, e.g. project page.
  27.  * 
  28.  * @package Swc
  29.  * @author Stefan Schraml
  30.  * @copyright Copyright ©2006 by sTEFANs
  31.  * @license http://opensource.org/licenses/lgpl-license.php GNU General Public License
  32.  * @version v1.0.1
  33.  * @since v1.0.0
  34.  */
  35.  
  36. /** Project configuration interface */
  37. require_once('inc/config.inc.php');
  38. /** Common utility functions */
  39. require_once('inc/utils.inc.php');
  40. /** Common definitions */
  41. require_once('inc/var.inc.php');
  42. /** HTML generation library */
  43. require_once('inc/page.inc.php');
  44. /** SVN execution. */
  45. require_once('inc/svn_executor.inc.php');
  46. /** User settings. */
  47. require_once('inc/user_settings.inc.php');
  48.  
  49. /** SWC control bar. */
  50. require_once(STD_CTRL_CONTENT);
  51. /** SWC details content. */
  52. require_once(STD_DETAILS_CONTENT);
  53. /** SWC archive content. */
  54. require_once(STD_ARCHIVE_CONTENT);
  55. /** Default SWC main frame. */
  56. require_once(STD_MAIN_FRAME);
  57.  
  58.     /** 
  59.      * Sets cookies for each user setting.
  60.      * 
  61.      * @since v1.0.0
  62.      */
  63.     function ProcessUserSettings(){
  64.         $settings SwcUserSettings::GetInstance();
  65.         $settings->ProcessSettings();
  66.     }
  67.     
  68.     /** 
  69.      * Copies all entries from $_POST to $_SESSION to keep
  70.      * them availabe for all pages of the frameset.
  71.      * 
  72.      * @since v1.0.0
  73.      */
  74.     function PrepareSession(){
  75. //PrintDebugArray($_SESSION, 'Prepare session: SESSION');
  76.         if (!isset($_POST[IDX_REUSE_SESSION])){        
  77.             $selected_project NULL;
  78.             if (isset($_SESSION[IDX_SEL_PROJECT])){
  79.                 $selected_project $_SESSION[IDX_SEL_PROJECT];
  80.             }
  81.             
  82.             unset($_SESSION);
  83.     //        $_SESSION[IDX_ROOT_URL] = $_SERVER['REQUEST_URI'];    
  84.             // workaround: If only defines are used as index, $_SESSION is empty 
  85.             // within svn_control_page. No glue why!
  86.             $_SESSION['root_url'$_SERVER['REQUEST_URI'];    
  87.             if (isset($_POST)){
  88.                 foreach ($_POST as $key => $val){
  89.                     $_SESSION[$key$val;
  90.                 }
  91.             }    
  92.             if (isset($_GET)){
  93.                 foreach ($_GET as $key => $val){
  94.                     $_SESSION[$key$val;
  95.                 }
  96.             }
  97.             if (!isset($_SESSION[IDX_SEL_PROJECT]&& $selected_project != NULL){
  98.                 $_SESSION[IDX_SEL_PROJECT$selected_project;
  99.             }
  100.         }
  101.     }
  102.     
  103.     /** 
  104.      * Returns the URL for main frame content.
  105.      * @return string URL for main frame.
  106.      * 
  107.      * @since v1.0.0
  108.      */
  109.     function GetMainFrameUrl(){
  110.         $settings SwcUserSettings::GetInstance();
  111.         $config GetSelectedConfig();
  112.         $main_frame_src STD_MAIN_FRAME;
  113.         if (isset($_SESSION[IDX_MAIN_FRAME_SRC]&& $_SESSION[IDX_MAIN_FRAME_SRC== STD_HELP_PAGE){
  114.                 $main_frame_src $_SESSION[IDX_MAIN_FRAME_SRC];
  115.         else if ($settings->IsPinProjectPage(&& $config != NULL){
  116.                 $main_frame_src $config->GetMainFrame();
  117.         else if (isset($_SESSION[IDX_MAIN_FRAME_SRC])){
  118.             $main_frame_src $_SESSION[IDX_MAIN_FRAME_SRC];
  119.         else if ($config != NULL){
  120.             $main_frame_src $config->GetMainFrame();
  121.         }
  122.         return $main_frame_src;
  123.     }
  124.     
  125.     /** 
  126.      * Returns the URL for a child window content.
  127.      * @return string URL for child window or NULL
  128.      *  if no child window should be displayed.
  129.      * 
  130.      * @since v1.0.0
  131.      */
  132.     function GetChildWindowUrl(){
  133.         $settings SwcUserSettings::GetInstance();
  134.         $config GetSelectedConfig();
  135.         $url NULL;
  136.         
  137.         if ($settings->IsSeparateResultWindow()){
  138.             $url STD_DETAILS_PAGE;
  139.             if (isset($_SESSION[IDX_MAIN_FRAME_SRC]&& 
  140.                     $config != NULL && 
  141.                     $_SESSION[IDX_MAIN_FRAME_SRC!= $config->GetMainFrame(&& 
  142.                     $_SESSION[IDX_MAIN_FRAME_SRC!= STD_DETAILS_CONTENT){
  143.                 $url $_SESSION[IDX_MAIN_FRAME_SRC];
  144.             }
  145.         }
  146.         return $url;
  147.     }
  148.  
  149.     /** 
  150.      * Prints the HTML frameset.
  151.      * @param string $main_frame_src HTML Source for the main frame.
  152.      * @param string $ctrl_frame_src HTML Source for the control frame.
  153.      * 
  154.      * @since v1.0.0
  155.      */
  156.     function PrintGlobalPage($main_frame_src$exec_results){
  157.         $on_load_js GetOnLoadJs();
  158.         PrintPageHeader(T(TK_INDEX_PAGE_TITLE)NULL$on_load_js);
  159.             // Global content table
  160.             OpenTable();
  161.                 //Control content part
  162.                 OpenTableCell('control');
  163.                     SvnCpPrintPageContent();
  164.                 CloseTableCell();
  165.             NewTableRow();
  166.                 if (!IsWebspaceCheckedOut(&& $main_frame_src != STD_HELP_PAGE){
  167.                     PrintDefaultPageContent();
  168.                 else if ($main_frame_src == STD_DETAILS_CONTENT){
  169.                     OpenTableCell();
  170.                         SwcDetailsPrintExecutionResults($exec_results);
  171.                     CloseTableCell();
  172.                 else if ($main_frame_src == STD_ARCHIVE_CONTENT){
  173.                     OpenTableCell();
  174.                         SwcArchivePrintPage();
  175.                     CloseTableCell();
  176.                 else {
  177.                     $settings SwcUserSettings::GetInstance();
  178.                     $frame_width $settings->GetProjectFrameWidth();
  179.                     $frame_height $settings->GetProjectFrameHeight();
  180.                     PrintTableIFrameCell($main_frame_src'main_frame'
  181.                                                             $frame_width$frame_height00false
  182.                                                             'text_low_bold_red'T(TK_INDEX_PROJECT_FRAME_TITLE));
  183.                 }
  184.             CloseTable();
  185.         PrintPageFooter();
  186.     }
  187.     
  188.     /** 
  189.      * Prints a javascript code to open a child window.
  190.      * @return string Javascript to open a child window.
  191.      * 
  192.      * @since v1.0.0
  193.      */
  194.     function GetOnLoadJs(){
  195.         $code NULL;
  196.         $url GetChildWindowUrl();
  197.         if ($url != NULL){        
  198.             $settings SwcUserSettings::GetInstance();
  199.             $width $settings->GetProjectFrameWidth();
  200.             $height $settings->GetProjectFrameHeight();
  201.             $code 'window.open(\''.$url.'\', \'sep_window\', \'dependent=yes, innerWidth='.$width.', innerHeight='.$height.'\'); return true;';
  202.         }
  203.         return $code;
  204.     }
  205.     
  206.     /** 
  207.      * Main entry point for the start page.
  208.      * 
  209.      * @since v1.0.0
  210.      */
  211.     function PrintStartPage(){        
  212.         ProcessUserSettings();
  213.         PrepareSession();
  214.         $main_frame_src GetMainFrameUrl();
  215.         $exec_results SvnExecute();
  216.         $_SESSION[IDX_EXEC_RES$exec_results;
  217.         PrintGlobalPage($main_frame_src$exec_results);
  218.     }
  219.     
  220.     PrintStartPage();
  221.  
  222. ?>

Documentation generated on Fri, 03 Nov 2006 18:44:58 +0100 by phpDocumentor 1.3.0RC6
for sTEFANs POWERED BY eBC.bz