莫相离 发表于 2015-2-4 00:23:32

PHP教程之OfficeXP_menu(进程版)

兴趣可能会慢慢消亡,所以适当培养兴趣会激发自己无线的乐趣,有了乐趣,编程有啥难的。进程   <?php
/**
* 仿OfficeXP作风的右边版面列表   
* --------------------------------------------------------------------------------
* blood 于 2/19/2002 4:47:11 PM 加贴在 Visual Basic
*
* 徐祖宁(絮聒) 移植于 2/28/2002
* 更正局部毛病
*
*/

if($key == ""):
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>
    <FRAMEMARGINWIDTH="0" SRC="$PHP_SELF?key=about" NAME="main" scrolling=auto NORESIZE>
</FRAMESET>
</HTML>
EOD;
endif;

if($key == "menu"):
/**
*
* $MenuOn                      界说分类菜双数目
* $MenuBackColor               界说分类菜单后台色彩
* $MenuFontSize                界说分类菜单字体
* $MenuBarHeight               界说分类菜单高度
* $ItemTextColor               界说分类菜单项目文字色彩
* $ItemBackColor               界说分类菜单项目后台色彩
* $TopMenuHeight               界说分类菜单与顶部的间距
* $SelectedItemDarkBorder      界说分类菜单项目在鼠标挪动到下面时的暗边框色彩
* $SelectedItemLightBorder   界说分类菜单项目在鼠标挪动到下面时的亮边框色彩
* $SelectedItemBackgroundColor 界说分类菜单项目在鼠标挪动到下面时的后台色彩
* $menuSubSectionBackColor   界说二级菜单后台色彩
* $menuSubSectionFontColor   界说二级菜单菜单字体色彩
* $defTarget                   界说菜单项目超毗连默许方针框架
*/
$TopMenuHeight = 0;         //设置分类菜单与顶部的间距
$MenuBarHeight = 20;          //设置分类菜单高度
$MenuFontSize = "9pt";            //设置菜单字体巨细

//咱们利用仿Office XP作风的外不雅,也能够利用通俗外不雅。
$menu_mode = false;

if($menu_mode) {
//通俗菜单外不雅
$MenuBackColor = "lightgrey";             //设置后台色彩
$ItemBackColor = "#7f7f7f";               //设置菜单项目后台色
$ItemTextColor = "#ffffff";               //设置菜单项目文字色彩
$SelectedItemDarkBorder = "#ffffff";      //设置菜单项目在鼠标挪动到下面时的暗边框色彩
$SelectedItemLightBorder = "#000000";   //设置菜单项目在鼠标挪动到下面时的亮边框色彩
$SelectedItemBackgroundColor = "";      //设置菜单项目在鼠标挪动到下面时的后台色彩
$menuSubSectionBackColor = "lightgrey";   //设置二级菜单后台色彩
$menuSubSectionFontColor="black";          //设置二级菜单字体色彩
}else {
//仿Office XP作风外不雅
$MenuBackColor = "lightgrey";             //设置后台色彩
$ItemBackColor = "lightgrey";             //设置菜单项目后台色
$ItemTextColor = "#000000";               //设置菜单项目文字色彩
$SelectedItemDarkBorder = "#08246B";      //设置菜单项目在鼠标挪动到下面时的暗边框色彩
$SelectedItemLightBorder = "#08246B";   //设置菜单项目在鼠标挪动到下面时的亮边框色彩
$SelectedItemBackgroundColor = "#B5BED6"; //设置菜单项目在鼠标挪动到下面时的后台色彩
$menuSubSectionBackColor = "darkgray";    //设置二级菜单后台色彩
$menuSubSectionFontColor = "black";       //设置二级菜单字体色彩
}
$defTarget = "main";    //设置菜单项目超毗连默许方针框架

echo <<<EOD
<style>
td { font-size: $MenuFontSize; font-family:"Verdana", "Arial", "宋体"; }
</style>
<body leftmargin=0 topmargin=0 rightmargin=0 bgcolor="$MenuBackColor">
EOD;

$menuOn = 0;             //对菜双数目初始化

/**
* 绘制菜双方法:
* menuStartSection($Seq, $Label)
*   制造分类菜单
*   $Seq = 分类菜单序列号,利用菜单序列号掌握启动是显示按次
*   $Label = 分类菜单题目
* menuAddItem($Label, $Description, $URL, $Target="")
*   制造菜单项目
*   $Label = 项方针题
*   $Description = 项目简介
*   $URL = 超毗连地址
*   $Target = 超毗连方针框架,默许为$defTarget
* menuAddSubSection($Label)
*   制造二级分类菜单。
*   $Label = 二级分类菜单题目
* menuAddSubSectionLine()
*   制造项目朋分线,利用高度为2的图片
* menuEndSection()
*   分类菜单停止
* menuSectionAsItem($Label, $Description, $URL, $Target="")
*   制造带超毗连的分类菜单,相似菜单项目,可以直接利用
*   $Label = 分类菜单题目
*   $Description = 分类菜单简介
*   $URL = 超毗连地址
*   $Target = 超毗连方针框架,默许为$defTarget
*/

