From 50ec0bb2891634868402a9245fbc9902a08f79db Mon Sep 17 00:00:00 2001 From: wangchunsheng Date: Tue, 9 Nov 2010 06:28:36 +0000 Subject: [PATCH] - remove the long license. --- www/index.php | 205 ++++++------ www/install.php | 115 +++---- www/theme/default/style.css | 623 ++++++++++++++++++------------------ www/upgrade.php | 115 +++---- 4 files changed, 503 insertions(+), 555 deletions(-) diff --git a/www/index.php b/www/index.php index e9580a49cf..62a5434049 100644 --- a/www/index.php +++ b/www/index.php @@ -1,109 +1,96 @@ -. - * - * @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com) - * @author Chunsheng Wang - * @package ZenTaoMS - * @version $Id$ - * @link http://www.zentao.net - */ -error_reporting(0); - -/* 记录最开始的时间。*/ -$timeStart = _getTime(); - -/* 包含必须的类文件。*/ -include '../framework/router.class.php'; -include '../framework/control.class.php'; -include '../framework/model.class.php'; -include '../framework/helper.class.php'; - -/* 实例化路由对象,加载配置,设置时区。*/ -$app = router::createApp('pms', dirname(dirname(__FILE__))); -$config = $app->loadConfig('common'); -$app->setDebug(); -$app->setTimezone(); - -/* 判断是否有GET变量mode=getconfig。*/ -if(isset($_GET['mode']) and $_GET['mode'] == 'getconfig') die($app->exportConfig()); - -/* 检查是否已经安装。*/ -if(!isset($config->installed) or !$config->installed) die(header('location: install.php')); - -/* 连接到数据库。*/ -$dbh = $app->connectDB(); - -/* 如果是debug模式,记录sql查询。*/ -if($config->debug) register_shutdown_function('_saveSQL'); - -/* 设置客户端所使用的语言、风格。*/ -$app->setClientLang(); -$app->setClientTheme(); - -/* 加载语言文件,加载公共模块。*/ -$lang = $app->loadLang('common'); -$common = $app->loadCommon(); - -/* 加载相应的lib文件,并设置超全局变量的引用。*/ -$app->loadClass('front', $static = true); -$app->loadClass('filter', $static = true); -$app->setSuperVars(); - -/* 处理请求,验证权限,加载相应的模块。*/ -$app->parseRequest(); -$common->checkPriv(); -$app->loadModule(); - -/* Debug信息,监控页面的执行时间和内存占用。*/ -if($config->debug) -{ - $timeUsed = round(_getTime() - $timeStart, 4) * 1000; - $memory = round(memory_get_peak_usage() / 1024, 1); - $querys = count(dao::$querys); - echo "
TIME: $timeUsed ms, MEM: $memory KB, SQL: $querys.
"; - echo ''; -} - -/* 获取系统时间,微秒为单位。*/ -function _getTime() -{ - list($usec, $sec) = explode(" ", microtime()); - return ((float)$usec + (float)$sec); -} - -/* 保存query记录。*/ -function _saveSQL() -{ - global $app; - $sqlLog = $app->getLogRoot() . 'sql.' . date('Ymd') . '.log'; - $fh = @fopen($sqlLog, 'a'); - if(!$fh) return false; - fwrite($fh, date('Ymd H:i:s') . ": " . $app->getURI() . "\n"); - foreach(dao::$querys as $query) fwrite($fh, " $query\n"); - fwrite($fh, "\n"); - fclose($fh); -} - -/* print_r。*/ -function a($var) -{ - echo ""; - print_r($var); - echo ""; -} + + * @package ZenTaoMS + * @version $Id$ + * @link http://www.zentao.net + */ +error_reporting(0); + +/* 记录最开始的时间。*/ +$timeStart = _getTime(); + +/* 包含必须的类文件。*/ +include '../framework/router.class.php'; +include '../framework/control.class.php'; +include '../framework/model.class.php'; +include '../framework/helper.class.php'; + +/* 实例化路由对象,加载配置,设置时区。*/ +$app = router::createApp('pms', dirname(dirname(__FILE__))); +$config = $app->loadConfig('common'); +$app->setDebug(); +$app->setTimezone(); + +/* 判断是否有GET变量mode=getconfig。*/ +if(isset($_GET['mode']) and $_GET['mode'] == 'getconfig') die($app->exportConfig()); + +/* 检查是否已经安装。*/ +if(!isset($config->installed) or !$config->installed) die(header('location: install.php')); + +/* 连接到数据库。*/ +$dbh = $app->connectDB(); + +/* 如果是debug模式,记录sql查询。*/ +if($config->debug) register_shutdown_function('_saveSQL'); + +/* 设置客户端所使用的语言、风格。*/ +$app->setClientLang(); +$app->setClientTheme(); + +/* 加载语言文件,加载公共模块。*/ +$lang = $app->loadLang('common'); +$common = $app->loadCommon(); + +/* 加载相应的lib文件,并设置超全局变量的引用。*/ +$app->loadClass('front', $static = true); +$app->loadClass('filter', $static = true); +$app->setSuperVars(); + +/* 处理请求,验证权限,加载相应的模块。*/ +$app->parseRequest(); +$common->checkPriv(); +$app->loadModule(); + +/* Debug信息,监控页面的执行时间和内存占用。*/ +if($config->debug) +{ + $timeUsed = round(_getTime() - $timeStart, 4) * 1000; + $memory = round(memory_get_peak_usage() / 1024, 1); + $querys = count(dao::$querys); + echo "
TIME: $timeUsed ms, MEM: $memory KB, SQL: $querys.
"; + echo ''; +} + +/* 获取系统时间,微秒为单位。*/ +function _getTime() +{ + list($usec, $sec) = explode(" ", microtime()); + return ((float)$usec + (float)$sec); +} + +/* 保存query记录。*/ +function _saveSQL() +{ + global $app; + $sqlLog = $app->getLogRoot() . 'sql.' . date('Ymd') . '.log'; + $fh = @fopen($sqlLog, 'a'); + if(!$fh) return false; + fwrite($fh, date('Ymd H:i:s') . ": " . $app->getURI() . "\n"); + foreach(dao::$querys as $query) fwrite($fh, " $query\n"); + fwrite($fh, "\n"); + fclose($fh); +} + +/* print_r。*/ +function a($var) +{ + echo ""; + print_r($var); + echo ""; +} diff --git a/www/install.php b/www/install.php index 5d82d34103..4242bbd194 100644 --- a/www/install.php +++ b/www/install.php @@ -1,64 +1,51 @@ -. - * - * @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com) - * @author Chunsheng Wang - * @package ZenTaoMS - * @version $Id$ - * @link http://www.zentao.net - */ -error_reporting(0); -session_start(); -define('IN_INSTALL', true); - -/* 包含必须的类文件。*/ -include '../framework/router.class.php'; -include '../framework/control.class.php'; -include '../framework/model.class.php'; -include '../framework/helper.class.php'; - -/* 实例化路由对象,加载配置。*/ -$app = router::createApp('pms', dirname(dirname(__FILE__))); -$config = $app->loadConfig('common'); - -/* 检查是否已经安装过。*/ -if(!isset($_SESSION['installing']) and isset($config->installed) and $config->installed) die(header('location: index.php')); - -/* 重新设置config参数,进行安装。*/ -$config->set('requestType', 'GET'); -$config->set('debug', true); -$config->set('default.module', 'install'); -$app->setDebug(); - -/* 如果已经保存配置文件,则自动连接到数据库。*/ -if(isset($config->installed) and $config->installed) $dbh = $app->connectDB(); - -/* 设置客户端所使用的语言、风格。*/ -$app->setClientLang(); -$app->setClientTheme(); - -/* 加载语言文件,加载公共模块。*/ -$lang = $app->loadLang('common'); - -/* 加载相应的lib文件,并设置超全局变量的引用。*/ -$app->loadClass('front', $static = true); -$app->loadClass('filter', $static = true); -$app->setSuperVars(); - -/* 处理请求,验证权限,加载相应的模块。*/ -$app->parseRequest(); -$app->loadModule(); + + * @package ZenTaoMS + * @version $Id$ + * @link http://www.zentao.net + */ +error_reporting(0); +session_start(); +define('IN_INSTALL', true); + +/* 包含必须的类文件。*/ +include '../framework/router.class.php'; +include '../framework/control.class.php'; +include '../framework/model.class.php'; +include '../framework/helper.class.php'; + +/* 实例化路由对象,加载配置。*/ +$app = router::createApp('pms', dirname(dirname(__FILE__))); +$config = $app->loadConfig('common'); + +/* 检查是否已经安装过。*/ +if(!isset($_SESSION['installing']) and isset($config->installed) and $config->installed) die(header('location: index.php')); + +/* 重新设置config参数,进行安装。*/ +$config->set('requestType', 'GET'); +$config->set('debug', true); +$config->set('default.module', 'install'); +$app->setDebug(); + +/* 如果已经保存配置文件,则自动连接到数据库。*/ +if(isset($config->installed) and $config->installed) $dbh = $app->connectDB(); + +/* 设置客户端所使用的语言、风格。*/ +$app->setClientLang(); +$app->setClientTheme(); + +/* 加载语言文件,加载公共模块。*/ +$lang = $app->loadLang('common'); + +/* 加载相应的lib文件,并设置超全局变量的引用。*/ +$app->loadClass('front', $static = true); +$app->loadClass('filter', $static = true); +$app->setSuperVars(); + +/* 处理请求,验证权限,加载相应的模块。*/ +$app->parseRequest(); +$app->loadModule(); diff --git a/www/theme/default/style.css b/www/theme/default/style.css index 0dec760ea0..9676e5fb2e 100644 --- a/www/theme/default/style.css +++ b/www/theme/default/style.css @@ -1,318 +1,305 @@ -/** -* The css file of ZenTaoMS. -* -* ZenTaoMS is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. - -* ZenTaoMS is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with ZenTaoMS. If not, see . -* -* @copyright Copyright: 2009 Chunsheng Wang -* @author Chunsheng Wang -* @package ZenTaoMS -* @version $Id: style.css 1454 2009-10-23 01:45:26Z wwccss $ -* @link http://www.zentaoms.com -*/ -/*-----------------------GLOBAL SETTING----------------------------*/ -body{padding-bottom:50px; color:#000; background:url(images/main/bgmain.png) repeat-x 0 -35px;} - -/*-----------------------FIELDSET SETTING----------------------------*/ -fieldset {border:1px solid #b3c8dc; padding:8px 10px 8px 10px; margin-bottom:8px; color:#333;} -legend {font-weight:bold;} -fieldset .table-1 {margin:0;} -fieldset .bd-1px, fieldset .bd-1px td, fieldset .bd-1px th {border:1px solid #b3c8dc; padding:2px} -fieldset tr, fieldset td, fieldset th {border:none; padding:2px} -del{background:#fcc;} -ins{background:#cfc; text-decoration:none} - -/*-----------------------FORM SETTING----------------------------*/ -.text-1 {width: 90%} -.text-2 {width: 120px} -.text-3 {width: 240px} -.text-4 {width: 360px} -.text-5 {width: 480px} - -.select-1 {width: 90%} -.select-2 {width: 125px} -.select-3 {width: 245px} -.select-4 {width: 360px} -.select-5 {width: 480px} -.switcher {font-size:smaller; font-weight:bold;border:none; color:white; background:#002242} - -.area-1{width: 90%;} -.area-2{width: 120px} -.area-3{width: 240px} -.area-4{width: 360px} -.area-5{width: 480px} - -.button-s{padding:3px 20px 3px 20px} -.button-r{padding:3px 20px 3px 20px} -.button-c{padding:3px 20px 3px 20px} - -/*-----------------------TABLE SETTING----------------------------*/ -table, th, td {border-color:#b3c8dc;} -tr, th, td {padding:2px 3px 2px 3px} -caption {border:1px solid #b3c8dc; background:#cbd5d9; margin:0; padding:5px; border-bottom:none; text-align:left; font-weight:bold; font-size:14px;} -.caption-tr {caption-side:top; text-align:right; border:none; background:none;} -.caption-tl {caption-side:top; text-align:left; border:none; background:none;} -.table-1 {width:100%; margin-bottom:10px} - -/*--------------------------------------------------------*/ -.table-2 {width:240px;margin-bottom:10px} -.table-3 {width:360px;margin-bottom:10px} -.table-4 {width:480px;margin-bottom:10px} -.table-5 {width:600px;margin-bottom:10px} -.table-6 {width:800px;margin-bottom:10px} - -.colhead td {text-align:center; background-color:#cbd5d9;} -.colhead th {text-align:center; background-color:#cbd5d9; font-size:14px} -.colhead a {text-decoration:none; display:block;} -.colhead th a{color:#333; font-size:14px;} -.colhead th a:hover{color:#F30;} - -.rowhead {font-weight:bold; text-align:right; width:100px} -.fixed {table-layout:fixed} - -.nobr {overflow:hidden; white-space:nowrap;} -.fixed th, .fixed td {overflow:hidden; white-space:nowrap;} -.nofixed th, .nofixed td {overflow:visible; white-space:normal} - -.odd {background:#fff;} -.even {background:#ebf0f4;} -.hoover {background:#d0dee3;} -.clicked {background:#fce6a2;} - -/* copyed from tablesorter plugin. */ -table.tablesorter thead tr div{padding:0; margin:0} -table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {color:red; background:#BCD4EC} -table.tablesorter thead tr .headerSortDown a, table.tablesorter thead tr .headerSortUp a {color:red} -table.tablesorter thead tr .header {background-image: url(./images/tablesorter/bg.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} -table.tablesorter thead tr .headerSortUp {background-image: url(./images/tablesorter/asc.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} -table.tablesorter thead tr .headerSortDown {background-image: url(./images/tablesorter/desc.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} - -/*-----------------------LAYOUT SETTING----------------------------*/ -.f-left {float:left; padding-left: 5px} -.f-right {float:right; padding-right:5px} -.c-none {clear:none;} -.c-left {clear:left;} -.c-right {clear:right;} -.c-both {clear:both;} -.a-center {text-align: center;} -.a-right {text-align: right;} -.a-left {text-align: left;} - -.half-left {float:left; width:48%; text-align:left; clear:left} -.half-right {float:right; width:48%; text-align:right; clear:right} - -.hidden {display:none} -.block {display:block} -.inline {display:inline} - -.w-p5 {width: 5%} -.w-p10 {width: 10%} -.w-p15 {width: 15%} -.w-p20 {width: 20%} -.w-p25 {width: 25%} -.w-p30 {width: 30%} -.w-p35 {width: 35%} -.w-p40 {width: 40%} -.w-p45 {width: 45%} -.w-p50 {width: 50%} -.w-p55 {width: 55%} -.w-p60 {width: 60%} -.w-p65 {width: 65%} -.w-p70 {width: 70%} -.w-p75 {width: 75%} -.w-p80 {width: 80%} -.w-p85 {width: 85%} -.w-p90 {width: 90%} -.w-p100 {width: 100%} - -.w-20px {width:20px} -.w-30px {width:30px} -.w-40px {width:40px} -.w-45px {width:45px} -.w-50px {width:50px} -.w-60px {width:60px} -.w-70px {width:70px} -.w-80px {width:80px} -.w-100px {width:100px} -.w-120px {width:120px} -.w-130px {width:130px} -.w-140px {width:140px} -.w-150px {width:150px} -.w-200px {width:200px} - -.w-id {width:45px;} -.w-pri {width:30px;} -.w-severity {width:40px;} -.w-hour {width:40px;} -.w-date {width:70px;} -.w-user {width:60px;} -.w-status {width:50px} -.w-type {width:80px} -.w-resolution{width:60px} - -.margin-zero {margin: 0} -.margin-10px {margin: 10px} -.margin-15px {margin: 15px} -.margin-20px {margin: 20px} -.padding-zero{padding: 0} -.padding-10px{padding: 10px} -.padding-5px {padding: 5px} - -.mt-10px {margin-top: 10px} -.mr-10px {margin-right: 10px} -.mb-10px {margin-bottom: 10px} -.ml-10px {margin-left: 10px} - -.mt-zero {margin-top: 0} -.mr-zero {margin-right: 0} -.mb-zero {margin-bottom: 0} -.ml-zero {margin-left: 0} - -.pt-10px {padding-top: 10px} -.pr-10px {padding-right: 10px} -.pb-10px {padding-bottom:10px} -.pl-10px {padding-left: 10px} -.ph-10px {padding-left:10px; padding-right:10px} -.pv-10px {padding-top: 10px; padding-bottom:10px} - -.f-12px {font-size:12px} -.f-14px {font-size:14px} -.f-16px {font-size:16px} - -.box-title {border:1px solid #b3c8dc; background-color:#cbd5d9; margin:0; padding:4px; border-bottom:none; text-align:left; font-weight:bold; color:#333;} -.box-content {border:1px solid #b3c8dc; padding:5px} - -/*-----------------------BORDER SETTING--------------------------*/ -.bd-1px {border:1px solid} -.bt-1px {border-top:1px solid} -.bl-1px {border-left:1px solid} -.bb-1px {border-bottom:1px solid} -.br-1px {border-right:1px solid} -.bd-none {border:none} -.bd-green {border-color:#58CB64} -.bd-yellow {border-color:#F4BF20} -.bd-blue {border-color:#64B7D7} -.bd-gray {border-color:#bcbcbc;} - -/*-----------------------BACKGROUND SETTING----------------------------*/ -.bg-green {background-color:#DDF1D8;} -.bg-blue {background-color:#DEEEF4} -.bg-yellow {background-color:#FBF5C6;} -.bg-gray {background-color:#efefef;} -.bg-white {background-color:white;} - -/*-----------------------COLOR SETTING----------------------------*/ -.red {color:red;} -.blue {color:blue} -.yellow {color:yellow;} -.gray {color:gray;} -.green {color:green;} -.star {color:red; font-size:18px; font-weight:bold;} -.warning {background:yellow; color:red; font-weight:bold} - -/*-----------------------SPECIAL PART SETTING--------------------*/ - -/* ×²¿µĵ¼º½Ìõ¡£*/ -#topbar {padding:3px; color:#fff} -#topbar .yui-b, #topbar a {color:white} - -/* µ¼º½ÌõͨÓÃÉèÖá£*/ -#navbar ul {margin:0; padding:0;} -#navbar li {margin:0; padding:0; float:left; text-align:center; list-style-type:none;} -#navbar a {text-decoration:none;} -#navbar a:hover {color:#ff3600;} - -/* һ¼¶²˵¥¡£*/ -#mainmenu ul {background-color:#16528b; height:30px; line-height:30px} -#mainmenu li {padding:0 8px 0 8px; border-right:3px solid #002242; color:white; font-size:14px;} -#mainmenu a {color:white; font-weight:normal;} -#mainmenu .active {background-color:#cfe5f9;} -#mainmenu .active a {color:#333; font-weight:bold;} - -#mainmenu #searchbox{float:right; border:none;} -#mainmenu .button-s{border:none; padding:2px} - -/* ģ¿éµIJ˵¥¡£*/ -#modulemenu {color:#F30; margin-bottom:5px; font-size:14px;} -#modulemenu ul {background-color:#cfe5f9; height:28px; line-height:28px;} -#modulemenu li {padding:0 5px 0 5px;} -#modulemenu a {color:#111; font-weight:normal; font-size:14px;} -#modulemenu .active a {color:#002f75; font-weight:bold;} -#modulemenu .right {float:right; font-weight:bold;} -#modulemenu .right a {color:red; font-weight:bold} - -/* ¹¦Äܲ˵¥¡£*/ -#featurebar {margin: 0 0 5px 0; background-color:#b8cdf0; height:28px; line-height:28px; cursor:pointer; padding-top:0px;} -#featurebar a {text-decoration:none; color:#333; margin-right:3px; font-size:12px; background-color:#eee; border:1px solid #9b9b9b; padding:2px 3px 2px 3px;} -#featurebar a:hover {color:#ff3600; border-color:#F30;} -#featurebar .f-right a {color:#ff3600; font-weight:bold;} -#featurebar #bysearchTab a {padding-left:10px; padding-right:10px} -#featurebar select {font-size:12px; height:22px; margin-top:3px;} - -#featurebar .active a {color:#03F; font-weight:bold; background-color:#c6e2fa; border:1px solid #66a9e7;} -#featurebar .active select {border:1px solid #0000ff;} - -/* TreeMenuÉèÖá£*/ -#tree li {list-style-type:none;} -#tree .active {color:blue; font-weight:bold} - -/* ±êÌ⡣*/ -#titlebar{font-size:14px; font-weight:bold; background-color:#b8cdf0; padding:0px 5px; margin:10px 0; height:30px; line-height:30px; border:1px solid #a5cbf3;} -#titlebar #main {float:left; width:70%; clear:none; text-align:left} -#titlebar div {float:right; width:30%; clear:none; text-align:right} -#titlebar #main input {font-size:14px} -#titlebar .text-1 {width:80%} - -/* ²úƷ£¬ÏîĿÇл»µÄѡÔñÆ÷¡£*/ -#switcher {color:white; font-style:bold; background:red; cursor:pointer;} - -/* ҳÃæÆäËûԪËء£*/ -.history, .changes {border:1px solid #ccc; background:#f2f2f2; padding:10px; margin-top:10px; margin-bottom:10px; color:#333; line-height:20px;} -.history .changes {border:none; margin:0; padding:0} -.content {font-size:14px; padding:10px} -.content p {margin:0} -.roadmap {width:200px; margin:10px auto 10px auto; padding:10px; border:1px solid gray;} -.roadmap a{color:white;} -.release {background:darkgreen; color:white} -.plan {background:#9F9F5F;} -.search {display:none; float:left; clear:none; width:16px; height:16px; padding:0; margin:0 0 0 2px; text-indent:-2000px; overflow:hidden; background: url(images/main/search.gif) no-repeat;} -.searchleft{display:block; float:left; clear:none;} -.helplink {font-size:9px} - -.tabs a{display:block; width:80%; margin:auto auto 10px auto; padding:5px; border:1px solid blue; text-decoration:none; overflow:hidden; white-space:nowrap; text-align:center} -.tabs a.current {background:green; color:white} - -/* ҳ½š£*/ -#footer {width:100%; position:fixed; bottom:0; left:0; margin:0; color:#333; background-color:#CEE7F3; border-top:1px solid #59AED7;} -#crumbs {padding:5px 0 5px 10px;} -#poweredby {padding-right:12px; margin-top:5px; display:block;} - -/* debugʹÓõÄÉèÖá£*/ -#debugbar {width:100%; position:fixed; bottom:27px; left:0; margin:0; background-color:#CEE7F3} -#hiddenbar {width:100%; position:fixed; bottom:35px; left:0; margin:0; background-color:#CEE7F3} -.hiddenwin {display:none} -.debugwin {display:block; width:100%; height:20px;} - -/*-----------------------OTHERS SETTINGS --------------------*/ -.done {color:#078F0E;} -.wait {color:#888;} -.doing {color:#F30;} -.delayed {background:#93D5F9;} -.pass {color:#078F0E;} -.blocked {background:yellow;} -.fail {color:red} -.hand {cursor:pointer} -.strong {font-weight:bold} -.deleted {text-decoration:line-through} -.linkbox a {display:block} -.owner {background:#e4e4e4; font-size:smaller} +/** +* The css file of ZenTaoMS. +* +* @copyright Copyright: 2009 Chunsheng Wang +* @author Chunsheng Wang +* @package ZenTaoMS +* @version $Id: style.css 1454 2009-10-23 01:45:26Z wwccss $ +* @link http://www.zentaoms.com +*/ +/*-----------------------GLOBAL SETTING----------------------------*/ +body{padding-bottom:50px; color:#000; background:url(images/main/bgmain.png) repeat-x 0 -35px;} + +/*-----------------------FIELDSET SETTING----------------------------*/ +fieldset {border:1px solid #b3c8dc; padding:8px 10px 8px 10px; margin-bottom:8px; color:#333;} +legend {font-weight:bold;} +fieldset .table-1 {margin:0;} +fieldset .bd-1px, fieldset .bd-1px td, fieldset .bd-1px th {border:1px solid #b3c8dc; padding:2px} +fieldset tr, fieldset td, fieldset th {border:none; padding:2px} +del{background:#fcc;} +ins{background:#cfc; text-decoration:none} + +/*-----------------------FORM SETTING----------------------------*/ +.text-1 {width: 90%} +.text-2 {width: 120px} +.text-3 {width: 240px} +.text-4 {width: 360px} +.text-5 {width: 480px} + +.select-1 {width: 90%} +.select-2 {width: 125px} +.select-3 {width: 245px} +.select-4 {width: 360px} +.select-5 {width: 480px} +.switcher {font-size:smaller; font-weight:bold;border:none; color:white; background:#002242} + +.area-1{width: 90%;} +.area-2{width: 120px} +.area-3{width: 240px} +.area-4{width: 360px} +.area-5{width: 480px} + +.button-s{padding:3px 20px 3px 20px} +.button-r{padding:3px 20px 3px 20px} +.button-c{padding:3px 20px 3px 20px} + +/*-----------------------TABLE SETTING----------------------------*/ +table, th, td {border-color:#b3c8dc;} +tr, th, td {padding:2px 3px 2px 3px} +caption {border:1px solid #b3c8dc; background:#cbd5d9; margin:0; padding:5px; border-bottom:none; text-align:left; font-weight:bold; font-size:14px;} +.caption-tr {caption-side:top; text-align:right; border:none; background:none;} +.caption-tl {caption-side:top; text-align:left; border:none; background:none;} +.table-1 {width:100%; margin-bottom:10px} + +/*--------------------------------------------------------*/ +.table-2 {width:240px;margin-bottom:10px} +.table-3 {width:360px;margin-bottom:10px} +.table-4 {width:480px;margin-bottom:10px} +.table-5 {width:600px;margin-bottom:10px} +.table-6 {width:800px;margin-bottom:10px} + +.colhead td {text-align:center; background-color:#cbd5d9;} +.colhead th {text-align:center; background-color:#cbd5d9; font-size:14px} +.colhead a {text-decoration:none; display:block;} +.colhead th a{color:#333; font-size:14px;} +.colhead th a:hover{color:#F30;} + +.rowhead {font-weight:bold; text-align:right; width:100px} +.fixed {table-layout:fixed} + +.nobr {overflow:hidden; white-space:nowrap;} +.fixed th, .fixed td {overflow:hidden; white-space:nowrap;} +.nofixed th, .nofixed td {overflow:visible; white-space:normal} + +.odd {background:#fff;} +.even {background:#ebf0f4;} +.hoover {background:#d0dee3;} +.clicked {background:#fce6a2;} + +/* copyed from tablesorter plugin. */ +table.tablesorter thead tr div{padding:0; margin:0} +table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {color:red; background:#BCD4EC} +table.tablesorter thead tr .headerSortDown a, table.tablesorter thead tr .headerSortUp a {color:red} +table.tablesorter thead tr .header {background-image: url(./images/tablesorter/bg.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} +table.tablesorter thead tr .headerSortUp {background-image: url(./images/tablesorter/asc.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} +table.tablesorter thead tr .headerSortDown {background-image: url(./images/tablesorter/desc.gif); background-repeat: no-repeat; background-position: center right; cursor: pointer;} + +/*-----------------------LAYOUT SETTING----------------------------*/ +.f-left {float:left; padding-left: 5px} +.f-right {float:right; padding-right:5px} +.c-none {clear:none;} +.c-left {clear:left;} +.c-right {clear:right;} +.c-both {clear:both;} +.a-center {text-align: center;} +.a-right {text-align: right;} +.a-left {text-align: left;} + +.half-left {float:left; width:48%; text-align:left; clear:left} +.half-right {float:right; width:48%; text-align:right; clear:right} + +.hidden {display:none} +.block {display:block} +.inline {display:inline} + +.w-p5 {width: 5%} +.w-p10 {width: 10%} +.w-p15 {width: 15%} +.w-p20 {width: 20%} +.w-p25 {width: 25%} +.w-p30 {width: 30%} +.w-p35 {width: 35%} +.w-p40 {width: 40%} +.w-p45 {width: 45%} +.w-p50 {width: 50%} +.w-p55 {width: 55%} +.w-p60 {width: 60%} +.w-p65 {width: 65%} +.w-p70 {width: 70%} +.w-p75 {width: 75%} +.w-p80 {width: 80%} +.w-p85 {width: 85%} +.w-p90 {width: 90%} +.w-p100 {width: 100%} + +.w-20px {width:20px} +.w-30px {width:30px} +.w-40px {width:40px} +.w-45px {width:45px} +.w-50px {width:50px} +.w-60px {width:60px} +.w-70px {width:70px} +.w-80px {width:80px} +.w-100px {width:100px} +.w-120px {width:120px} +.w-130px {width:130px} +.w-140px {width:140px} +.w-150px {width:150px} +.w-200px {width:200px} + +.w-id {width:45px;} +.w-pri {width:30px;} +.w-severity {width:40px;} +.w-hour {width:40px;} +.w-date {width:70px;} +.w-user {width:60px;} +.w-status {width:50px} +.w-type {width:80px} +.w-resolution{width:60px} + +.margin-zero {margin: 0} +.margin-10px {margin: 10px} +.margin-15px {margin: 15px} +.margin-20px {margin: 20px} +.padding-zero{padding: 0} +.padding-10px{padding: 10px} +.padding-5px {padding: 5px} + +.mt-10px {margin-top: 10px} +.mr-10px {margin-right: 10px} +.mb-10px {margin-bottom: 10px} +.ml-10px {margin-left: 10px} + +.mt-zero {margin-top: 0} +.mr-zero {margin-right: 0} +.mb-zero {margin-bottom: 0} +.ml-zero {margin-left: 0} + +.pt-10px {padding-top: 10px} +.pr-10px {padding-right: 10px} +.pb-10px {padding-bottom:10px} +.pl-10px {padding-left: 10px} +.ph-10px {padding-left:10px; padding-right:10px} +.pv-10px {padding-top: 10px; padding-bottom:10px} + +.f-12px {font-size:12px} +.f-14px {font-size:14px} +.f-16px {font-size:16px} + +.box-title {border:1px solid #b3c8dc; background-color:#cbd5d9; margin:0; padding:4px; border-bottom:none; text-align:left; font-weight:bold; color:#333;} +.box-content {border:1px solid #b3c8dc; padding:5px} + +/*-----------------------BORDER SETTING--------------------------*/ +.bd-1px {border:1px solid} +.bt-1px {border-top:1px solid} +.bl-1px {border-left:1px solid} +.bb-1px {border-bottom:1px solid} +.br-1px {border-right:1px solid} +.bd-none {border:none} +.bd-green {border-color:#58CB64} +.bd-yellow {border-color:#F4BF20} +.bd-blue {border-color:#64B7D7} +.bd-gray {border-color:#bcbcbc;} + +/*-----------------------BACKGROUND SETTING----------------------------*/ +.bg-green {background-color:#DDF1D8;} +.bg-blue {background-color:#DEEEF4} +.bg-yellow {background-color:#FBF5C6;} +.bg-gray {background-color:#efefef;} +.bg-white {background-color:white;} + +/*-----------------------COLOR SETTING----------------------------*/ +.red {color:red;} +.blue {color:blue} +.yellow {color:yellow;} +.gray {color:gray;} +.green {color:green;} +.star {color:red; font-size:18px; font-weight:bold;} +.warning {background:yellow; color:red; font-weight:bold} + +/*-----------------------SPECIAL PART SETTING--------------------*/ + +/* ×²¿µĵ¼º½Ìõ¡£*/ +#topbar {padding:3px; color:#fff} +#topbar .yui-b, #topbar a {color:white} + +/* µ¼º½ÌõͨÓÃÉèÖá£*/ +#navbar ul {margin:0; padding:0;} +#navbar li {margin:0; padding:0; float:left; text-align:center; list-style-type:none;} +#navbar a {text-decoration:none;} +#navbar a:hover {color:#ff3600;} + +/* һ¼¶²˵¥¡£*/ +#mainmenu ul {background-color:#16528b; height:30px; line-height:30px} +#mainmenu li {padding:0 8px 0 8px; border-right:3px solid #002242; color:white; font-size:14px;} +#mainmenu a {color:white; font-weight:normal;} +#mainmenu .active {background-color:#cfe5f9;} +#mainmenu .active a {color:#333; font-weight:bold;} + +#mainmenu #searchbox{float:right; border:none;} +#mainmenu .button-s{border:none; padding:2px} + +/* ģ¿éµIJ˵¥¡£*/ +#modulemenu {color:#F30; margin-bottom:5px; font-size:14px;} +#modulemenu ul {background-color:#cfe5f9; height:28px; line-height:28px;} +#modulemenu li {padding:0 5px 0 5px;} +#modulemenu a {color:#111; font-weight:normal; font-size:14px;} +#modulemenu .active a {color:#002f75; font-weight:bold;} +#modulemenu .right {float:right; font-weight:bold;} +#modulemenu .right a {color:red; font-weight:bold} + +/* ¹¦Äܲ˵¥¡£*/ +#featurebar {margin: 0 0 5px 0; background-color:#b8cdf0; height:28px; line-height:28px; cursor:pointer; padding-top:0px;} +#featurebar a {text-decoration:none; color:#333; margin-right:3px; font-size:12px; background-color:#eee; border:1px solid #9b9b9b; padding:2px 3px 2px 3px;} +#featurebar a:hover {color:#ff3600; border-color:#F30;} +#featurebar .f-right a {color:#ff3600; font-weight:bold;} +#featurebar #bysearchTab a {padding-left:10px; padding-right:10px} +#featurebar select {font-size:12px; height:22px; margin-top:3px;} + +#featurebar .active a {color:#03F; font-weight:bold; background-color:#c6e2fa; border:1px solid #66a9e7;} +#featurebar .active select {border:1px solid #0000ff;} + +/* TreeMenuÉèÖá£*/ +#tree li {list-style-type:none;} +#tree .active {color:blue; font-weight:bold} + +/* ±êÌ⡣*/ +#titlebar{font-size:14px; font-weight:bold; background-color:#b8cdf0; padding:0px 5px; margin:10px 0; height:30px; line-height:30px; border:1px solid #a5cbf3;} +#titlebar #main {float:left; width:70%; clear:none; text-align:left} +#titlebar div {float:right; width:30%; clear:none; text-align:right} +#titlebar #main input {font-size:14px} +#titlebar .text-1 {width:80%} + +/* ²úƷ£¬ÏîĿÇл»µÄѡÔñÆ÷¡£*/ +#switcher {color:white; font-style:bold; background:red; cursor:pointer;} + +/* ҳÃæÆäËûԪËء£*/ +.history, .changes {border:1px solid #ccc; background:#f2f2f2; padding:10px; margin-top:10px; margin-bottom:10px; color:#333; line-height:20px;} +.history .changes {border:none; margin:0; padding:0} +.content {font-size:14px; padding:10px} +.content p {margin:0} +.roadmap {width:200px; margin:10px auto 10px auto; padding:10px; border:1px solid gray;} +.roadmap a{color:white;} +.release {background:darkgreen; color:white} +.plan {background:#9F9F5F;} +.search {display:none; float:left; clear:none; width:16px; height:16px; padding:0; margin:0 0 0 2px; text-indent:-2000px; overflow:hidden; background: url(images/main/search.gif) no-repeat;} +.searchleft{display:block; float:left; clear:none;} +.helplink {font-size:9px} + +.tabs a{display:block; width:80%; margin:auto auto 10px auto; padding:5px; border:1px solid blue; text-decoration:none; overflow:hidden; white-space:nowrap; text-align:center} +.tabs a.current {background:green; color:white} + +/* ҳ½š£*/ +#footer {width:100%; position:fixed; bottom:0; left:0; margin:0; color:#333; background-color:#CEE7F3; border-top:1px solid #59AED7;} +#crumbs {padding:5px 0 5px 10px;} +#poweredby {padding-right:12px; margin-top:5px; display:block;} + +/* debugʹÓõÄÉèÖá£*/ +#debugbar {width:100%; position:fixed; bottom:27px; left:0; margin:0; background-color:#CEE7F3} +#hiddenbar {width:100%; position:fixed; bottom:35px; left:0; margin:0; background-color:#CEE7F3} +.hiddenwin {display:none} +.debugwin {display:block; width:100%; height:20px;} + +/*-----------------------OTHERS SETTINGS --------------------*/ +.done {color:#078F0E;} +.wait {color:#888;} +.doing {color:#F30;} +.delayed {background:#93D5F9;} +.pass {color:#078F0E;} +.blocked {background:yellow;} +.fail {color:red} +.hand {cursor:pointer} +.strong {font-weight:bold} +.deleted {text-decoration:line-through} +.linkbox a {display:block} +.owner {background:#e4e4e4; font-size:smaller} diff --git a/www/upgrade.php b/www/upgrade.php index b53c0cf8d2..610c2d864d 100644 --- a/www/upgrade.php +++ b/www/upgrade.php @@ -1,64 +1,51 @@ -. - * - * @copyright Copyright 2009-2010 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com) - * @author Chunsheng Wang - * @package ZenTaoMS - * @version $Id$ - * @link http://www.zentao.net - */ -error_reporting(0); - -/* 包含必须的类文件。*/ -include '../framework/router.class.php'; -include '../framework/control.class.php'; -include '../framework/model.class.php'; -include '../framework/helper.class.php'; - -/* 实例化路由对象,加载配置,连接到数据库。*/ -$app = router::createApp('pms', dirname(dirname(__FILE__))); -$config = $app->loadConfig('common'); - -/* 重新设置config参数,进行升级。*/ -$config->set('requestType', 'GET'); -$config->set('debug', true); -$config->set('default.module', 'upgrade'); -$app->setDebug(); - -/* 连接到数据库。*/ -$dbh = $app->connectDB(); - -/* 设置客户端所使用的语言、风格。*/ -$app->setClientLang(); -$app->setClientTheme(); - -/* 加载语言文件,加载公共模块。*/ -$lang = $app->loadLang('common'); -$common = $app->loadCommon(); - -/* 加载相应的lib文件,并设置超全局变量的引用。*/ -$app->loadClass('front', $static = true); -$app->loadClass('filter', $static = true); -$app->setSuperVars(); - -/* 检查是否已经是最新的版本。*/ -$config->installedVersion = $common->loadModel('setting')->getVersion(); -if(version_compare($config->version, $config->installedVersion) <= 0) die(header('location: index.php')); - -/* 处理请求,验证权限,加载相应的模块。*/ -$app->parseRequest(); -$app->loadModule(); + + * @package ZenTaoMS + * @version $Id$ + * @link http://www.zentao.net + */ +error_reporting(0); + +/* 包含必须的类文件。*/ +include '../framework/router.class.php'; +include '../framework/control.class.php'; +include '../framework/model.class.php'; +include '../framework/helper.class.php'; + +/* 实例化路由对象,加载配置,连接到数据库。*/ +$app = router::createApp('pms', dirname(dirname(__FILE__))); +$config = $app->loadConfig('common'); + +/* 重新设置config参数,进行升级。*/ +$config->set('requestType', 'GET'); +$config->set('debug', true); +$config->set('default.module', 'upgrade'); +$app->setDebug(); + +/* 连接到数据库。*/ +$dbh = $app->connectDB(); + +/* 设置客户端所使用的语言、风格。*/ +$app->setClientLang(); +$app->setClientTheme(); + +/* 加载语言文件,加载公共模块。*/ +$lang = $app->loadLang('common'); +$common = $app->loadCommon(); + +/* 加载相应的lib文件,并设置超全局变量的引用。*/ +$app->loadClass('front', $static = true); +$app->loadClass('filter', $static = true); +$app->setSuperVars(); + +/* 检查是否已经是最新的版本。*/ +$config->installedVersion = $common->loadModel('setting')->getVersion(); +if(version_compare($config->version, $config->installedVersion) <= 0) die(header('location: index.php')); + +/* 处理请求,验证权限,加载相应的模块。*/ +$app->parseRequest(); +$app->loadModule();