• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • OfficeXP menu class(OOP版)

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    ? php /** * 仿Office XP 風格的左邊版面列表 * -------------------------------------------------------------------------------- * blood 于 2/19/2002 4:47:11 PM 加貼在 Visual Basic * * 徐祖寧(嘮叨) 移植于 3/2/2002 * OOP 版 * */ class Frame {
    <?php
    /**
    * 仿OfficeXP風格的左邊版面列表    
    * --------------------------------------------------------------------------------
    * blood 于 2/19/2002 4:47:11 PM 加貼在 Visual Basic
    *
    * 徐祖寧(嘮叨) 移植于 3/2/2002
    * OOP 版
    *
    */

    class Frame {
      function run() {
        global $PHP_SELF;
        echo <<<EOD
    <HTML>
    <HEAD>
    <TITLE>Menu Sample</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    if (window != top) top.location.href = location.href;
    </SCRIPT>
    </HEAD>
      <FRAMESET cols="161,*">        
        <FRAME MARGINWIDTH="0" SRC="$PHP_SELF?key=menu" NAME="menu" SCROLLING=no NORESIZE>
        <FRAME  MARGINWIDTH="0" SRC="$PHP_SELF?key=about" NAME="main" scrolling=auto NORESIZE>
      </FRAMESET>
    </HTML>
    EOD;
      }
    }

    class About {
      function run() {
        echo <<<EOD
    <style>
    body { font-size: 9pt; font-family:"Verdana", "Arial", "宋體"; }
    </style>
    <body>
    <center>
    <br>
    <br>
    關于此菜單
    <br>
    <br>
    說明,此菜單程序只能使用在IE 5以上的版本使用,NetSpace下不能使用,推薦使用IE 6正式中文版
    </center>
    </body>
    EOD;
      }
    }

    class Page {
      function run($id1) {
        global $id;
        echo <<<EOD
    <style>
    body { font-size: 9pt; font-family:"Verdana", "Arial", "宋體"; }
    </style>
    <body>
    <center>
    <br>
    <br>
    歡迎訪問 $id
    </center>
    </body>
    EOD;
      }
    }

    class Menu {
      var $MenuOn = 0;                              //定義分類菜單數目
      var $MenuBackColor = "lightgrey";             //定義分類菜單背景顏色
      var $MenuFontSize = "9pt";                    //定義分類菜單字體
      var $MenuBarHeight = 20;                      //定義分類菜單高度
      var $ItemTextColor = "#000000";               //定義分類菜單項目文字顏色
      var $ItemBackColor = "lightgrey";             //定義分類菜單項目背景顏色
      var $TopMenuHeight = 0;                       //定義分類菜單與頂部的間距
      var $SelectedItemDarkBorder = "#08246B";      //定義分類菜單項目在鼠標移動到上面時的暗邊框顏色
      var $SelectedItemLightBorder = "#08246B";     //定義分類菜單項目在鼠標移動到上面時的亮邊框顏色
      var $SelectedItemBackgroundColor = "#B5BED6"; //定義分類菜單項目在鼠標移動到上面時的背景顏色
      var $menuSubSectionBackColor = "darkgray";    //定義二級菜單背景顏色
      var $menuSubSectionFontColor = "black";       //定義二級菜單菜單字體顏色
      var $defTarget = "main";                      //定義菜單項目超連接默認目標框架

    /**
    * menuStartSection($Seq, $Label)
    *   制作分類菜單
    *   $Seq = 分類菜單序列號,使用菜單序列號控制啟動是顯示順序
    *   $Label = 分類菜單標題
    */
    function menuStartSection($SectionSeq, $SectionName) {
      $menuBackColor = $this->menuBackColor;
      $MenuBarHeight = $this->MenuBarHeight;
      $MenuFontSize = $this->MenuFontSize;
      $menuSection = $this->menuSection;
      $ItemBackColor = $this->ItemBackColor;
      $mh = $this->MenuBarHeight-2;
      echo <<<EOD

    <table bgcolor="$menuBackColo" border=0 cellspacing=0 cellpadding=0 width="100%" height="1">
    <tr height="1">
      <td bgcolor="white"></td>
    </tr>
    </table>
    <table bgcolor="$menuBackColor" border=1 cellspacing=0 cellpadding=0 bordercolor="$menuBackColor" width="100%" height="$mh">
    <tr vAlign="center" height="100%">
      <td nowrap border=3 width="100%" height="100%" bordercolordark=lightgrey bordercolorlight=lightgrey align=center
    style="cursor:hand;" title="$SectionName" onmouseover="status='$SectionName';" onmouseout="status='';
    " onclick="StartSection(menuSection$SectionSeq);">$SectionName</td>
    </tr>
    </table>
    <table border=0 cellspacing=0 cellpadding=0 width="100%" height="1">
    <tr height="1">
      <td bgcolor="Black"></td>
    </tr>
    </table>
    <div name=menuSection$SectionSeq id=menuSection$SectionSeq style="display:'none';overflow:hidden; height:1px;marginRight:0px;">
    <table bgcolor=$ItemBackColor style="marginRight=0px;" border=1 cellspacing=0 cellpadding=0 bordercolor="$ItemBackColor"
    width="100%">
    EOD;
    }

    /**
    * menuAddItem($Label, $Description, $URL, $Target="")
    *   制作菜單項目
    *   $Label = 項目標題
    *   $Description = 項目簡介
    *   $URL = 超連接地址
    *   $Target = 超連接目標框架,默認為$defTarget
    */
    function menuAddItem($itemLabel, $StatusText, $URL, $target="") {
      $SelectedItemDarkBorder = $this->SelectedItemDarkBorder;
      $SelectedItemLightBorder = $this->SelectedItemLightBorder;
      $SelectedItemBackgroundColor = $this->SelectedItemBackgroundColor;
      $ItemTextColor = $this->ItemTextColor;

      if($target == "") $target = $this->defTarget;
      $URL = $this->buildURL($URL);
      echo <<<EOD

    <tr>
      <td width="100%" align=left style="cursor:hand;" title="$StatusText" onmouseover="this.borderColorDark='$SelectedItemDarkBorder';
    this.borderColorLight='$SelectedItemLightBorder';this.style.backgroundColor='$SelectedItemBackgroundColor';
    this.style.color='black';status='$StatusText';" onmouseout="this.borderColorDark='';this.borderColorLight='';
    this.style.backgroundColor='';status='';" onclick="window.open('$URL','$target');"><font color="$ItemTextColor">
    $itemLabel</font></td>
    </tr>
    EOD;
    }

    /**
    * menuAddSubSection($Label)
    *   制作二級分類菜單。
    *   $Label = 二級分類菜單標題
    */
    function menuAddSubSection($ItemLabel) {
      $menuSubSectionBackColor = $this->menuSubSectionBackColor;
      $menuSubSectionFontColor = $this->menuSubSectionFontColor;
      echo <<<EOD

    <tr bgcolor="$menuSubSectionBackColor">
      <td align=center width="100%"><font color="$menuSubSectionFontColor">$ItemLabel</font></td>
    </tr>
    EOD;
    }

    /**
    * menuAddSubSectionLine()
    *   制作項目分割線,使用高度為2的圖片
    */
    function menuAddSubSectionLine() {
      echo <<<EOD

    <tr vAlign="center">
      <td align=center width="100%" height="2" bgcolor="white">
        <table border=0 cellspacing=0 cellpadding=0 width="100%" height="1">
         <tr vAlign="center" height="2">
           <td bgcolor="white"></td>
         </tr>
        </table>
      </td>
    </tr>
    EOD;
    }

    /**
    * menuEndSection()
    *   分類菜單結束
    */
    function menuEndSection() {
      echo <<<EOD

    </table>
    </div>
    EOD;
    }

    /**
    * menuSectionAsItem($Label, $Description, $URL, $Target="")
    *   制作帶超連接的分類菜單,類似菜單項目,可以直接使用
    *   $Label = 分類菜單標題
    *   $Description = 分類菜單簡介
    *   $URL = 超連接地址
    *   $Target = 超連接目標框架,默認為$defTarget
    */
    function menuSectionAsItem($SectionSeq, $SectionName, $SectionDesc, $URL, $target="") {
      $menuBackColor = $this->menuBackColor;
      $MenuBarHeight = $this->MenuBarHeight;

      if($target == "") $target = $this->defTarget;
      $URL = $this->buildURL($URL);
      $mh = $this->MenuBarHeight-2;
      echo <<<EOD

    <table border=0 cellspacing=0 cellpadding=0 width="100%" height="1">
    <tr vAlign="center" height="1">
      <td bgcolor="white"></td>
    </tr>
    </table>
    <table bgcolor="$menuBackColor" border=1 cellspacing=0 cellpadding=0 bordercolor="$menuBackColor" width="100%" height="Smh">
    <tr height="100%" vAlign="center">
      <td border=3 vAlign="middle" width="100%" height="100%" bordercolordark=lightgrey bordercolorlight=lightgrey align=center
    style="cursor:hand;" title="$SectionDesc" onmouseover="status='$SectionDesc';" onmouseout="status='';
    " onclick="window.open('$URL','$target');"><font color="#000000">$SectionName</font></td>
    </tr>
    </table>
    <table border=0 cellspacing=0 cellpadding=0 width="100%" height="1">
    <tr height="1">
      <td bgcolor="Black"></td>
    </tr>
    </table>
    EOD;
    }

    /**
    * 將超連接中的空格替換為+號
    */
    function buildURL($inURL) {
      return str_replace(" ","+",$inURL);
    }
    /**
    * 輸出javascript腳本
    */
    function scriptOut() {
      $dh = $this->TopMenuHeight+($this->MenuBarHeight * $this->menuOn);
      echo <<<EOD

    <script language=javascript>
    var AvailHeight       // 定義可利用的高度
    var LastSection       // 定義將要打開的菜單關閉
    var ThisSection       // 定義當前需要打開的菜單
    var timerDelay=15     // 定義并設置延時
    var menuActive=false  // 測定當前活動的菜單
    var VisibleHeight     // 定義顯示高度,確定是否顯示滾動條
    var AniRatio          // 定義菜單顯示滑動的速度

    function getSizing() {
      // 菜單打開時得到的可利用的高度
      AvailHeight=document.body.clientHeight-$dh
      if(AvailHeight<=0) {
        LastSection.style.display='none';
      }else {
        // 改變菜單顯示滑動速度的比率
        AniRatio=0.75;                          // 設定速度
        if (AvailHeight>200) {AniRatio=0.667;}  
        if (AvailHeight>500) {AniRatio=0.5;}    // 根據可利用高度調整速度
        LastSection.style.height=AvailHeight;
        LastSection.style.overflow='visible';
        LastSection.style.display='';
        VisibleHeight=parseInt(LastSection.clientHeight);
        if (VisibleHeight>AvailHeight) {LastSection.style.overflow='auto';}else{LastSection.style.overflow='hidden';};
      }
    }

    function slideMenu() {
      // 菜單滑動函數
      if(parseInt(LastSection.style.height)>1) {
        LastSection.style.height=parseInt(parseInt(LastSection.style.height)*AniRatio);
        ThisSection.style.height=AvailHeight-parseInt(LastSection.style.height);
        var movetimer=setTimeout("slideMenu()",timerDelay)  ;
      }else {
        // 完成菜單滑動,顯示新打開的菜單,隱藏前面以打開的菜單
        LastSection.style.display='none';
        ThisSection.style.height=AvailHeight;
        menuActive=false;
        if (VisibleHeight>AvailHeight) {ThisSection.style.overflow='auto';};
        ThisSection.style.marginRight=0;
        LastSection=ThisSection;
        clearTimeout(movetimer);
      }
    }

    function StartSection(theSection) {
      // 開始滑動菜單,檢測是否對菜單進行單擊
      if(menuActive==false) {
        if(LastSection!=theSection) {
          menuActive=true;
          ThisSection=theSection;
          LastSection.style.overflow='hidden';
          ThisSection.style.overflow='visible';
          ThisSection.style.display='';
          VisibleHeight=parseInt(ThisSection.clientHeight);
          ThisSection.style.overflow='hidden';
          ThisSection.style.display='none';
          ThisSection.style.height=1;
          LastSection.style.height=AvailHeight-1;
          LastSection.style.display='';
          ThisSection.style.display='';
          slideMenu()
        }
      }
    }

    window.onresize=getSizing
    // 啟動時打開默認的序號為第一個的菜單
    LastSection=document.all.menuSection1;
    LastSection.style.display='';
    getSizing();
    </script>
    EOD;
    }

    function run() {
      global $PHP_SELF;
      $MenuFontSize = $this->MenuFontSize;
      $MenuBackColor = $this->MenuBackColor;
      echo <<<EOD
    <style>
    td { font-size: $MenuFontSize; font-family:"Verdana", "Arial", "宋體"; }
    </style>
    <body leftmargin=0 topmargin=0 rightmargin=0 bgcolor="$MenuBackColor">
    EOD;

      /**
       * 創建菜單
       */
      $this->menuStartSection(2, "代碼世界");
      $this->menuAddItem("Joy ASP", "歡迎訪問Joy ASP", "$PHP_SELF?key=page&id=Joy ASP");
      $this->menuAddItem("Java 世界", "歡迎訪問Java 世界", "$PHP_SELF?key=page&id=Java 世界");
      $this->menuAddItem("DotNet 時代", "歡迎訪問DotNet 時代", "$PHP_SELF?key=page&id=DotNet 時代");
      $this->menuAddItem("Visual Basic", "歡迎訪問Visual Basic", "$PHP_SELF?key=page&id=Visual Basic");
      $this->menuAddItem("Delphi", "歡迎訪問Delphi", "$PHP_SELF?key=page&id=Delphi");
      $this->menuEndSection();

      $this->menuStartSection(3, "開心一刻");
      $this->menuAddItem("傳統笑話", "傳統笑話", "$PHP_SELF?key=page&id=傳統笑話");
      $this->menuAddItem("近代笑話", "近代笑話", "$PHP_SELF?key=page&id=近代笑話");
      $this->menuAddSubSection("兒童類");
      $this->menuAddItem("校園笑話", "校園笑話", "$PHP_SELF?key=page&id=校園笑話");
      $this->menuAddItem("幼兒笑話", "幼兒笑話", "$PHP_SELF?key=page&id=幼兒笑話");
      $this->menuAddItem("少年笑話", "少年笑話", "$PHP_SELF?key=page&id=少年笑話");
      $this->menuAddSubSectionLine();
      $this->menuAddItem("中學時代笑話", "中學時代笑話", "$PHP_SELF?key=page&id=中學時代笑話");
      $this->menuAddSubSection("成人笑話");
      $this->menuAddItem("帶顏色的笑話", "帶顏色的笑話", "$PHP_SELF?key=page&id=帶顏色的笑話");
      $this->menuAddItem("笑話林", "笑話林", "$PHP_SELF?key=page&id=笑話林");
      $this->menuEndSection();

      $this->menuSectionAsItem(3, "菜單簡介", "菜單簡介", "$PHP_SELF?key=about");

      $this->menuStartSection(1, "個人收藏夾");
      $this->menuAddItem("DotNet 時代", "歡迎訪問DotNet 時代", "$PHP_SELF?key=page&id=DotNet 時代");
      $this->menuEndSection();

      // 將個人收藏夾定為啟動菜單
      $this->menuOn = 4;
      $this->scriptOut();
      echo "</body>\n";
    }
    }

    class Application {
      var $frame;
      var $menu;
      var $page;
      var $about;
      function Application() {
        $this->frame = new Frame;
        $this->about = new About;
        $this->page = new Page;
        $this->menu = new Menu;
      }
      function run($key,$id="") {
        switch($key) {
          case "menu":
            $this->menu->run();
            break;
          case "page":
            $this->page->run($id);
            break;
          case "about":
            $this->about->run();
            break;
          default:
            $this->frame->run();
        }
      }
    }
    ?>
    <?php
    /** 運行 **/
    $app = new Application;
    $app->run($key,$id);
    ?>

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>