/**
* 函数界说
*/
function menuAddItem($itemLabel, $StatusText, $URL, $target="") {
global $defTarget,
         $SelectedItemDarkBorder,
         $SelectedItemLightBorder,
         $ItemTextColor,
         $SelectedItemBackgroundColor,
         $MenuFontSize ;
if($target == "") $target = $defTarget;
$URL = rawurldecode($URL);
echo <<<EOD

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

function menuAddSubSection($ItemLabel) {
global $menuSubSectionBackColor,
         $MenuFontSize,
         $menuSubSectionFontColor;
echo <<<EOD

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

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;
}

function menuSectionAsItem($SectionSeq, $SectionName, $SectionDesc, $URL, $target="") {
global $defTarget,
         $menuBackColor,
         $MenuBarHeight,
         $MenuFontSize;
if($target == "") $target = $defTarget;
$URL = rawurldecode($URL);
$mh = $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" onmou搜索引擎优化ver="status='$SectionDesc';" onmou搜索引擎优化ut="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 menuStartSection($SectionSeq, $SectionName) {
global $menuBackColor,
         $MenuBarHeight,
         $MenuFontSize,
         $menuSection,
         $ItemBackColor;
$mh = $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" onmou搜索引擎优化ver="status='$SectionName';" onmou搜索引擎优化ut="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;
}

function menuEndSection() {
echo <<<EOD

</table>
</div>
EOD;
}

/**
* 创立菜单
*/
menuStartSection(2, "代码世界");
menuAddItem("Joy ASP", "接待会见Joy ASP", "$PHP_SELF?key=page&id=Joy ASP");
menuAddItem("Java 世界", "接待会见Java 世界", "$PHP_SELF?key=page&id=Java 世界");
menuAddItem("DotNet 时期", "接待会见DotNet 时期", "$PHP_SELF?key=page&id=DotNet 时期");
menuAddItem("Visual Basic", "接待会见Visual Basic", "$PHP_SELF?key=page&id=Visual Basic");
menuAddItem("Delphi", "接待会见Delphi", "$PHP_SELF?key=page&id=Delphi");
menuEndSection();

menuStartSection(3, "高兴一刻");
menuAddItem("传统笑话", "传统笑话", "$PHP_SELF?key=page&id=传统笑话");
menuAddItem("近代笑话", "近代笑话", "$PHP_SELF?key=page&id=近代笑话");
menuAddSubSection("儿童类");
menuAddItem("校园笑话", "校园笑话", "$PHP_SELF?key=page&id=校园笑话");
menuAddItem("幼儿笑话", "幼儿笑话", "$PHP_SELF?key=page&id=幼儿笑话");
menuAddItem("少年笑话", "少年笑话", "$PHP_SELF?key=page&id=少年笑话");
menuAddSubSectionLine();
menuAddItem("中学时期笑话", "中学时期笑话", "$PHP_SELF?key=page&id=中学时期笑话");
menuAddSubSection("成人笑话");
menuAddItem("带色彩的笑话", "带色彩的笑话", "$PHP_SELF?key=page&id=带色彩的笑话");
menuAddItem("笑话林", "笑话林", "$PHP_SELF?key=page&id=笑话林");
menuEndSection();

menuSectionAsItem(3, "菜单简介", "菜单简介", "$PHP_SELF?key=about");

menuStartSection(1, "团体保藏夹");
menuAddItem("DotNet 时期", "接待会见DotNet 时期", "$PHP_SELF?key=page&id=DotNet 时期");
menuEndSection();

// 将团体保藏夹定为启动菜单
$menuOn = 4;

/**
* 输入javascript剧本
*/
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-$TopMenuHeight-($MenuBarHeight*$menuOn)
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>
</body>
EOD;

endif;


if($key == "page"):
echo <<<EOD
<style>
body { font-size: 9pt; font-family:"Verdana", "Arial", "宋体"; }
</style>
<body>
<center>
<br>
<br>
接待会见 $id
</center>
</body>
EOD;
endif;

if($key == "about"):
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;
endif;
?>
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。

飘飘悠悠 发表于 2015-2-4 12:54:59

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

再见西城 发表于 2015-2-6 18:32:30

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

兰色精灵 发表于 2015-2-9 17:03:59

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

第二个灵魂 发表于 2015-2-27 12:07:54

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

变相怪杰 发表于 2015-3-9 03:30:03

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

愤怒的大鸟 发表于 2015-3-16 20:12:50

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

简单生活 发表于 2015-3-20 04:31:48

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

深爱那片海 发表于 2015-3-20 18:00:17

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

透明 发表于 2015-3-27 18:08:36

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

莫相离 发表于 2015-4-6 09:03:00

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

再现理想 发表于 2015-4-9 17:54:35

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

只想知道 发表于 2015-4-11 17:48:32

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

仓酷云 发表于 2015-4-19 09:37:50

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

爱飞 发表于 2015-4-22 01:50:41

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

金色的骷髅 发表于 2015-4-30 11:58:09

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

冷月葬花魂 发表于 2015-4-30 14:47:44

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

活着的死人 发表于 2015-5-6 13:09:40

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

小妖女 发表于 2015-6-18 10:09:55

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

山那边是海 发表于 2015-6-29 13:45:57

基础有没有对学习php没有太大区别,关键是兴趣。
页: [1]
查看完整版本: PHP教程之OfficeXP_menu(进程版)