[parasy commit] r43 - in trunk: docs sql upload upload/include/javascript upload/installer upload/templates/babel

0 views
Skip to first unread message

codesite...@google.com

unread,
Feb 7, 2008, 10:00:48 AM2/7/08
to project...@googlegroups.com
Author: Saiccc
Date: Thu Feb 7 07:00:29 2008
New Revision: 43

Added:
trunk/upload/installer/
trunk/upload/installer.php
trunk/upload/installer/Project_Parasy_plugin_add_reply.txt
trunk/upload/installer/Project_Parasy_plugin_now.txt
trunk/upload/installer/Project_Parasy_plugin_tod.txt
trunk/upload/installer/bg.png (contents, props changed)
trunk/upload/installer/global.func.php
trunk/upload/installer/index.htm
trunk/upload/installer/install.lang.php
trunk/upload/installer/parasy.sql
trunk/upload/installer/style.css
Removed:
trunk/docs/Project_Parasy_plugin_add_reply.txt
trunk/docs/Project_Parasy_plugin_now.txt
trunk/docs/Project_Parasy_plugin_tod.txt
trunk/docs/Project_Parasy_style_setting.txt
Modified:
trunk/docs/How to Install.txt
trunk/sql/parasy.mysql.sql
trunk/upload/include/javascript/home_tabs.js
trunk/upload/templates/babel/discuz.htm

Log:
Enjoy Project Parasy Installer!

Modified: trunk/docs/How to Install.txt
==============================================================================
--- trunk/docs/How to Install.txt (original)
+++ trunk/docs/How to Install.txt Thu Feb 7 07:00:29 2008
@@ -14,57 +14,20 @@
请确认您的服务器支持.htaccess文件的使用,否则将将
无法使用本风格。
同时我们建议您在测试环境下尝试安装,在熟悉安装
使用后再应用到运行中的论坛中。

-一些功能需要PHP5的支持,您可以将tools里面的
parasy_env.php拷贝到论坛根目录查看服务器兼容情况。
+现在,您只要运行 installer.php,按照提示安装,就可以
开始使用Project Parasy

-1.请修改您的 ParasySettings.inc.php ,里面有很多系统相关
设置
-
- $bbsdir='/bbs'; //您论坛的目录,若为根目录则为''
- $jsdir='/bbs/include/javascript'; //您论坛的js目录,若为根
目录则为去掉'/bbs'
-
-
-2.升级数据库
- 使用phpmyadmin或者通过 系统工具-->数据库升级 将数据
库升级文件parasy.mysql.sql的内容粘贴到文本框中,并确
认表名前缀与您当前数据库内的相同(默认为cdb)
-
-
-3.导入风格设置文件 & 货币系统插件
- ·论坛管理-->界面风格,将Project_Parasy_style_setting.txt中
的内容粘贴到"导入界面方案"的文本框中
- 并点击方案名称对应风格的[详情],将界面图片目录
设置为您的论坛路径(根目录设置为/images/way这样的相
对或绝对路径)
- ·导入插件Project_Parasy_plugin_add_reply.txt,并进行相关设
置以适应 消费记录 模块的使用
- ·导入插件Project_Parasy_plugin_now.txt,以支援Nowhere的使用
-
-4.上传前的设置
- ·打开.htaccess,将/bbs修改您论坛所在目录
- ·打开templates/css_babel.css,templates/css_extra.css
- 查找/bbs/,将其批量替换为您的论坛所在目录( 格
式为/xxx/,根目录替换为/ )
-
-5.将upload目录中的文件覆盖论坛原有文件,新建并设置
以下目录权限为777
- customavatars/m
- customavatars/s
- forumdata 中的所有目录
-
-6.后台更新缓存
-
-7.在基本设置-->界面与显示方式将默认论坛风格设为
The Bable
-
-8.在基本设置-->搜索引擎优化选择"普通页面静态
化"或"Archiver 和普通页面均静态化"
-
-9.最后的一些设置
- ·首页也许一个板块都没有,只需要进入论坛管理
-->编辑论坛,点击大类的[编辑],将下级论坛横排设为
2就可以了
+安装完成后的一些问题:

·在编辑子论坛的设置中,您需要为子论坛指定一
个"论坛代号(英文)",通过这个代号,您可以让会员
通过地址栏更加容易的使用 go/xxx 的形式访问板块

·同样的,通过"推荐板块",您可以将需要突出的板块
在分类名旁重点显示,推荐板块同时会在顶部导航条上
显示

- ·如果您需要启用风格自带的丰富有趣的用户资料页
面,您只需通过 基本设置-->Space 设置 将"启用 Space"设
为否就可以了
-
·如您所见,在控制面板里面已经看不到选择论坛自
带头像的地方了,您需要在用户组设置中为每个组的用
户开启上传自定义头像的权限,系统会自动为会员上传
的头像生成适合的三种大小的头像(以前上传的头像暂
时无法生成,请等待我们为您提供的头像转换程序)

- ·首页的推荐以及公告下的小字都可以通过
templates/babel/discuz.htm的相应内容进行修改
+ ·首页公告下的小字可以通过templates/babel/discuz.htm的相
应内容进行修改

·分类前的图片在images/way/s文件夹中,文件名中的数
字即为分类的gid

·板块图片目录为images/m_pic,仅支持以fid为文件名并
且为jpg格式(如10.jpg,37.jpg),推荐大小为48x48
-
- ·侧栏统计的更新请后台设置一个计划任务,每日更
新(当然也可以每个小时更新),任务文件为parasy_stats_daily.inc.php

·Nowhere的图片生成需要字体文件,你可以上网下载一
个微软雅黑字体命名为MSYH.TTF,日期显示需要04b03字
体,上传到服务器include/fonts下

Modified: trunk/sql/parasy.mysql.sql
==============================================================================
--- trunk/sql/parasy.mysql.sql (original)
+++ trunk/sql/parasy.mysql.sql Thu Feb 7 07:00:29 2008
@@ -21,7 +21,7 @@
-- Table structure for table `cdb_savepoint`
--

-CREATE TABLE `cdb_savepoint` (
+CREATE TABLE IF NOT EXISTS `cdb_savepoint` (
`svp_id` int(10) unsigned NOT NULL auto_increment,
`svp_uid` int(10) unsigned NOT NULL default '0',
`svp_url` varchar(255) NOT NULL default '',
@@ -39,7 +39,7 @@
-- Table structure for table `cdb_geo_usage_simple`
--

-CREATE TABLE `cdb_geo_usage_simple` (
+CREATE TABLE IF NOT EXISTS `cdb_geo_usage_simple` (
`gus_geo` varchar(100) NOT NULL default 'earth',
`gus_name_cn` varchar(100) NOT NULL default '����',
`gus_name_en` varchar(100) NOT NULL default 'Earth',
@@ -56,7 +56,7 @@
-- Table structure for table `cdb_geo_going`
--

-CREATE TABLE `cdb_geo_going` (
+CREATE TABLE IF NOT EXISTS `cdb_geo_going` (
`ggg_id` int(10) unsigned NOT NULL auto_increment,
`ggg_uid` int(10) unsigned NOT NULL default '0',
`ggg_geo` varchar(100) NOT NULL,
@@ -73,7 +73,7 @@
-- Table structure for table `cdb_geo_been`
--

-CREATE TABLE `cdb_geo_been` (
+CREATE TABLE IF NOT EXISTS `cdb_geo_been` (
`gbn_id` int(10) unsigned NOT NULL auto_increment,
`gbn_uid` int(10) unsigned NOT NULL default '0',
`gbn_geo` varchar(100) NOT NULL,
@@ -127,7 +127,7 @@
-- Table structure for table `cdb_expense`
--

-CREATE TABLE `cdb_expense` (
+CREATE TABLE IF NOT EXISTS `cdb_expense` (
`exp_id` int(10) unsigned NOT NULL auto_increment,
`exp_uid` int(10) unsigned NOT NULL default '0',
`exp_amount` double NOT NULL default '0',
@@ -146,7 +146,7 @@
-- Table structure for table `cdb_plugin_tod_projecte`
--

-CREATE TABLE `cdb_plugin_tod_project` (
+CREATE TABLE IF NOT EXISTS `cdb_plugin_tod_project` (
`tpr_id` int(10) unsigned NOT NULL auto_increment,
`tpr_uid` int(10) unsigned NOT NULL default '0',
`tpr_private` int(10) unsigned NOT NULL default '0',
@@ -172,7 +172,7 @@
-- Table structure for table `cdb_plugin_tod_task`
--

-CREATE TABLE `cdb_plugin_tod_task` (
+CREATE TABLE IF NOT EXISTS `cdb_plugin_tod_task` (
`tta_id` int(10) unsigned NOT NULL auto_increment,
`tta_uid` int(10) unsigned NOT NULL default '0',
`tta_pid` int(10) unsigned NOT NULL default '0',
@@ -191,7 +191,7 @@
) ENGINE=MyISAM DEFAULT CHARSET=gbk;


-CREATE TABLE `cdb_plugin_tod_note` (
+CREATE TABLE IF NOT EXISTS `cdb_plugin_tod_note` (
`note_id` int(10) unsigned NOT NULL auto_increment,
`note_hash` varchar(8) NOT NULL,
`note_uid` int(10) unsigned NOT NULL default '0',
@@ -209,7 +209,7 @@
--
-- Table structure for table `cdb_channel`
--
-CREATE TABLE `cdb_channel` (
+CREATE TABLE IF NOT EXISTS `cdb_channel` (
`chl_id` int(10) unsigned NOT NULL auto_increment,
`chl_uid` int(10) NOT NULL,
`chl_fid` int(10) unsigned NOT NULL default '0',

Modified: trunk/upload/include/javascript/home_tabs.js
==============================================================================
--- trunk/upload/include/javascript/home_tabs.js (original)
+++ trunk/upload/include/javascript/home_tabs.js Thu Feb 7 07:00:29 2008
@@ -62,7 +62,7 @@
}

var getHomeTabLatest = function() {
- url = "/bbs/json/home/tab/latest";
+ url = BBSDIR +"/json/home/tab/latest";
loadXML(url, cbGetHomeTabLatest);
}

@@ -133,7 +133,7 @@
}

var getNowLatest = function() {
- url = "/bbs/json/now/latest";
+ url = BBSDIR +"/json/now/latest";
loadXML(url, cbGetNowLatest);
}


Added: trunk/upload/installer.php
==============================================================================
--- (empty file)
+++ trunk/upload/installer.php Thu Feb 7 07:00:29 2008
@@ -0,0 +1,609 @@
+<?php
+
+/* Project Parasynthesis
+* Author: Fujiwara Sai
+* Usage: Parasy Installer
+*/
+error_reporting(E_ERROR | E_WARNING | E_PARSE);
+
+@set_time_limit(1000);
+set_magic_quotes_runtime(0);
+
+if(PHP_VERSION < '4.1.0') {
+ $_GET = &$HTTP_GET_VARS;
+ $_POST = &$HTTP_POST_VARS;
+}
+
+define('IN_DISCUZ', TRUE);
+define('DISCUZ_ROOT', '');
+
+$installfile = basename(__FILE__);
+$sqlfile = './installer/parasy.sql';
+$nowfile = './installer/Project_Parasy_plugin_now.txt';
+$todfile = './installer/Project_Parasy_plugin_tod.txt';
+$addreplyfile = './installer/Project_Parasy_plugin_add_reply.txt';
+$lockfile = './forumdata/parasy_install.lock';
+$attachdir = './attachments';
+$attachurl = 'attachments';
+$quit = FALSE;
+
+@include './installer/install.lang.php';
+@include './installer/global.func.php';
+@include './config.inc.php';
+@include './parasy/ParasySettings.inc.php';
+@include './include/db_'.$database.'.class.php';
+
+$inslang = defined('INSTALL_LANG') ? INSTALL_LANG : '';
+$version = '5.5.0 '.$lang[$inslang];
+if(!defined('INSTALL_LANG') || !function_exists('instmsg') ||
!is_readable($sqlfile)) {
+//if(!defined('INSTALL_LANG') || !function_exists('instmsg')) {
+ exit("Please upload all files to install Discuz!
Board<br>&#x5b89;&#x88c5; Discuz! &#x8bba;&#x575b;&#x60a8;&#x5fc5;&#x987b;&#x4e0a;&#x4f20;&#x6240;&#x6709;&#x6587;&#x4ef6;&#xff0c;&#x5426;&#x5219;&#x65e0;&#x6cd5;&#x7ee7;&#x7eed;");
+} elseif(!isset($dbhost) || !isset($cookiepre)) {
+ instmsg('config_nonexistence');
+} elseif(!ini_get('short_open_tag')) {
+ instmsg('short_open_tag_invalid');
+} elseif(file_exists($lockfile)) {
+ instmsg('lock_exists');
+} elseif(!class_exists('dbstuff')) {
+ instmsg('database_nonexistence');
+}
+
+if(function_exists('instheader')) {
+ instheader();
+}
+
+if(empty($dbcharset) && in_array(strtolower($charset),
array('gbk', 'big5', 'utf-8'))) {
+ $dbcharset = str_replace('-', '', $charset);
+}
+
+$action = $_POST['action'] ? $_POST['action'] : $_GET['action'];
+
+if(is_writeable('./parasy/ParasySettings.inc.php')) {
+ $writeable['config'] = result(1, 0);
+ $write_error = 0;
+} else {
+ $writeable['config'] = result(0, 0);
+ $write_error = 1;
+}
+
+step($action);
+header2();
+if(!$action) {
+
+ $discuz_license = str_replace(' ', '&nbsp; ', $lang['license']);
+
+?>
+<tr><td>
+<?php
+
+ $msg = '';
+ $curr_os = PHP_OS;
+
+ if(!function_exists('mysql_connect')) {
+ $curr_mysql = $lang['unsupport'];
+ $msg .= "<li>$lang[mysql_unsupport]</li>";
+ $quit = TRUE;
+ } else {
+ $curr_mysql = "<strong class=\"green\">".$lang['support']."</strong>";
+ }
+
+ if (function_exists('apache_get_version')) {
+ $runtime = '<small>' . apache_get_version() . '</small>';
+ $_modules = apache_get_modules();
+ if (in_array('mod_rewrite', $_modules)) {
+ $mod_rewrite="<strong class=\"green\">֧��</strong>";
+ } else {
+ $mod_rewrite="<strong class=\"red\">��֧��</strong>";
+ }
+ } else {
+ $runtime = 'CGI/FastCGI';
+ $mod_rewrite="<strong class=\"red\">��֧��</strong>";
+ }
+
+ if (function_exists('json_encode')) {
+ $json_support="<strong class=\"green\">֧��</strong>";
+ } else {
+ $json_support="<strong class=\"red\">��֧��</strong>";
+ }
+
+ $curr_php_version = PHP_VERSION;
+ if($curr_php_version < '4.0.6') {
+ $msg .= "<li>$lang[php_version_406]</li>";
+ $quit = TRUE;
+ }
+
+ if(@ini_get(file_uploads)) {
+ $max_size = @ini_get(upload_max_filesize);
+ $curr_upload_status = $lang['attach_enabled'].$max_size;
+ } else {
+ $curr_upload_status = $lang['attach_disabled'];
+ $msg .= "<li>$lang[attach_disabled_info]</li>";
+ }
+
+ $curr_disk_space = intval(diskfreespace('.') / (1024 * 1024)).'M';
+
+ $checkdirarray = array(
+ 'tpl' => './templates',
+ 'avatar' => './customavatars',
+ 'avatar_s' => './customavatars/s',
+ 'avatar_m' => './customavatars/m',
+ 'forumdata' => './forumdata',
+ 'ftemplate' => './forumdata/templates',
+ 'cache' => './forumdata/cache',
+ 'nm_cache' => './forumdata/nm_cache',
+ 'cache_usr' => './forumdata/cache_usr',
+ 'cache_usr_buddy' => './forumdata/cache_usr/b',
+ 'cache_usr_svp' => './forumdata/cache_usr/svp',
+ 'cache_usr_fav' => './forumdata/cache_usr/f',
+ 'cache_usr_geo' => './forumdata/cache_usr/g',
+ 'cache_geo' => './forumdata/cache_geo',
+ 'cache_geo_children' => './forumdata/cache_geo/c',
+ 'cache_geo_hot' => './forumdata/cache_geo/h',
+ 'cache_geo_latest' => './forumdata/cache_geo/l',
+ 'cache_geo_now' => './forumdata/cache_geo/n',
+ 'cache_geo_paralle' => './forumdata/cache_geo/p',
+ );
+
+ foreach($checkdirarray as $key => $dir) {
+ if(dir_writeable($dir)) {
+ $writeable[$key] = result(1, 0);
+ } else {
+ $writeable[$key] = result(0, 0);
+ $langkey = $key.'_unwriteable';
+ $msg .= "<li>$lang[$langkey]</li>";
+ $quit = TRUE;
+ }
+ }
+
+ if($quit) {
+ $submitbutton = '<input type="button" name="submit"
value=" '.$lang['recheck_config'].' " style="height: 25" onclick="window.location=\'?action=check\'">';
+ } else {
+ $submitbutton = '<input type="submit" name="submit"
value=" '.$lang['new_step'].' " style="height: 25">';
+ $msg = $lang['preparation'];
+ }
+
+?>
+<tr><td align="center">
+<table class="datatable">
+<tr style="font-weight: bold;" align="center" bgcolor="#f1f1f1"><td width="32%"><?=$lang['tips_message']?></td>
+</tr><tr><td><span class="message"><?=$msg?></span></td>
+</tr></table>
+<table class="datatable">
+<tr style="font-weight: bold;" align="center" bgcolor="#f1f1f1">
+<td></td><td><?=$lang['env_required']?></td><td><?=$lang['env_best']?></td><td><?=$lang['env_current']?></td>
+</tr><tr class="option">
+<td class="altbg1">Web Server</td>
+<td class="altbg2">Apache Web Server / IIS</td>
+<td class="altbg1">Apache Web Server</td>
+<td class="altbg2"><?=$runtime?></td>
+</tr><tr class="option">
+<td class="altbg1"><?=$lang['env_php']?></td>
+<td class="altbg2">4.0.6+</td>
+<td class="altbg1">5.2.0+</td>
+<td class="altbg2"><?=$curr_php_version?></td>
+</tr><tr class="option">
+<td class="altbg1">MySQL</td>
+<td class="altbg2">MySQL 4.1</td>
+<td class="altbg1">MySQL 4.1+</td>
+<td class="altbg2"><?=$curr_mysql?></td>
+</tr>
+<tr class="option">
+<td class="altbg1"><?=$lang['env_diskspace']?></td>
+<td class="altbg2">10M+</td>
+<td class="altbg1"><?=$lang['unlimited']?></td>
+<td class="altbg2"><?=$curr_disk_space?></td>
+</tr>
+<tr class="option">
+<td class="altbg1">mod_rewrite</td>
+<td class="altbg2"><?=$lang['support']?></td>
+<td class="altbg1"><?=$lang['support']?></td>
+<td class="altbg2"><?=$mod_rewrite?></td>
+</tr>
+
+<tr class="option">
+<td class="altbg1">JSON</td>
+<td class="altbg2"><?=$lang['unlimited']?></td>
+<td class="altbg1"><?=$lang['support']?></td>
+<td class="altbg2"><?=$json_support?></td>
+</tr>
+</table>
+<table class="datatable">
+<tr style="font-weight: bold;" align="center" bgcolor="#f1f1f1"><td
width="33%"><?=$lang['check_catalog_file_name']?></td><td
width="33%">����Ȩ��</td><td width="33%"><?=$lang['check_currently_status']?></td></tr>
+<tr class="option">
+<td class="altbg1">./parasy/ParasySettings.inc.php</td>
+<td class="altbg2"><?=$lang['readable']?></td>
+<td class="altbg1"><?=$writeable['config']?></td>
+</tr><tr class="option">
+<td class="altbg1">./templates </td>
+<td class="altbg2"><?=$lang['writeable']?></td>
+<td class="altbg1"><?=$writeable['tpl']?></td>
+</tr>
+<tr class="option">
+<td class="altbg1">./customavatars</td>
+<td class="altbg2"><?=$lang['writeable']?></td>
+<td class="altbg1"><?=$writeable['avatar']?></td>
+</tr>
+
+<tr class="option">
+ <td class="altbg1">./customavatars/m</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['avatar_m']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./customavatars/s</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['avatar_s']?></td>
+</tr>
+<tr class="option">
+<td class="altbg1">./forumdata</td>
+<td class="altbg2"><?=$lang['writeable']?></td>
+<td class="altbg1"><?=$writeable['forumdata']?></td>
+</tr><tr class="option">
+<td class="altbg1">./forumdata/templates</td>
+<td class="altbg2"><?=$lang['writeable']?></td>
+<td class="altbg1"><?=$writeable['ftemplate']?></td>
+</tr>
+<tr class="option">
+<td class="altbg1">./forumdata/nm_cache</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['nm_cache']?></td>
+</tr>
+<tr class="option">
+<td class="altbg1">./forumdata/cache</td>
+<td class="altbg2"><?=$lang['writeable']?></td>
+<td class="altbg1"><?=$writeable['cache']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_usr</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_usr']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_usr/b</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_usr_buddy']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_usr/svp</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_usr_svp']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_usr/f</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_usr_fav']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_usr/g</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_usr_geo']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo/c</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo_children']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo/h</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo_hot']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo/l</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo_latest']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo/n</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo_now']?></td>
+</tr>
+<tr class="option">
+ <td class="altbg1">./forumdata/cache_geo/p</td><td
class="altbg2"><?=$lang['writeable']?></td><td class="altbg1"><?=$writeable['cache_geo_paralle']?></td>
+</tr></table></tr></td>
+<tr><td align="center">
+<form method="post" action="<?=$installfile?>">
+<input type="hidden" name="action" value="setting">
+<?=$submitbutton?>
+</form><br /></td></tr>
+<?php
+} elseif ($action =='setting'){
+ if($_POST['saveconfig']) {
+ $msg = '';
+ $bbsdir = setconfig($_POST['bbsdir']);
+ $jsdir = setconfig($_POST['jsdir']);
+ $dashboard = setconfig($_POST['dashboard']);
+ $now = setconfig($_POST['now']);
+ $geo = setconfig($_POST['geo']);
+ $tod = setconfig($_POST['tod']);
+ $expense = setconfig($_POST['expense']);
+ if(strstr($tablepre, '.')) {
+ $msg .= '<li>'.$lang['tablepre_invalid'].'</li>';
+ $quit = TRUE;
+ }
+
+ if(!$quit){
+ if(!$write_error) {
+ $fp = fopen('./parasy/ParasySettings.inc.php', 'r');
+ $configfile = fread($fp, filesize('./parasy/ParasySettings.inc.php'));
+ fclose($fp);
+ $configfile =
preg_replace("/[$]bbsdir\s*\=\s*[\"'].*?[\"'];/is", "\$bbsdir
= '$bbsdir';", $configfile);
+ $configfile =
preg_replace("/[$]jsdir\s*\=\s*[\"'].*?[\"'];/is", "\$jsdir
= '$jsdir';", $configfile);
+ $configfile = preg_replace("/'PARASY_FEATURE_DASHBOARD',
[^']*/is", "'PARASY_FEATURE_DASHBOARD', " . $dashboard . ");\ndefine(", $configfile);
+ $configfile = preg_replace("/'PARASY_FEATURE_NOW',
[^']*/is", "'PARASY_FEATURE_NOW', " . $now. ");\ndefine(", $configfile);
+ $configfile = preg_replace("/'PARASY_FEATURE_GEO',
[^']*/is", "'PARASY_FEATURE_GEO', " . $geo. ");\ndefine(", $configfile);
+ $configfile = preg_replace("/'PARASY_FEATURE_EXP',
[^']*/is", "'PARASY_FEATURE_EXP', " . $expense. ");\ndefine(", $configfile);
+ $configfile = preg_replace("/'PARASY_FEATURE_TOD',
[^']*/is", "'PARASY_FEATURE_TOD', " . $tod. ");\ndefine(", $configfile);
+
+ $fp = fopen('./parasy/ParasySettings.inc.php', 'w');
+ fwrite($fp, trim($configfile));
+ fclose($fp);
+ }
+ redirect("$installfile?action=install");
+ }
+ }
+
+?>
+
+<tr><td align="center">
+<form method="post" action="<?=$installfile?>">
+<table class="datatable">
+<tr style="font-weight: bold;" align="center" bgcolor="#f1f1f1">
+<td width="20%"><?=$lang['variable']?></td><td
width="30%"><?=$lang['value']?></td><td width="50%"><?=$lang['comment']?></td>
+</tr><tr>
+<td class="altbg1">&nbsp;��̳��װĿ¼</td>
+<td class="altbg2"><input type="text" name="bbsdir"
value="<?=$bbsdir?>" <?=$inputreadonly?> size="30"></td>
+<td class="altbg1">&nbsp;ʹ�� /bbs ��ʽ��·�������װ�ڸ�Ŀ¼�����</td>
+</tr><tr>
+<td class="altbg1">&nbsp;<?=$lang['dbuser']?></td>
+<td class="altbg2"><input type="text" name="jsdir" value="<?=$jsdir?>"
<?=$inputreadonly?> size="30"></td>
+<td class="altbg1">&nbsp;�뱣���밲װĿ¼��·��һ��</td>
+</tr>
+<tr>
+<td class="altbg1">&nbsp;Nowhere</td>
+<td class="altbg2">
+<input class="radio" name="now" value="true" type="radio"
checked="checked"> ���� &nbsp;
+<input class="radio" name="now" value="false" type="radio"> �ر�
+</td>
+<td class="altbg1">&nbsp;Now and then, Here and there</td>
+</tr>
+<tr>
+<td class="altbg1">&nbsp;Today</td>
+<td class="altbg2">
+<input class="radio" name="tod" value="true" type="radio"
checked="checked"> ���� &nbsp;
+<input class="radio" name="tod" value="false" type="radio"> �ر�
+</td>
+<td class="altbg1">&nbsp;A Getting Things Done tool</td>
+</tr>
+<tr>
+<td class="altbg1">&nbsp;Dashboard</td>
+<td class="altbg2">
+<input class="radio" name="dashboard" value="true" type="radio"
checked="checked"> ���� &nbsp;
+<input class="radio" name="dashboard" value="false" type="radio"> �ر�
+</td>
+<td class="altbg1">&nbsp;</td>
+</tr>
+<tr>
+<td class="altbg1">&nbsp;����ϵͳ</td>
+<td class="altbg2">
+<input class="radio" name="geo" value="true" type="radio"
checked="checked"> ���� &nbsp;
+<input class="radio" name="geo" value="false" type="radio"> �ر�
+</td>
+</tr>
+<tr>
+<td class="altbg1">&nbsp;��Ѽ�¼</td>
+<td class="altbg2">
+<input class="radio" name="expense" value="true" type="radio"
checked="checked"> ���� &nbsp;
+<input class="radio" name="expense" value="false" type="radio"> �ر�
+</td>
+<td class="altbg1">&nbsp;</td>
+</tr>
+</table>
+<input type="hidden" name="saveconfig" value="1">
+<input type="hidden" name="action" value="setting">
+<input type="submit" name="submit" value="<?=$lang['new_step']?> "
style="height: 25">
+</form>
+
+<?php
+} elseif($action == 'install') {
+
+ $username = htmlspecialchars($_GET['username']);
+ $email = htmlspecialchars($_GET['email']);
+ $password = htmlspecialchars($_GET['password']);
+
+ $db = new dbstuff;
+ $db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
+ $db->select_db($dbname);
+
+ $cron_pushthread_week = rand(1, 7);
+ $cron_pushthread_hour = rand(1, 8);
+
+ $extcredits = Array
+ (
+ 1 => Array
+ (
+ 'title' => $lang['init_credits_karma'],
+ 'showinthread' => '',
+ 'available' => 1
+ ),
+ 2 => Array
+ (
+ 'title' => $lang['init_credits_money'],
+ 'showinthread' => '',
+ 'available' => 1
+ )
+ );
+
+$extrasql = <<<EOT
+
+EOT;
+
+?>
+<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
+<tr><td align="center"><br>
+<script type="text/javascript">
+ function showmessage(message) {
+ document.getElementById('notice').value += message + "\r\n";
+ }
+</script>
+<textarea name="notice" style="width: 80%; height: 400px" readonly id="notice"></textarea>
+
+<br><br>
+<form method="post" action="<?=$installfile?>">
+<input type="hidden" name="action" value="tpl">
+<input type="button" name="submit" value="��һ��" disabled
style="height: 25" onclick="window.location='installer.php?action=tpl'" id="laststep">
+</form>
+<br>
+</td></tr>
+<?php
+ $fp = fopen($sqlfile, 'rb');
+ $sql = fread($fp, filesize($sqlfile));
+ fclose($fp);
+
+ runquery($sql);
+ runquery($extrasql);
+
+ alter_query('forums','board_name','ALTER TABLE `cdb_forums` ADD
`board_name` char(50) NOT NULL;');
+ alter_query('forums','idx_push',"ALTER TABLE `cdb_forums` ADD
`idx_push` tinyint(1) NOT NULL default '0';");
+ alter_query('favorites','dateline',"ALTER TABLE `cdb_favorites` ADD
`dateline` int(10) NOT NULL;");
+
+ alter_query('members','now_img',"ALTER TABLE `cdb_members` ADD
`now_img` mediumint(10) NOT NULL default '0';");
+ alter_query('members','idx_cloud',"ALTER TABLE `cdb_members` ADD
`idx_cloud` tinyint(1) NOT NULL default '0';");
+ alter_query('members','usr_geo',"ALTER TABLE `cdb_members` ADD
`usr_geo` varchar(100) NOT NULL default 'earth';");
+ alter_query('members','side_buddy',"ALTER TABLE `cdb_members` ADD
`side_buddy` TINYINT( 1 ) NOT NULL DEFAULT '0';");
+
+ $yearmonth = date('Ym_', time());
+
+ dir_clear('./forumdata/templates');
+ dir_clear('./forumdata/cache');
+ dir_clear('./forumdata/nm_cache');
+ dir_clear('./forumdata/cache_usr/b');
+ dir_clear('./forumdata/cache_usr/svp');
+ dir_clear('./forumdata/cache_usr/f');
+ dir_clear('./forumdata/cache_usr/g');
+ dir_clear('./forumdata/cache_geo/c');
+ dir_clear('./forumdata/cache_geo/h');
+ dir_clear('./forumdata/cache_geo/l');
+ dir_clear('./forumdata/cache_geo/n');
+ dir_clear('./forumdata/cache_geo/p');
+
+ echo '<script
type="text/javascript">document.getElementById("laststep").disabled =
false; </script>'."\r\n";
+ echo '<script
type="text/javascript">document.getElementById("laststep").value =
\'��һ��\'; </script>'."\r\n";
+} elseif($action == 'tpl') {
+
+ $username = htmlspecialchars($_GET['username']);
+ $email = htmlspecialchars($_GET['email']);
+ $password = htmlspecialchars($_GET['password']);
+
+ $db = new dbstuff;
+ $db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
+ $db->select_db($dbname);
+?>
+<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
+<tr><td align="center"><br>
+<script type="text/javascript">
+ function showmessage(message) {
+ document.getElementById('notice').value += message + "\r\n";
+ }
+</script>
+<textarea name="notice" style="width: 80%; height: 200px" readonly id="notice"></textarea>
+
+<br><br>
+<form method="post" action="<?=$installfile?>">
+<input type="hidden" name="action" value="tpl">
+<input type="button" name="submit" value="��һ��" disabled
style="height: 25"
onclick="window.location='installer.php?action=plugins'" id="laststep">
+</form>
+
+<?php
+$query = $db->query("SELECT styleid FROM {$tablepre}styles ORDER BY
styleid DESC LIMIT 1");
+$style = $db->fetch_array($query);
+$parasy_style_id = $style['styleid']+1;
+$query = $db->query("SELECT templateid FROM {$tablepre}templates ORDER
BY templateid DESC LIMIT 1");
+$style = $db->fetch_array($query);
+$parasy_tpl_id = $style['templateid']+1;
+
+$query = $db->query("SELECT name FROM {$tablepre}styles WHERE
name='The Babel'");
+ if (mysql_num_rows($query)>0) {
+ showjsmessage('Parasy ģ����ϵ�Ѿ����ڣ������װ');
+ } else {
+ $db->query("INSERT INTO `{$tablepre}templates` (`templateid`,
`name`, `directory`, `copyright`) VALUES
(".$parasy_tpl_id.", 'babel', './templates/babel', 'Designed by Sai')");
+ showjsmessage('���� Parasy ģ����ϵ ...templateid_'.$parasy_tpl_id.'...�ɹ�');
+ $db->query("INSERT INTO `{$tablepre}styles` (`styleid`, `name`,
`available`, `templateid`) VALUES (".$parasy_style_id.", 'The Babel', 1, ".$parasy_tpl_id.")");
+ showjsmessage('���� Parasy �����񷽰� ...styleid_'.$parasy_style_id.'...�ɹ�');
+ showjsmessage('���� Parasy �����񷽰� ...styleid_'.$parasy_style_id.'...�ɹ�');
+ $db->query("UPDATE `{$tablepre}settings` SET `value`
= '".$parasy_style_id."' WHERE variable = 'styleid' LIMIT 1 ");
+ showjsmessage('����Ĭ�Ϸ��Ϊ ...styleid_'.$parasy_style_id.'...�ɹ�');
+ $db->query("INSERT INTO `cdb_stylevars` (`styleid`, `variable`,
`substitute`) VALUES
(".$parasy_style_id.", 'available', ''),(".$parasy_style_id.", 'bgcolor', '#F8F8FF'),(".$parasy_style_id.", 'altbg1', '#FFFFFF'),(".$parasy_style_id.", 'altbg2', '#FFFFFF'),(".$parasy_style_id.", 'link', '#404040'),(".$parasy_style_id.", 'bordercolor', '#E0E0E0'),(".$parasy_style_id.", 'innerbordercolor', '#FFFFFF'),(".$parasy_style_id.", 'headercolor', '#F7F7F7'),(".$parasy_style_id.", 'headertext', '#404040'),(".$parasy_style_id.", 'catcolor', '#FFFFEE'),(".$parasy_style_id.", 'tabletext', '#404040'),(".$parasy_style_id.", 'text', '#404040'),(".$parasy_style_id.", 'borderwidth', '1'),(".$parasy_style_id.", 'innerborderwidth', '1'),(".$parasy_style_id.", 'tablewidth', '98%'),(".$parasy_style_id.", 'tablespace', '2'),(".$parasy_style_id.", 'fontsize', '12px'),(".$parasy_style_id.", 'msgfontsize', '12px'),(".$parasy_style_id.", 'msgbigsize', '13px'),(".$parasy_style_id.", 'msgsmallsize', '11px'),(".$parasy_style_id.", 'font', 'Verdana,
&quot;Lucida Grande&quot;, &quot;Lucida Sans&quot;, sans, Hei'),(".$parasy_style_id.", 'smfontsize', '11px'),(".$parasy_style_id.", 'smfont', '΢���ź�'),(".$parasy_style_id.", 'nobold', '0'),(".$parasy_style_id.", 'boardimg', 'logo.gif'),(".$parasy_style_id.", 'imgdir', '".$bbsdir."/images/way'),(".$parasy_style_id.", 'maintablewidth', '98%'),(".$parasy_style_id.", 'smdir', '".$_SERVER['HTTP_HOST'].$bbsdir."/images/smilies'),(".$parasy_style_id.", 'cattext', '#404040'),
+ (".$parasy_style_id.", 'menubg', '#FFF'),(".$parasy_style_id.", 'bgborder', '#FFFFFF'),(".$parasy_style_id.", 'catborder', '#FFFFFF'),(".$parasy_style_id.", 'inputborder', '#E0E0E0'),(".$parasy_style_id.", 'lighttext', '#404040'),(".$parasy_style_id.", 'mainborder', ''),(".$parasy_style_id.", 'headermenu', '#FDFFF2'),(".$parasy_style_id.", 'postnoticebg', '#F3F8D7'),
+ (".$parasy_style_id.", 'msgheader', '#F3F8D7'),(".$parasy_style_id.", 'msgheadertext', '#000000'),(".$parasy_style_id.", 'msgtext', '#FDFFF2'),(".$parasy_style_id.", 'headermenutext', '#F3F8D7'),(".$parasy_style_id.", 'navtext', ''),(".$parasy_style_id.", 'menuhltext', '#FFF'),(".$parasy_style_id.", 'menuhlbg', '#667'),(".$parasy_style_id.", 'menutext', '#000'),(".$parasy_style_id.", 'calendarexpire', '#999999'),(".$parasy_style_id.", 'calendartext', '#000000'),(".$parasy_style_id.", 'calendarchecked', '#FF0000'),(".$parasy_style_id.", 'calendartoday', '#00BB00'),(".$parasy_style_id.", 'framebg', ''),(".$parasy_style_id.", 'framebgcolor', ''),(".$parasy_style_id.", 'frameswitch', '');");
+ }
+ echo '<script
type="text/javascript">document.getElementById("laststep").disabled =
false; </script>'."\r\n";
+ echo '<script
type="text/javascript">document.getElementById("laststep").value =
\'��һ��\'; </script>'."\r\n";
+} elseif ($action == 'plugins') {
+
+ $username = htmlspecialchars($_GET['username']);
+ $email = htmlspecialchars($_GET['email']);
+ $password = htmlspecialchars($_GET['password']);
+
+ $db = new dbstuff;
+ $db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
+ $db->select_db($dbname);
+
+?>
+<tr><td><hr noshade align="center" width="100%" size="1"></td></tr>
+<tr><td align="center"><br>
+<script type="text/javascript">
+ function showmessage(message) {
+ document.getElementById('notice').value += message + "\r\n";
+ }
+</script>
+<textarea name="notice" style="width: 80%; height: 200px" readonly id="notice"></textarea>
+
+<br><br>
+<form method="post" action="<?=$installfile?>">
+<input type="hidden" name="action" value="final">
+<input type="button" name="submit" value="��һ��" disabled
style="height: 25"
onclick="window.location='installer.php?action=final'" id="laststep">
+</form>
+
+
+<?php
+ $fp = fopen($nowfile, 'rb');
+ $now_plugindata = fread($fp, filesize($nowfile));
+ fclose($fp);
+ installplugin($now_plugindata,'Nowhere');
+
+ $fp2 = fopen($todfile, 'rb');
+ $tod_plugindata = fread($fp2, filesize($todfile));
+ fclose($fp2);
+ installplugin($tod_plugindata,'Today');
+
+ $fp3 = fopen($addreplyfile, 'rb');
+ $addreply_plugindata = fread($fp3, filesize($addreplyfile));
+ fclose($fp3);
+ installplugin($addreply_plugindata,'Parasy ���ϵͳ');
+
+
+ $query = $db->query("SELECT name FROM {$tablepre}crons WHERE name
= 'ÿ��ͳ�Ƹ���' LIMIT 1");
+ if($db->num_rows($query)) {
+ showjsmessage('�ƻ����� ÿ��ͳ�Ƹ��� �Ѵ��� ... ���');
+ } else {
+ $db->query("INSERT INTO `{$tablepre}crons` (`available`, `type`,
`name`, `filename`, `lastrun`, `nextrun`, `weekday`, `day`, `hour`,
`minute`) VALUES
(1, 'user', 'ÿ��ͳ�Ƹ���', 'parasy_stats_daily.inc.php', 0,
1202371684, -1, -1, 6, '0');");
+ showjsmessage('�����ƻ����� ÿ��ͳ�Ƹ��� ... �ɹ�');
+ }
+
+ $db->query("UPDATE `{$tablepre}settings` SET `value` = '0' WHERE
variable = 'spacestatus' LIMIT 1");
+ showjsmessage('���� Parasy �û�������ҳ ...�ɹ�');
+
+
+ echo '<script
type="text/javascript">document.getElementById("laststep").disabled =
false; </script>'."\r\n";
+ echo '<script
type="text/javascript">document.getElementById("laststep").value =
\'��һ��\'; </script>'."\r\n";
+} elseif ($action =='final') {
+?>
+<tr><td align="center">
+<table class="datatable">
+<tr style="font-weight: bold;" align="center" bgcolor="#f1f1f1"><td width="32%">��ϲ��ϲ��</td></tr>
+<tr>
+<td><span
class="message">&nbsp;&nbsp;&nbsp;&nbsp;��ϲ�ɺأ��ɿڿ��֡�����Ϊ֮���������Project
Parasy�Ѿ���װ����ˣ�<br />&nbsp;&nbsp;&nbsp;&nbsp;�����������Ҫ����ǣ�
+<ul style="margin: 0px 0px 0px 2em; padding: 10px; list-style: square;
list-style-image: none; list-style-position: outside;">
+ <li>1. �����</li>
+ <li>2. ΢Ц</li>
+ <li>3. ��ʼ������������</li>
+
<li>4. �ڱ༭����̳�������У�����ҪΪ����ָ̳��һ��"��̳��ţ�Ӣ�ģ�"��ͨ������Ų���ʹ�� go/xxx ����ʽ���ʰ��</li>
+ <li>5. ͨ��"�Ƽ���", ����Խ���Ҫͻ��İ���ڷ��������ص���ʾ�������ͬʱ���ڶ�������������ʾ</li>
+ <li>6. ��Ҫ������ķ�����ռ䣬���û���������Ϊÿ������û������ϴ��Զ���ͷ���Ȩ�ޣ�ϵͳ���Զ�Ϊ��Ա�ϴ���ͷ������ʺϵ����ִ�С��ͷ��</li>
+ <li>7. Nowhere��ͼƬ�����Ҫ�����ļ����������������һ��΢���ź���������ΪMSYH.TTF��������ʾ��Ҫ04b03���壬�ϴ���������include/fonts��</li>
+
+ <li>8. <strong class="red">Ϊ�˱�֤��̳��ݰ�ȫ�����ֶ�ɾ��
installer.php �ļ� �� ./installer �ļ����µ������ļ�������������°�װParasy����ɾ�� forumdata/parasy_install.lock �ļ����ٴ����а�װ�ļ���</strong></li>
+</ul>
+</span></td>
+</tr>
+</table>
+ <input type="button" name="submit" value="������̳" style="height:
25" onclick="window.location='<?=$bbsdir?>'" id="laststep">
+</td></tr>
+<?php
+ @touch(DISCUZ_ROOT.$lockfile);
+ echo '<iframe width="0" height="0" src="index.php"></iframe>';
+}
+
+instfooter();
+
+?>
\ No newline at end of file

Added: trunk/upload/installer/Project_Parasy_plugin_add_reply.txt
==============================================================================
--- (empty file)
+++ trunk/upload/installer/Project_Parasy_plugin_add_reply.txt Thu Feb
7 07:00:29 2008
@@ -0,0 +1,172 @@
+# Discuz! Plugin Dump
+# Version: Discuz! 5.5.0
+# Time: 2007-11-17 22:32
+# From: ::NoName Magazine ������־ (http://www.saicn.com/bbs/)
+#
+# Discuz! Community: http://www.Discuz.net
+# Please visit our website for latest news about Discuz!
+# --------------------------------------------------------
+
+
+YTo0OntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
+IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjE4OiLT0LvY
+uLS8tLj41/fV37zTt9YiO3M6MTA6ImlkZW50aWZpZXIiO3M6OToiYWRkX3Jl
+cGx5IjtzOjExOiJkZXNjcmlwdGlvbiI7czo4MDoi1/fV37eizPm/23i7/bfW
+LA0K09DIy7vYuLTU8rj41/fV37zTeLv9t9YsDQrX99Xf19S8urvYuLTX1Ly6
+1vfM4r/beLv9t9YsuvPMqMno1sMiO3M6MTA6ImRhdGF0YWJsZXMiO3M6MDoi
+IjtzOjk6ImRpcmVjdG9yeSI7czowOiIiO3M6OToiY29weXJpZ2h0IjtzOjMy
+OiJodHRwOi8vd3d3LjU0NjYuaWs4LmNvbSAobHU1MjY2KSI7czo3OiJtb2R1
+bGVzIjtzOjA6IiI7fXM6NzoidmVyc2lvbiI7czo1OiI1LjUuMCI7czo1OiJo
+b29rcyI7YTozOntpOjA7YTo0OntzOjk6ImF2YWlsYWJsZSI7czoxOiIxIjtz
+OjU6InRpdGxlIjtzOjEyOiJpbl9uZXd0aHJlYWQiO3M6MTE6ImRlc2NyaXB0
+aW9uIjtzOjI4OiJJTiBpbmNsdWRlL25ld3RocmVhZC5pbmMucGhwIjtzOjQ6
+ImNvZGUiO3M6ODg0OiJAaW5jbHVkZV9vbmNlIERJU0NVWl9ST09ULicuL2Zv
+cnVtZGF0YS9jYWNoZS9wbHVnaW5fYWRkX3JlcGx5LnBocCc7DQokYXJ2YXJz
+ID0gJF9EUExVR0lOWydhZGRfcmVwbHknXVsndmFycyddOw0KJGFyY3JlZGl0
+aWQgPSAkYXJ2YXJzWydjcmVkaXRpZCddOw0KJGFydmFyc1snbmV3X3N1Yidd
+ID0gaW50dmFsKCRhcnZhcnNbJ25ld19zdWInXSk7DQppZigkYXJ2YXJzWydu
+ZXdfc3ViJ10gPiAwICYmICghJGFydmFyc1snZmlkcyddIHx8IGluX2FycmF5
+KCRmaWQsZXhwbG9kZSgnLCcsJGFydmFyc1tmaWRzXSkpKSl7DQoJaWYoISRk
+aXNjdXpfdWlkKSB7DQoJCXNob3dtZXNzYWdlKCK3orHtzPvX09Do0qoiLiRl
+eHRjcmVkaXRzWyRhcmNyZWRpdGlkXVsndGl0bGUnXS4iLLXHwr2687e9v8nS
+1Leise0uIiwgTlVMTCwgJ05PUEVSTScpOw0KCX1lbHNlIHsNCgkJaWYoJGFy
+dmFyc1snbmV3X3N1YiddID4gJEdMT0JBTFNbZXh0Y3JlZGl0cy4kYXJjcmVk
+aXRpZF0pIHsJDQoJCQlzaG93bWVzc2FnZSgit6Kx7cz719PQ6NKqu6i30SIu
+JGFydmFyc1snbmV3X3N1YiddLiK49iIuJGV4dGNyZWRpdHNbJGFyY3JlZGl0
+aWRdWyd0aXRsZSddLiIsxOPWu9PQIi4kR0xPQkFMU1tleHRjcmVkaXRzLiRh
+cmNyZWRpdGlkXS4iuPYs0tG+rbK7ubu7qMHLLi4uIiwgTlVMTCwgJ05PUEVS
+TScpOw0KCQl9DQoJCSRkYi0+cXVlcnkoIlVQREFURSB7JHRhYmxlcHJlfW1l
+bWJlcnMgU0VUIGV4dGNyZWRpdHMkYXJjcmVkaXRpZCA9IGV4dGNyZWRpdHMk
+YXJjcmVkaXRpZCAtICRhcnZhcnNbbmV3X3N1Yl0gV0hFUkUgdWlkID0gJyRk
+aXNjdXpfdWlkJyIsICdVTkJVRkZFUkVEJyk7DQoJCWV4cGVuc2VfbG9nKCct
+Jy4kYXJ2YXJzW25ld19zdWJdLCAkZGlzY3V6X3VpZCwgMik7DQoJfQ0KfSI7
+fWk6MTthOjQ6e3M6OToiYXZhaWxhYmxlIjtzOjE6IjEiO3M6NToidGl0bGUi
+O3M6MTE6ImluX25ld3JlcGx5IjtzOjExOiJkZXNjcmlwdGlvbiI7czoyNzoi
+SU4gaW5jbHVkZS9uZXdyZXBseS5pbmMucGhwIjtzOjQ6ImNvZGUiO3M6MjMx
+NDoiQGluY2x1ZGVfb25jZSBESVNDVVpfUk9PVC4nLi9mb3J1bWRhdGEvY2Fj
+aGUvcGx1Z2luX2FkZF9yZXBseS5waHAnOw0KCSRhcnZhcnMgPSAkX0RQTFVH
+SU5bJ2FkZF9yZXBseSddWyd2YXJzJ107DQoJJGFyY3JlZGl0aWQgPSAkYXJ2
+YXJzWydjcmVkaXRpZCddOw0KCSRhcnZhcnNbJ3JlcGx5X3N1YiddID0gaW50
+dmFsKCRhcnZhcnNbJ3JlcGx5X3N1YiddKTsNCgkkYXJ2YXJzWydyZXBseV9h
+ZGQnXSA9IGludHZhbCgkYXJ2YXJzWydyZXBseV9hZGQnXSk7DQoJaWYoKCRh
+cnZhcnNbJ3JlcGx5X3N1YiddID4gMCB8fCAkYXJ2YXJzWydyZXBseV9hZGQn
+XSA+IDApICYmICghJGFydmFyc1snZmlkcyddIHx8IGluX2FycmF5KCRmaWQs
+ZXhwbG9kZSgnLCcsJGFydmFyc1tmaWRzXSkpKSl7DQoJCWlmKCRkaXNjdXpf
+dWlkID09ICR0aHJlYWRbJ2F1dGhvcmlkJ10gJiYgJGFydmFyc1sncmVwbHlf
+c3ViJ10gPiAkR0xPQkFMU1tleHRjcmVkaXRzLiRhcmNyZWRpdGlkXSkgew0K
+CQkJc2hvd21lc3NhZ2UoIrvYuLTX1Ly6tcTM+9fT0OjSqruot9EgIi4kYXJ2
+YXJzWydyZXBseV9zdWInXS4iuPYiLiRleHRjcmVkaXRzWyRhcmNyZWRpdGlk
+XVsndGl0bGUnXS4iLMTj1rvT0CIuJEdMT0JBTFNbZXh0Y3JlZGl0cy4kYXJj
+cmVkaXRpZF0uIrj2LNLRvq2yu7m7u6jByy4uLiIsIE5VTEwsICdOT1BFUk0n
+KTsNCgkJfWVsc2UgaWYoJGRpc2N1el91aWQgPT0gJHRocmVhZFsnYXV0aG9y
+aWQnXSAmJiAkYXJ2YXJzWydyZXBseV9zdWInXSA+IDApIHsNCgkJCSRkYi0+
+cXVlcnkoIlVQREFURSB7JHRhYmxlcHJlfW1lbWJlcnMgU0VUIGV4dGNyZWRp
+dHMkYXJjcmVkaXRpZCA9IGV4dGNyZWRpdHMkYXJjcmVkaXRpZCAtICRhcnZh
+cnNbcmVwbHlfc3ViXSBXSEVSRSB1aWQgPSAnJGRpc2N1el91aWQnIiwgJ1VO
+QlVGRkVSRUQnKTsNCgkJCWV4cGVuc2VfbG9nKCdleHRjcmVkaXRzJy4kYXJj
+cmVkaXRpZCAtICRhcnZhcnNbcmVwbHlfc3ViXSwgJGRpc2N1el91aWQsIDUp
+IDsNCgkJfWVsc2UgaWYoJGFydmFyc1sncmVwbHlfYWRkJ10gPiAwICYmICRk
+aXNjdXpfdWlkICE9ICR0aHJlYWRbJ2F1dGhvcmlkJ10pew0KCQkJJGlzZG91
+YmxlYWRkID0gJGFydmFyc1snZG91YmxlX2FkZCddID8gMSA6ICEkZGItPnJl
+c3VsdCgkZGItPnF1ZXJ5KCJTRUxFQ1QgcGlkIEZST00geyR0YWJsZXByZX1w
+b3N0cyBXSEVSRSB0aWQ9JyR0aWQnIEFORCBhdXRob3JpZD0nJGRpc2N1el91
+aWQnIExJTUlUIDEiKSwwKTsNCgkJCWlmKCRpc2RvdWJsZWFkZCl7DQoJCQkJ
+JGRiLT5xdWVyeSgiVVBEQVRFIHskdGFibGVwcmV9bWVtYmVycyBTRVQgZXh0
+Y3JlZGl0cyRhcmNyZWRpdGlkID0gZXh0Y3JlZGl0cyRhcmNyZWRpdGlkICsg
+JGFydmFyc1tyZXBseV9hZGRdIFdIRVJFIHVpZCA9ICckdGhyZWFkW2F1dGhv
+cmlkXSciLCAnVU5CVUZGRVJFRCcpOw0KCQkJfQ0KDQoJCQlpZigkYXJ2YXJz
+Wydpc3N1YiddICYmICRhcnZhcnNbJ3JlcGx5X2FkZCddID4gMCAmJiAkaXNk
+b3VibGVhZGQgKSB7DQoJCQkJaWYoJGFydmFyc1sncmVwbHlfYWRkJ10gPiAk
+R0xPQkFMU1tleHRjcmVkaXRzLiRhcmNyZWRpdGlkXSkgew0KCQkJCQlzaG93
+bWVzc2FnZSgiu9i4tMKl1ve1xMz719PQ6NKqu6i30SIuJGFydmFyc1sncmVw
+bHlfYWRkJ10uIrj2Ii4kZXh0Y3JlZGl0c1skYXJjcmVkaXRpZF1bJ3RpdGxl
+J10uIizE49a709AiLiRHTE9CQUxTW2V4dGNyZWRpdHMuJGFyY3JlZGl0aWRd
+LiK49izS0b6tsru5u7uowcsuLi4iLCBOVUxMLCAnTk9QRVJNJyk7DQoJCQkJ
+fQ0KCQkJCSRkYi0+cXVlcnkoIlVQREFURSB7JHRhYmxlcHJlfW1lbWJlcnMg
+U0VUIGV4dGNyZWRpdHMkYXJjcmVkaXRpZCA9IGV4dGNyZWRpdHMkYXJjcmVk
+aXRpZCAtICRhcnZhcnNbcmVwbHlfYWRkXSBXSEVSRSB1aWQgPSAnJGRpc2N1
+el91aWQnIiwgJ1VOQlVGRkVSRUQnKTsNCgkJCQlleHBlbnNlX2xvZygnLScu
+JGFydmFyc1tyZXBseV9hZGRdLCAkZGlzY3V6X3VpZCwgMykgOw0KCQkJCWV4
+cGVuc2VfbG9nKCRhcnZhcnNbcmVwbHlfYWRkXSwgJHRocmVhZFthdXRob3Jp
+ZF0sIDQpIDsNCgkJCX0NCgkJCWlmKCRhcnZhcnNbJ3BtJ10pIHsNCgkJCQkk
+YXJwbW1zZyA9ICLE47XEzPvX087S0tG72Li0LM+1zbPX1LavvbHA+MTjIi4k
+YXJ2YXJzWydyZXBseV9hZGQnXS4kZXh0Y3JlZGl0c1skYXJjcmVkaXRpZF1b
+J3RpdGxlJ10uIlxuy/nU2tb3zOI6W3VybF0iLiRib2FyZHVybC4idmlld3Ro
+cmVhZC5waHA/dGlkPSR0aWQiLiJbL3VybF0iOw0KCQkJCXNlbmRwbSgkdGhy
+ZWFkW2F1dGhvcmlkXSwgJ8Tj09DQwrvYuLQssqK78b2xwPguLi4nLCAgJGFy
+cG1tc2cpOw0KCQkJfQ0KCQl9DQoJfSI7fWk6MjthOjQ6e3M6OToiYXZhaWxh
+YmxlIjtzOjE6IjEiO3M6NToidGl0bGUiO3M6MTE6ImluX2VkaXRwb3N0Ijtz
+OjExOiJkZXNjcmlwdGlvbiI7czoyNzoiSU4gaW5jbHVkZS9lZGl0cG9zdC5p
+bmMucGhwIjtzOjQ6ImNvZGUiO3M6MTEzMzoiQGluY2x1ZGVfb25jZSBESVND
+VVpfUk9PVC4nLi9mb3J1bWRhdGEvY2FjaGUvcGx1Z2luX2FkZF9yZXBseS5w
+aHAnOw0KCQkkYXJ2YXJzID0gJF9EUExVR0lOWydhZGRfcmVwbHknXVsndmFy
+cyddOw0KCQkkYXJjcmVkaXRpZCA9ICRhcnZhcnNbJ2NyZWRpdGlkJ107DQoJ
+CSRhcnZhcnNbJ3JlcGx5X2FkZCddID0gaW50dmFsKCRhcnZhcnNbJ3JlcGx5
+X2FkZCddKTsNCgkJaWYoJGFydmFyc1sncmVwbHlfYWRkJ10gPiAwICYmICRh
+cnZhcnNbJ2RlbGV0ZV9zdWInXSkgew0KCQkJJGlzZG91YmxlYWRkID0gJGFy
+dmFyc1snZG91YmxlX2FkZCddID8gMSA6ICEkZGItPnJlc3VsdCgkZGItPnF1
+ZXJ5KCJTRUxFQ1QgcGlkIEZST00geyR0YWJsZXByZX1wb3N0cyBXSEVSRSB0
+aWQ9JyR0aWQnIEFORCBhdXRob3JpZD0nJGRpc2N1el91aWQnIExJTUlUIDEi
+KSwwKTsNCgkJCWlmKCRpc2RvdWJsZWFkZCl7DQoJCQkJJGRiLT5xdWVyeSgi
+VVBEQVRFIHskdGFibGVwcmV9bWVtYmVycyBTRVQgZXh0Y3JlZGl0cyRhcmNy
+ZWRpdGlkID0gZXh0Y3JlZGl0cyRhcmNyZWRpdGlkIC0gJGFydmFyc1tyZXBs
+eV9hZGRdIFdIRVJFIHVpZCA9ICckdGhyZWFkW2F1dGhvcmlkXSciLCAnVU5C
+VUZGRVJFRCcpOw0KCQkJfQ0KCQkJaWYoJGlzZG91YmxlYWRkICYmICRhcnZh
+cnNbJ2lzc3ViJ10pew0KCQkJCSRkYi0+cXVlcnkoIlVQREFURSB7JHRhYmxl
+cHJlfW1lbWJlcnMgU0VUIGV4dGNyZWRpdHMkYXJjcmVkaXRpZCA9IGV4dGNy
+ZWRpdHMkYXJjcmVkaXRpZCArICRhcnZhcnNbcmVwbHlfYWRkXSBXSEVSRSB1
+aWQgPSAkb3JpZ1thdXRob3JpZF0iLCAnVU5CVUZGRVJFRCcpOw0KCQkJfQ0K
+CQkJaWYoJGFydmFyc1sncG0nXSkgIHsNCgkJCQkkYXJwbW1zZyA9ICLO0rvY
+uLS1xMz719PO0tLRyb6z/SzPtc2z19S2r7/bs/3O0rvy1d+xu8m+zPnX99Xf
+u9i4tLb4zqrE47zTyc+1xCIuJGFydmFyc1sncmVwbHlfYWRkJ10uJGV4dGNy
+ZWRpdHNbJGFyY3JlZGl0aWRdWyd0aXRsZSddLiJcbsv51NrW98ziOlt1cmxd
+Ii4kYm9hcmR1cmwuInZpZXd0aHJlYWQucGhwP3RpZD0kdGlkIi4iWy91cmxd
+IjsJDQoJCQkJc2VuZHBtKCR0aHJlYWRbYXV0aG9yaWRdLCAnz7XNs9fUtq+/
+27P9zajWqi4uLicsICAkYXJwbW1zZyk7DQoJCQl9DQoJCX0iO319czo0OiJ2
+YXJzIjthOjk6e2k6MDthOjc6e3M6MTI6ImRpc3BsYXlvcmRlciI7czoxOiI3
+IjtzOjU6InRpdGxlIjtzOjEyOiLKx7fxuPjX99XfcG0iO3M6MTE6ImRlc2Ny
+aXB0aW9uIjtzOjA6IiI7czo4OiJ2YXJpYWJsZSI7czoyOiJwbSI7czo0OiJ0
+eXBlIjtzOjU6InJhZGlvIjtzOjU6InZhbHVlIjtzOjE6IjAiO3M6NToiZXh0
+cmEiO3M6MDoiIjt9aToxO2E6Nzp7czoxMjoiZGlzcGxheW9yZGVyIjtzOjE6
+IjgiO3M6NToidGl0bGUiO3M6MjA6IsrHt/G/27vYuLTV37XIwb+7/bfWIjtz
+OjExOiJkZXNjcmlwdGlvbiI7czowOiIiO3M6ODoidmFyaWFibGUiO3M6NToi
+aXNzdWIiO3M6NDoidHlwZSI7czo1OiJyYWRpbyI7czo1OiJ2YWx1ZSI7czox
+OiIxIjtzOjU6ImV4dHJhIjtzOjA6IiI7fWk6MjthOjc6e3M6MTI6ImRpc3Bs
+YXlvcmRlciI7czoxOiIxIjtzOjU6InRpdGxlIjtzOjEwOiLKudPDtcSw5r/p
+IjtzOjExOiJkZXNjcmlwdGlvbiI7czo1ODoiyrnTw7XEsOa/7A0KtuC49rDm
+v+y1xLuwLNPDsOu9xyAsILj0v6ouDQrIq7K/trzKudPDLMfrwfS/1SI7czo4
+OiJ2YXJpYWJsZSI7czo0OiJmaWRzIjtzOjQ6InR5cGUiO3M6NDoidGV4dCI7
+czo1OiJ2YWx1ZSI7czowOiIiO3M6NToiZXh0cmEiO3M6MDoiIjt9aTozO2E6
+Nzp7czoxMjoiZGlzcGxheW9yZGVyIjtzOjE6IjMiO3M6NToidGl0bGUiO3M6
+MTU6Itf31d+3osz5v9t4u/231iI7czoxMToiZGVzY3JpcHRpb24iO3M6MjM6
+Itf31d+3osz5v9t4u/231iwwzqqyu7/bIjtzOjg6InZhcmlhYmxlIjtzOjc6
+Im5ld19zdWIiO3M6NDoidHlwZSI7czo2OiJudW1iZXIiO3M6NToidmFsdWUi
+O3M6MToiNSI7czo1OiJleHRyYSI7czowOiIiO31pOjQ7YTo3OntzOjEyOiJk
+aXNwbGF5b3JkZXIiO3M6MToiMiI7czo1OiJ0aXRsZSI7czoxMjoiyrnTw7v9
+t9bX1rbOIjtzOjExOiJkZXNjcmlwdGlvbiI7czoxMjoiyrnTw7v9t9bX1rbO
+IjtzOjg6InZhcmlhYmxlIjtzOjg6ImNyZWRpdGlkIjtzOjQ6InR5cGUiO3M6
+Njoic2VsZWN0IjtzOjU6InZhbHVlIjtzOjE6IjEiO3M6NToiZXh0cmEiO3M6
+MTIyOiLO3g0KMT1leHRjcmVkaXRzMQ0KMj1leHRjcmVkaXRzMg0KMz1leHRj
+cmVkaXRzMw0KND1leHRjcmVkaXRzNA0KNT1leHRjcmVkaXRzNQ0KNj1leHRj
+cmVkaXRzNg0KNz1leHRjcmVkaXRzNw0KOD1leHRjcmVkaXRzOCI7fWk6NTth
+Ojc6e3M6MTI6ImRpc3BsYXlvcmRlciI7czoxOiI0IjtzOjU6InRpdGxlIjtz
+OjIzOiLX99Xf19S8urvYuLTW98ziv9t4u/231iI7czoxMToiZGVzY3JpcHRp
+b24iO3M6MzU6Itf31d/X1Ly6u9i4tNfUvLrW98ziv9t4u/231iwwzqqyu7/b
+IjtzOjg6InZhcmlhYmxlIjtzOjk6InJlcGx5X3N1YiI7czo0OiJ0eXBlIjtz
+OjY6Im51bWJlciI7czo1OiJ2YWx1ZSI7czoxOiIxIjtzOjU6ImV4dHJhIjtz
+OjA6IiI7fWk6NjthOjc6e3M6MTI6ImRpc3BsYXlvcmRlciI7czoxOiI1Ijtz
+OjU6InRpdGxlIjtzOjIzOiLT0MjLu9i4tNTyuPjX99XfvNN4u/231iI7czox
+MToiZGVzY3JpcHRpb24iO3M6MzE6ItPQyMu72Li01PK4+Nf31d+803i7/bfW
+LDDOqrK7vNMiO3M6ODoidmFyaWFibGUiO3M6OToicmVwbHlfYWRkIjtzOjQ6
+InR5cGUiO3M6NjoibnVtYmVyIjtzOjU6InZhbHVlIjtzOjE6IjIiO3M6NToi
+ZXh0cmEiO3M6MDoiIjt9aTo3O2E6Nzp7czoxMjoiZGlzcGxheW9yZGVyIjtz
+OjE6IjYiO3M6NToidGl0bGUiO3M6MTg6Is2s0rtpZMrHt/HW2Li0vNO31iI7
+czoxMToiZGVzY3JpcHRpb24iO3M6NDk6ItGhyscszazSu2lktuC0zrvYuLS7
+4bbgtM6807fWLre01q4szazSu2lk1ru809K7tM4iO3M6ODoidmFyaWFibGUi
+O3M6MTA6ImRvdWJsZV9hZGQiO3M6NDoidHlwZSI7czo1OiJyYWRpbyI7czo1
+OiJ2YWx1ZSI7czoxOiIxIjtzOjU6ImV4dHJhIjtzOjA6IiI7fWk6ODthOjc6
+e3M6MTI6ImRpc3BsYXlvcmRlciI7czoxOiI5IjtzOjU6InRpdGxlIjtzOjIy
+OiLJvrvYuLTV38z5vPXJ2bXIwb+7/bfWIjtzOjExOiJkZXNjcmlwdGlvbiI7
+czoyODoiyb672Li01d+jrL7Nv9uz/df31d+1yMG/u/231iI7czo4OiJ2YXJp
+YWJsZSI7czoxMDoiZGVsZXRlX3N1YiI7czo0OiJ0eXBlIjtzOjU6InJhZGlv
+IjtzOjU6InZhbHVlIjtzOjE6IjEiO3M6NToiZXh0cmEiO3M6MDoiIjt9fX0=
\ No newline at end of file

Added: trunk/upload/installer/Project_Parasy_plugin_now.txt
==============================================================================
--- (empty file)
+++ trunk/upload/installer/Project_Parasy_plugin_now.txt Thu Feb 7
07:00:29 2008
@@ -0,0 +1,22 @@
+# Discuz! Plugin Dump
+# Version: Discuz! 5.5.0
+# Time: 2007-11-23 18:08
+# From: ::NoName Magazine ������־ (http://saicn.com/bbs/)
+#
+# Discuz! Community: http://www.Discuz.net
+# Please visit our website for latest news about Discuz!
+# --------------------------------------------------------
+
+
+YToyOntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
+IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjc6Ik5vd2hl
+cmUiO3M6MTA6ImlkZW50aWZpZXIiO3M6Mzoibm93IjtzOjExOiJkZXNjcmlw
+dGlvbiI7czoyODoiTm93IGFuZCBUaGVuLCBIZXJlIGFuZCBUaGVyZSI7czox
+MDoiZGF0YXRhYmxlcyI7czoxMDoicGx1Z2luX25vdyI7czo5OiJkaXJlY3Rv
+cnkiO3M6NzoicGFyYXN5LyI7czo5OiJjb3B5cmlnaHQiO3M6NTg6IlRoaXMg
+aXMgYSBwYXJ0IG9mIFByb2plY3QgUGFyYXN5IGNyZWF0ZWQgYnkgU2FpKHNh
+aWNuLmNvbSkiO3M6NzoibW9kdWxlcyI7czoxMjc6ImE6MTp7aTowO2E6NTp7
+czo0OiJuYW1lIjtzOjM6Im5vdyI7czo0OiJtZW51IjtzOjc6Ik5vd2hlcmUi
+O3M6NDoidHlwZSI7czoxOiIyIjtzOjc6ImFkbWluaWQiO3M6MToiMCI7czox
+MjoiZGlzcGxheW9yZGVyIjtpOjA7fX0iO31zOjc6InZlcnNpb24iO3M6NToi
+NS41LjAiO30=
\ No newline at end of file

Added: trunk/upload/installer/Project_Parasy_plugin_tod.txt
==============================================================================
--- (empty file)
+++ trunk/upload/installer/Project_Parasy_plugin_tod.txt Thu Feb 7
07:00:29 2008
@@ -0,0 +1,22 @@
+# Discuz! Plugin Dump
+# Version: Discuz! 5.5.0
+# Time: 2007-12-11 21:50
+# From: ::NoName Magazine ������־ (http://127.0.0.1/bbs/)
+#
+# Discuz! Community: http://www.Discuz.net
+# Please visit our website for latest news about Discuz!
+# --------------------------------------------------------
+
+
+YToyOntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
+IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjY6IlRvZKbB
+eSI7czoxMDoiaWRlbnRpZmllciI7czozOiJ0b2QiO3M6MTE6ImRlc2NyaXB0
+aW9uIjtzOjE1OiJUb2RheSAsIFRvIERvo6EiO3M6MTA6ImRhdGF0YWJsZXMi
+O3M6MzQ6InBsdWdpbl90b2RfcHJvamVjdCxwbHVnaW5fdG9kX3Rhc2siO3M6
+OToiZGlyZWN0b3J5IjtzOjc6InBhcmFzeS8iO3M6OToiY29weXJpZ2h0Ijtz
+OjU5OiIJVGhpcyBpcyBhIHBhcnQgb2YgUHJvamVjdCBQYXJhc3kgQ3JlYXRl
+ZCBieSBTYWkoc2FpY24uY29tKSI7czo3OiJtb2R1bGVzIjtzOjEyNjoiYTox
+OntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6MzoidG9kIjtzOjQ6Im1lbnUiO3M6
+NjoiVG9kpsF5IjtzOjQ6InR5cGUiO3M6MToiMiI7czo3OiJhZG1pbmlkIjtz
+OjE6IjAiO3M6MTI6ImRpc3BsYXlvcmRlciI7aTowO319Ijt9czo3OiJ2ZXJz
+aW9uIjtzOjU6IjUuNS4wIjt9
\ No newline at end of file

Added: trunk/upload/installer/bg.png
==============================================================================
Binary file. No diff available.

Added: trunk/upload/installer/global.func.php
==============================================================================
--- (empty file)
+++ trunk/upload/installer/global.func.php Thu Feb 7 07:00:29 2008
@@ -0,0 +1,275 @@
+<?php
+function createtable($sql, $dbcharset) {
+ $type = strtoupper(preg_replace("/^\s*CREATE
TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql));
+ $type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM';
+ return preg_replace("/^\s*(CREATE
TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql).
+ (mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT
CHARSET=$dbcharset" : " TYPE=$type");
+}
+
+function daddslashes($string) {
+ if(is_array($string)) {
+ foreach($string as $key => $val) {
+ $string[$key] = daddslashes($val, $force);
+ }
+ } else {
+ $string = addslashes($string);
+ }
+ return $string;
+}
+
+
+function dir_writeable($dir) {
+ if(!is_dir($dir)) {
+ @mkdir($dir, 0777);
+ }
+ if(is_dir($dir)) {
+ if($fp = @fopen("$dir/test.test", 'w')) {
+ @fclose($fp);
+ @unlink("$dir/test.test");
+ $writeable = 1;
+ } else {
+ $writeable = 0;
+ }
+ }
+ return $writeable;
+}
+
+function dir_clear($dir) {
+ global $lang;
+
+ showjsmessage($lang['clear_dir'].' '.$dir);
+ $directory = dir($dir);
+ while($entry = $directory->read()) {
+ $filename = $dir.'/'.$entry;
+ if(is_file($filename)) {
+ @unlink($filename);
+ }
+ }
+ $directory->close();
+ result(1, 1, 0);
+}
+
+function instheader() {
+ global $charset;
+
+ echo "<html><head>".
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$charset\">".
+ "<title>Project Parasy Installer </title>".
+ "<link rel=\"stylesheet\" type=\"text/css\" id=\"css\" href=\"installer/style.css\"></head>".
+ "<body>".
+ "<div id=\"main\" align=\"center\"><div id=\"panel\" align=\"left\">".
+ "<div class=\"install\">Project Parasy v1.5 Installer</div>";
+}
+function header2() {
+ echo "<table width=\"98%\" border=\"0\" cellspacing=\"0\"
cellpadding=\"0\" align=\"center\">";
+}
+function step($action) {
+ if (!$action) {
+ $start ="current";
+ } elseif ($action == 'install') {
+ $install ="current";
+ } elseif ($action == 'tpl') {
+ $tpl ="current";
+ } elseif ($action =='plugins') {
+ $plugins ="current";
+ } elseif ($action == 'setting'){
+ $setting ="current";
+ } elseif ($action == 'final'){
+ $final ="current";
+ }
+
+ echo"<table id=\"menu\">
+ <tr>
+ <td class=\"".$start."\">��װ��ʼ</td>
+ <td class=\"".$setting."\">ϵͳ��������</td>
+ <td class=\"".$install."\">��������ݿ�ṹ</td>
+ <td class=\"".$tpl."\">��������</td>
+ <td class=\"".$plugins."\">����ϵͳ���</td>
+ <td class=\"".$final."\">��װ���</td>
+ </tr>
+ </table>";
+}
+function instfooter() {
+ global $version;
+
+ echo "<tr><td><hr size=\"1\" color=\"#EEE\" style=\"color: #EEE;
background-color: #EEE; height: 1px; border: 0;\" /></td></tr>".
+ "<tr><td align=\"center\">".
+ "<b style=\"font-size: 11px\">Powered by <a
href=\"http://saicn.com\" target=\"_blank\">Project Parasynthesis".
+ "</a>".
+ "</td></tr></table>".
+ "</div></div></body></html>";
+}
+
+function instmsg($message, $url_forward = '') {
+ global $lang, $msglang;
+
+ instheader();
+
+ $message = $msglang[$message] ? $msglang[$message] : $message;
+
+ if($url_forward) {
+ $message .= "<br><br><br><a href=\"$url_forward\">$message</a>";
+ $message .= "<script>setTimeout(\"redirect('$url_forward');\", 1250);</script>";
+ } elseif(strpos($message, $lang['return'])) {
+ $message .= "<br><br><br><a href=\"javascript:history.go(-1);\" class=\"mediumtxt\">$lang[message_return]</a>";
+ }
+
+ echo "<tr><td>
+ <hr size=\"1\" color=\"#EEE\" style=\"color: #EEE; background-color:
#EEE; height: 1px; border: 0;\" />
+ <table width=\"560\" class=\"datatable\" align=\"center\">".
+ "<tr bgcolor=\"#f1f1f1\"><td width=\"20%\" style=\"padding-left: 10px\">������Ϣ</td></tr>".
+ "<tr align=\"center\"><td class=\"message\">$message</td></tr></table></tr></td>";
+
+ instfooter();
+ exit;
+}
+
+function loginit($logfile) {
+ global $lang;
+ showjsmessage($lang['init_log'].' '.$logfile);
+ $fp = @fopen('./forumdata/logs/'.$logfile.'.php', 'w');
+ @fwrite($fp, '<'.'?PHP exit(); ?'.">\n");
+ @fclose($fp);
+ result(1, 1, 0);
+}
+
+function showjsmessage($message) {
+ echo '<script
type="text/javascript">showmessage(\''.addslashes($message).' \');</script>'."\r\n";
+ flush();
+ ob_flush();
+}
+
+function random($length) {
+ $hash = '';
+ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
+ $max = strlen($chars) - 1;
+ PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
+ for($i = 0; $i < $length; $i++) {
+ $hash .= $chars[mt_rand(0, $max)];
+ }
+ return $hash;
+}
+
+function result($result = 1, $output = 1, $html = 1) {
+ global $lang;
+
+ if($result) {
+ $text = $html ? '<font
color="#0000EE">'.$lang['writeable'].'</font><br>' : $lang['writeable']."\n";
+ if(!$output) {
+ return $text;
+ }
+ echo $text;
+ } else {
+ $text = $html ? '<font
color="#FF0000">'.$lang['unwriteable'].'</font><br>' : $lang['unwriteable']."\n";
+ if(!$output) {
+ return $text;
+ }
+ echo $text;
+ }
+}
+
+function redirect($url) {
+
+ echo "<script>".
+ "function redirect() {window.location.replace('$url');}\n".
+ "setTimeout('redirect();', 0);\n".
+ "</script>";
+ exit();
+
+}
+
+function alter_query($table,$field,$query_info) {
+ global $lang, $dbcharset, $tablepre, $db;
+ $query = $db->query("Describe {$tablepre}".$table." ".$field);
+ if (mysql_num_rows($query)>0) {
+ showjsmessage($tablepre.$table.' �ֶ� '.$field.' �Ѿ�����');
+ } else {
+ $db->query("{$query_info}");
+ showjsmessage('���� '.$tablepre.$table.' �ֶ� '.$field.'...�ɹ�');
+ }
+}
+
+function runquery($sql) {
+ global $lang, $dbcharset, $tablepre, $db;
+
+ $sql = str_replace("\r", "\n", str_replace(' cdb_', ' '.$tablepre, $sql));
+ $ret = array();
+ $num = 0;
+ foreach(explode(";\n", trim($sql)) as $query) {
+ $queries = explode("\n", trim($query));
+ foreach($queries as $query) {
+ $ret[$num] .= $query[0] == '#' || $query[0].$query[1]
== '--' ? '' : $query;
+ }
+ $num++;
+ }
+ unset($sql);
+
+ foreach($ret as $query) {
+ $query = trim($query);
+ if($query) {
+
+ if(substr($query, 0, 26) == 'CREATE TABLE IF NOT EXISTS') {
+ $name = preg_replace("/CREATE TABLE IF NOT EXISTS
([a-z0-9_]+) .*/is", "\\1", $query);
+ showjsmessage($lang['create_table'].' '.$name.' ... '.$lang['succeed']);
+ $db->query(createtable($query, $dbcharset));
+
+ } elseif(substr($query, 0, 10) == 'ALTER TABLE') {
+ $name = preg_replace("/ALTER TABLE ([a-z0-9_]+) .*/is", "\\1", $query);
+ showjsmessage('����ݱ� '.$name.' ... '.$lang['succeed']);
+ $db->query(createtable($query, $dbcharset));
+ } else {
+ $db->query($query);
+ }
+
+ }
+ }
+}
+
+function installplugin($plugindata,$plugin_info) {
+ global $lang, $dbcharset, $tablepre, $db;
+ $plugindata = preg_replace("/(#.*\s+)*/", '', $plugindata);
+ $pluginarray = daddslashes(unserialize(base64_decode($plugindata)), 1);
+
+ $query = $db->query("SELECT pluginid FROM {$tablepre}plugins WHERE
identifier='{$pluginarray[plugin][identifier]}' LIMIT 1");
+ if($db->num_rows($query)) {
+ showjsmessage('��� '.$plugin_info.' �Ѱ�װ ... ���');
+ } else {
+ $sql1 = $sql2 = $comma = '';
+ foreach($pluginarray['plugin'] as $key => $val) {
+ if($key == 'directory') {
+ //compatible for old versions
+ $val .= (!empty($val) && substr($val, -1) != '/') ? '/' : '';
+ }
+ $sql1 .= $comma.$key;
+ $sql2 .= $comma.'\''.$val.'\'';
+ $comma = ',';
+ }
+ $db->query("INSERT INTO {$tablepre}plugins ($sql1) VALUES ($sql2)");
+ $pluginid = $db->insert_id();
+
+ foreach(array('hooks', 'vars') as $pluginconfig) {
+ if(is_array($pluginarray[$pluginconfig])) {
+ foreach($pluginarray[$pluginconfig] as $config) {
+ $sql1 = 'pluginid';
+ $sql2 = '\''.$pluginid.'\'';
+ foreach($config as $key => $val) {
+ $sql1 .= ','.$key;
+ $sql2 .= ',\''.$val.'\'';
+ }
+ $db->query("INSERT INTO {$tablepre}plugin$pluginconfig ($sql1)
VALUES ($sql2)");
+ }
+ }
+ }
+ showjsmessage('���ڰ�װ��� '.$plugin_info.' ... �ɹ�');
+ }
+}
+function setconfig($string) {
+ if(!get_magic_quotes_gpc()) {
+ $string = str_replace('\'', '\\\'', $string);
+ } else {
+ $string = str_replace('\"', '"', $string);
+ }
+ return $string;
+}
+
+?>
\ No newline at end of file

Added: trunk/upload/installer/index.htm
==============================================================================
--- (empty file)
+++ trunk/upload/installer/index.htm Thu Feb 7 07:00:29 2008
@@ -0,0 +1 @@
+
\ No newline at end of file

Added: trunk/upload/installer/install.lang.php
==============================================================================
--- (empty file)
+++ trunk/upload/installer/install.lang.php Thu Feb 7 07:00:29 2008
@@ -0,0 +1,202 @@
+<?php
+define('INSTALL_LANG', 'SC_GBK');
+
+$lang = array
+(
+ 'SC_GBK' => '��������',
+ 'TC_BIG5' => '��������',
+ 'SC_UTF8' => '�������� UTF8 ��',
+ 'TC_UTF8' => '�������� UTF8 ��',
+ 'EN_ISO' => 'ENGLISH ISO8859',
+ 'EN_UTF8' => 'ENGLIST UTF-8',
+
+ 'username' => '����Ա�˺�:',
+ 'password' => '����Ա����:',
+ 'repeat_password' => '�ظ�����:',
+ 'admin_email' => '����Ա Email:',
+
+ 'succeed' => '�ɹ�',
+ 'enabled' => '����',
+ 'writeable' => '��д',
+ 'readable' => '�ɶ�',
+ 'unwriteable' => '����д',
+ 'yes' => '��',
+ 'no' => '����',
+ 'unlimited' => '����',
+ 'support' => '֧��',
+ 'unsupport' => '<span class="redfont">��֧��</span>',
+ 'old_step' => '��һ��',
+ 'new_step' => '��һ��',
+ 'tips_message' => '��ʾ��Ϣ',
+ 'return' => '����',
+
+ 'env_os' => '����ϵͳ',
+ 'env_php' => 'PHP �汾',
+ 'env_mysql' => 'MySQL ֧��',
+ 'env_attach' => '�����ϴ�',
+ 'env_diskspace' => '���̿ռ�',
+ 'env_dir_writeable' => 'Ŀ¼д��',
+
+ 'init_log' => '��ʼ����¼',
+ 'clear_dir' => '���Ŀ¼',
+ 'select_db' => 'ѡ����ݿ�',
+ 'create_table' => '�����ݱ�',
+
+ 'install_wizard' => '��װ��',
+ 'current_process' => '��ǰ״̬:',
+ 'show_license' => 'Discuz! �û����Э��',
+ 'agreement_yes' => '��ͬ��',
+ 'agreement_no' => '�Ҳ�ͬ��',
+ 'check_config' => '��������ļ�״̬',
+ 'check_catalog_file_name' => 'Ŀ¼�ļ����',
+ 'check_need_status' => '����״̬',
+ 'check_currently_status' => '��ǰ״̬',
+ 'edit_config' => '���/�༭��ǰ����',
+ 'variable' => '����ѡ��',
+ 'value' => '��ǰֵ',
+ 'comment' => 'ע��',
+ 'dbhost' => '��ݿ������:',
+ 'dbhost_comment' => '��ݿ�������ַ, һ��Ϊ localhost',
+ 'dbuser' => '��ݿ��û���:',
+ 'dbuser_comment' => '��ݿ��˺��û���',
+ 'dbpw' => '��ݿ�����:',
+ 'dbpw_comment' => '��ݿ��˺�����',
+ 'dbname' => '��ݿ���:',
+ 'dbname_comment' => '��ݿ����',
+ 'email' => 'ϵͳ Email:',
+ 'email_comment' => '���ڷ��ͳ�����󱨸�',
+ 'tablepre' => '����ǰ׺:',
+ 'tablepre_comment' => 'ͬһ��ݿⰲװ����̳ʱ�ɸı�Ĭ��',
+ 'tablepre_prompt' => '�������Ҫ��ͬһ��ݿⰲװ��� Discuz! \n��̳,����,ǿ�ҽ�����Ҫ�޸ı���ǰ׺��',
+
+ 'recheck_config' => '���¼������',
+ 'check_env' => '��鵱ǰ�������',
+ 'env_required' => 'Parasy ��������',
+ 'env_best' => 'Parasy �������',
+ 'env_current' => '��ǰ������',
+ 'install_note' => '��װ����ʾ',
+ 'add_admin' => '���ù���Ա�˺�',
+ 'start_install' => '��ʼ��װ Discuz!',
+ 'dbname_invalid' => '��ݿ���Ϊ�գ�����д��ݿ����',
+ 'admin_username_invalid' => '�û����, ���ȳ������ƻ��Ƿ��ַ�',
+ 'admin_password_invalid' => '����������벻һ�¡�',
+ 'admin_email_invalid' => 'Email ��ַ��Ч',
+ 'admin_invalid' => '�����Ϣû����д����',
+
+ 'config_comment' => '����������д�����ݿ��˺���Ϣ, ͨ������²���Ҫ�޸ĺ�ɫѡ�����ݡ�',
+ 'config_unwriteable'
=> '��װ���޷�д�������ļ�, ��˶�������Ϣ, �����޸�, ��ͨ��
FTP ���ĺõ� config.inc.php �ϴ���',
+
+ 'database_errno_2003' => '�޷������ݿ⣬������ݿ��Ƿ������ݿ�������ַ�Ƿ���ȷ',
+ 'database_errno_1044' => '�޷������µ���ݿ⣬������ݿ������д�Ƿ���ȷ',
+ 'database_errno_1045' => '�޷������ݿ⣬������ݿ��û�����������Ƿ���ȷ',
+
+ 'dbpriv_createtable' => 'û��CREATE TABLEȨ�ޣ��޷���װ��̳',
+ 'dbpriv_insert' => 'û��INSERTȨ�ޣ��޷���װ��̳',
+ 'dbpriv_select' => 'û��SELECTȨ�ޣ��޷���װ��̳',
+ 'dbpriv_update' => 'û��UPDATEȨ�ޣ��޷���װ��̳',
+ 'dbpriv_delete' => 'û��DELETEȨ�ޣ��޷���װ��̳',
+ 'dbpriv_droptable' => 'û��DROP TABLEȨ�ޣ��޷���װ��̳',
+
+ 'php_version_406' => '��� PHP �汾С�� 4.0.6, �޷�ʹ�� Discuz!��',
+ 'attach_enabled' => '����/���ߴ� ',
+ 'attach_enabled_info' => '������ϴ����������ߴ�: ',
+ 'attach_disabled' => '�������ϴ�����',
+ 'attach_disabled_info' => '�����ϴ�����ز���������ֹ��',
+ 'mysql_version_323' => '��� MySQL �汾���� 3.23����װ�޷�������С�',
+ 'mysql_unsupport' => '��ķ�����֧��MySql��ݿ⣬�޷���װ��̳����',
+ 'template_unwriteable' => 'ģ��Ŀ¼(./templates)���Է� 777 ���޷�д�룬���߱༭ģ�幦�ܽ��޷�ʹ�á�',
+ 'attach_unwriteable' => '����Ŀ¼(Ĭ���� ./attachments)���Է� 777 ���޷�д�룬�����ϴ����ܽ��޷�ʹ�á�',
+ 'avatar_unwriteable' => '�Զ���ͷ��Ŀ¼(./customavatars)���Է� 777 ���޷�д�룬�ϴ�ͷ���ܽ��޷�ʹ�á�',
+ 'forumdata_unwriteable' => '���Ŀ¼(./forumdata)���Է� 777 ���޷�д�룬��̳���м�¼�ͱ��ݵ���ݿ⹦�ܽ��޷�ʹ�á�',
+ 'femplate_unwriteable' => '����ģ��Ŀ¼(./forumdata/templates)���Է� 777 ���޷�д�룬��װ�޷�������С�',
+ 'cache_unwriteable' => '��ݻ���Ŀ¼(./forumdata/cache)���Է� 777 ���޷�д�룬��װ�޷�������С�',
+ 'threadcache_unwriteable'
=> '��ݻ���Ŀ¼(./forumdata/threadcaches)���Է� 777 ���޷�д�룬��װ�޷�������С�',
+ 'log_unwriteable' => '��ݻ���Ŀ¼(./forumdata/threadcaches)���Է� 777 ���޷�д�룬��װ�޷�������С�',
+ 'cache_unwriteable' => '��ݻ���Ŀ¼(./forumdata/cache)���Է� 777 ���޷�д�룬��װ�޷�������С�',
+ 'tablepre_invalid' => '��ָ������ݱ�ǰ׺����ַ�(".")���뷵���޸ġ�',
+ 'db_invalid' => 'ָ������ݿⲻ����, ϵͳҲ�޷��Զ����, �޷���װ Discuz!��',
+ 'db_auto_created' => 'ָ������ݿⲻ����, ��ϵͳ�ѳɹ����, ���Լ���װ��',
+ 'db_not_null' => '��ݿ����Ѿ���װ�� Discuz!, ����װ�����ԭ����ݡ�',
+ 'db_drop_table_confirm' => '����װ�����ȫ��ԭ����ݣ���ȷ��Ҫ������?',
+ 'install_in_processed' => '���ڰ�װ...',
+ 'install_succeed' => '��ϲ����̳��װ�ɹ�����������̳��ҳ',
+
+ 'init_credits_karma' => '����',
+ 'init_credits_money' => '��Ǯ',
+
+ 'init_group_0' => '��Ա',
+ 'init_group_1' => '����Ա',
+ 'init_group_2' => '��������',
+ 'init_group_3' => '����',
+ 'init_group_4' => '��ֹ����',
+ 'init_group_5' => '��ֹ����',
+ 'init_group_6' => '��ֹ IP',
+ 'init_group_7' => '�ο�',
+ 'init_group_8' => '�ȴ���֤��Ա',
+ 'init_group_9' => '��ؤ',
+ 'init_group_10' => '������·',
+ 'init_group_11' => 'ע���Ա',
+ 'init_group_12' => '�м���Ա',
+ 'init_group_13' => '�߼���Ա',
+ 'init_group_14' => '���ƻ�Ա',
+ 'init_group_15' => '��̳Ԫ��',
+
+ 'init_rank_1' => '������ѧ',
+ 'init_rank_2' => 'С��ţ��',
+ 'init_rank_3' => 'ʵϰ����',
+ 'init_rank_4' => '����׫����',
+ 'init_rank_5' => '��Ƹ���',
+
+ 'init_cron_1' => '��ս��շ�����',
+ 'init_cron_2' => '��ձ�������ʱ��',
+ 'init_cron_3' => 'ÿ���������',
+ 'init_cron_4' => '����ͳ�����ʼ�ף��',
+ 'init_cron_5' => '����ظ�֪ͨ',
+ 'init_cron_6' => 'ÿ�չ�������',
+ 'init_cron_7' => '��ʱ��������',
+ 'init_cron_8' => '��̳�ƹ�����',
+ 'init_cron_9' => 'ÿ����������',
+ 'init_cron_10' => 'ÿ�� X-Space�����û�',
+ 'init_cron_11' => 'ÿ���������',
+
+ 'init_bbcode_1' => 'ʹ���ݺ��������Ч������ HTML ��
marquee ��ǩ��ע�⣺���Ч��ֻ�� Internet Explorer ���������Ч��',
+ 'init_bbcode_2' => 'Ƕ�� Flash ����',
+ 'init_bbcode_3' => '��ʾ QQ ����״̬�������ͼ����Ժ���������',
+ 'init_bbcode_4' => 'Ƕ�� Real ��Ƶ',
+ 'init_bbcode_5' => 'Ƕ�� Real ��Ƶ����Ƶ',
+ 'init_bbcode_6' => 'Ƕ�� Windows media ��Ƶ',
+ 'init_bbcode_7' => 'Ƕ�� Windows media ��Ƶ����Ƶ',
+
+ 'init_qihoo_searchboxtxt' =>'����ؼ��,����������̳',
+ 'init_threadsticky' =>'ȫ���ö�,�����ö�,�����ö�',
+
+ 'init_default_style' => 'Ĭ�Ϸ��',
+ 'init_default_forum' => 'Ĭ����̳',
+ 'init_default_template' => 'Ĭ��ģ����ϵ',
+ 'init_default_template_copyright' => '��ʢ���루�������Ƽ����޹�˾',
+
+ 'init_dataformat' => 'Y-n-j',
+ 'init_modreasons' => '���/SPAM\r\n�����ˮ\r\nΥ������\r\n�IJ�����\r\n�ظ�����\r\n\r\n�Һ���ͬ\r\n��Ʒ����\r\nԭ������',
+ 'init_link' => 'Discuz! �ٷ���̳',
+ 'init_link_note' => '�ṩ���� Discuz! ��Ʒ���š���������뼼����',
+
+ 'preparation' => '
+ <li>�뱣֤���Discuz 5.5.0�Ѿ���ȷ��װ</li>
+ <li>��ѹ����� upload Ŀ¼��ȫ���ļ���Ŀ¼�ϴ���������</li>
+ <li>�޸�.htaccess�ļ��е�RewriteBase ���ϴ�����̳��Ŀ¼��</li>
+ <li>�޸� ./parasy/ParasySettings.inc.php �е� $bbsdir �Լ� $jsdir ��/bbsΪ��̳��ǰĿ¼</li>
+ <li>�����ʹ�÷� WINNT ϵͳ���޸��������ԣ�<br>&nbsp; &nbsp; <b>./customavatars/m
+ </b> Ŀ¼ 777;&nbsp; &nbsp; <b>./customavatars/s</b> Ŀ¼ 777;&nbsp;
&nbsp; <br>&nbsp; &nbsp; <b>./forumdata/�µ�����Ŀ¼</b> 777;&nbsp;
&nbsp; <br></li>',
+
+);
+
+$msglang = array(
+
+ 'lock_exists' => '���Ѿ���װ��Project
Parasy��Ϊ�˱�֤��̳��ݰ�ȫ�����ֶ�ɾ��
installer.php �ļ� �� ./installer �ļ����µ������ļ�������������°�װParasy����ɾ�� forumdata/parasy_install.lock �ļ����ٴ����а�װ�ļ���',
+ 'short_open_tag_invalid' => '�Բ����뽫php.ini�е�short_open_tag����ΪOn�������޷�����װ��̳��',
+ 'database_nonexistence'
=> '��� ./include/db_'.$database.'.class.php ������, �޷�����װ, ���� FTP �����ļ��ϴ������ԡ�',
+ 'config_nonexistence' => '���
config.inc.php ������, �޷�����װ, ���� FTP �����ļ��ϴ������ԡ�',
+
+);
+
+?>
\ No newline at end of file

Added: trunk/upload/installer/parasy.sql
==============================================================================
--- (empty file)
+++ trunk/upload/installer/parasy.sql Thu Feb 7 07:00:29 2008
@@ -0,0 +1,204 @@
+--
+-- Table structure for table `cdb_savepoint`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_savepoint (
+ `svp_id` int(10) unsigned NOT NULL auto_increment,
+ `svp_uid` int(10) unsigned NOT NULL default '0',
+ `svp_url` varchar(255) NOT NULL default '',
+ `svp_rank` int(10) unsigned NOT NULL default '0',
+ `svp_created` int(10) unsigned NOT NULL default '0',
+ `svp_lastupdated` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`svp_id`),
+ KEY `INDEX_UID` (`svp_uid`),
+ KEY `INDEX_URL` (`svp_url`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_geo_usage_simple`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_geo_usage_simple (
+ `gus_geo` varchar(100) NOT NULL default 'earth',
+ `gus_name_cn` varchar(100) NOT NULL default '����',
+ `gus_name_en` varchar(100) NOT NULL default 'Earth',
+ `gus_hits` int(10) unsigned NOT NULL default '0',
+ `gus_lastupdated` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`gus_geo`),
+ UNIQUE KEY `INDEX_NAME_CN` (`gus_name_cn`),
+ UNIQUE KEY `INDEX_NAME_EN` (`gus_name_en`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_geo_going`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_geo_going (
+ `ggg_id` int(10) unsigned NOT NULL auto_increment,
+ `ggg_uid` int(10) unsigned NOT NULL default '0',
+ `ggg_geo` varchar(100) NOT NULL,
+ `ggg_impression` text,
+ `ggg_created` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`ggg_id`),
+ KEY `INDEX_UID` (`ggg_uid`),
+ KEY `INDEX_GEO` (`ggg_geo`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_geo_been`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_geo_been (
+ `gbn_id` int(10) unsigned NOT NULL auto_increment,
+ `gbn_uid` int(10) unsigned NOT NULL default '0',
+ `gbn_geo` varchar(100) NOT NULL,
+ `gbn_impression` text,
+ `gbn_created` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`gbn_id`),
+ KEY `INDEX_UID` (`gbn_uid`),
+ KEY `INDEX_GEO` (`gbn_geo`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_plugin_now`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_plugin_now (
+ `vid` mediumint(8) NOT NULL auto_increment,
+ `dateline` int(10) NOT NULL default '0',
+ `author` varchar(15) NOT NULL default '',
+ `authorid` mediumint(8) NOT NULL default '0',
+ `content` varchar(250) NOT NULL default '',
+ `background` varchar(35) NOT NULL default '',
+ `icons` int(2) NOT NULL default '0',
+ PRIMARY KEY (`vid`),
+ KEY `authorid` (`authorid`),
+ KEY `author` (`author`),
+ KEY `dateline` (`dateline`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_plugin_now_stats`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_plugin_now_stats (
+ `uid` mediumint(8) NOT NULL default '0',
+ `total` int(10) NOT NULL default '0',
+ `monthly` int(10) NOT NULL default '0',
+ `weekly` int(10) NOT NULL default '0',
+ `daily` mediumtext NOT NULL,
+ `firstupdate` int(10) NOT NULL default '0',
+ `lastupdate` int(10) NOT NULL default '0',
+ PRIMARY KEY (`uid`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_expense`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_expense (
+ `exp_id` int(10) unsigned NOT NULL auto_increment,
+ `exp_uid` int(10) unsigned NOT NULL default '0',
+ `exp_amount` double NOT NULL default '0',
+ `exp_type` int(10) unsigned NOT NULL default '0',
+ `exp_memo` text,
+ `exp_created` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`exp_id`),
+ KEY `INDEX_UID` (`exp_uid`),
+ KEY `INDEX_TYPE` (`exp_type`),
+ KEY `INDEX_CREATED` (`exp_created`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_plugin_tod_projecte`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_plugin_tod_project (
+ `tpr_id` int(10) unsigned NOT NULL auto_increment,
+ `tpr_uid` int(10) unsigned NOT NULL default '0',
+ `tpr_private` int(10) unsigned NOT NULL default '0',
+ `tpr_title` varchar(100) NOT NULL default '',
+ `tpr_progress` int(10) unsigned NOT NULL default '0',
+ `tpr_type` int(10) unsigned NOT NULL default '0',
+ `tpr_tasks` int(10) unsigned NOT NULL default '0',
+ `tpr_notes` int(10) unsigned NOT NULL default '0',
+ `tpr_dbs` int(10) unsigned NOT NULL default '0',
+ `tpr_created` int(10) unsigned NOT NULL default '0',
+ `tpr_lastupdated` int(10) unsigned NOT NULL default '0',
+ `tpr_lasttouched` int(10) unsigned NOT NULL default '0',
+ `tpr_completed` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`tpr_id`),
+ KEY `INDEX_UID` (`tpr_uid`),
+ KEY `INDEX_PRIVATE` (`tpr_private`),
+ KEY `INDEX_PROGRESS` (`tpr_progress`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_plugin_tod_task`
+--
+
+CREATE TABLE IF NOT EXISTS cdb_plugin_tod_task (
+ `tta_id` int(10) unsigned NOT NULL auto_increment,
+ `tta_uid` int(10) unsigned NOT NULL default '0',
+ `tta_pid` int(10) unsigned NOT NULL default '0',
+ `tta_title` varchar(100) NOT NULL default '',
+ `tta_level` int(10) unsigned NOT NULL default '0',
+ `tta_todo` int(1) unsigned NOT NULL default '0',
+ `tta_progress` int(10) unsigned NOT NULL default '0',
+ `tta_created` int(10) unsigned NOT NULL default '0',
+ `tta_lastupdated` int(10) unsigned NOT NULL default '0',
+ `tta_lasttouched` int(10) unsigned NOT NULL default '0',
+ `tta_completed` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`tta_id`),
+ KEY `INDEX_UID` (`tta_uid`),
+ KEY `INDEX_PID` (`tta_pid`),
+ KEY `INDEX_PROGRESS` (`tta_progress`)
+) TYPE=MyISAM;
+
+
+CREATE TABLE IF NOT EXISTS cdb_plugin_tod_note (
+ `note_id` int(10) unsigned NOT NULL auto_increment,
+ `note_hash` varchar(8) NOT NULL,
+ `note_uid` int(10) unsigned NOT NULL default '0',
+ `note_private` int(10) unsigned NOT NULL default '0',
+ `note_message` mediumtext NOT NULL,
+ `note_created` int(10) unsigned NOT NULL default '0',
+ `note_lastupdated` int(10) unsigned NOT NULL default '0',
+ `note_lasttouched` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`note_id`),
+ KEY `INDEX_UID` (`note_uid`)
+) TYPE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `cdb_channel`
+--
+CREATE TABLE IF NOT EXISTS cdb_channel (
+ `chl_id` int(10) unsigned NOT NULL auto_increment,
+ `chl_uid` int(10) NOT NULL,
+ `chl_fid` int(10) unsigned NOT NULL default '0',
+ `chl_title` varchar(200) NOT NULL default '',
+ `chl_url` varchar(200) NOT NULL default '',
+ `chl_dateline` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`chl_id`),
+ KEY `INDEX_fID` (`chl_fid`),
+ KEY `INDEX_TITLE` (`chl_title`),
+ KEY `INDEX_URL` (`chl_url`)
+) TYPE=MyISAM;

Added: trunk/upload/installer/style.css
==============================================================================
--- (empty file)
+++ trunk/upload/installer/style.css Thu Feb 7 07:00:29 2008
@@ -0,0 +1,158 @@
+body {
+padding: 0px;
+margin: 0px;
+background-color: #FFF;
+background: url('../installer/bg.png') repeat-x;
+}
+
+#main {
+padding: 50px 0px 20px 0px;
+width: 99%;
+font-family: Verdana, "Lucida Grande", "Lucida Sans", Hei, sans;
+}
+
+#panel {
+padding: 20px 20px 20px 20px;
+width: 720px;
+background-color: #FFFEFE;
+-webkit-border-radius: 5px;
+-moz-border-radius: 5px;
+}
+
+#info {
+padding: 5px;
+font-size: 12px;
+margin: 0px 0px 10px 0px;
+color: #333;
+background-color: #FFFFEF;
+border: 2px solid #FFC;
+}
+
+.title {
+font-size: 14px;
+color: #666;
+margin-bottom: 20px;
+}
+
+input.line {
+width: 300px;
+font-size: 15px;
+padding: 3px;
+background-color: #FFF;
+color: #333;
+border: 1px solid #999;
+}
+
+input.line:focus {
+width: 300px;
+font-size: 15px;
+padding: 3px;
+background-color: #FFF;
+color: #333;
+border: 1px solid #0C0;
+}
+
+.tip {
+color: #CCC;
+}
+
+form {
+padding: 0px;
+margin: 0px;
+}
+
+#bottom {
+padding: 10px 10px 10px 10px;
+font-family: Verdana, "Lucida Grande", "Lucida Sans", sans;
+font-size: 10px;
+color: #FFF;
+}
+
+a:link, a:visited, a:active {
+color: #80808F;
+text-decoration: none;
+}
+
+a:hover {
+background-color: #90909F;
+color: #FFF;
+text-decoration: none;
+}
+
+li {
+list-style: square;
+padding: 0px 0px 5px 0px;
+margin: 0px 0px 0px 2em;
+}
+
+.red {
+color: #F00;
+}
+
+.green {
+color: #0C0;
+}
+
+#menu {
+width: 100%;
+margin: 10px auto;
+text-align: center;
+font-size:12px
+}
+#menu td {
+height: 30px;
+line-height: 30px;
+color: #999;
+border-bottom: 3px solid #EEE;
+}
+.current {
+font-weight: bold;
+color: #090 !important;
+border-bottom-color: #F90 !important;
+}
+.datatable {
+width: 100%;
+margin: 10px auto 25px;
+font-size:12px;
+}
+.datatable td {
+padding: 5px 0;
+border-bottom: 1px solid #EEE;
+}
+
+input {
+border: 1px solid #B2C9D3; padding: 5px; background: #F5FCFF;
+}
+
+.install {
+ font-family: Arial, Verdana;
+ font-size: 16px;
+ font-weight: bold;
+ color: #666;
+}
+
+.message {
+ color:#333;
+}
+
+.altbg2 {
+ background: #F5F5F5;
+}
+
+.altbg1 {
+ background: #fff;
+}
+
+.header td {
+ color: #FFFFFF;
+ background-color: #3A4273;
+ text-align: center;
+}
+
+.option td {
+ text-align: center;
+}
+
+.redfont {
+ color: #FF0000;
+}

Modified: trunk/upload/templates/babel/discuz.htm
==============================================================================
--- trunk/upload/templates/babel/discuz.htm (original)
+++ trunk/upload/templates/babel/discuz.htm Thu Feb 7 07:00:29 2008
@@ -9,18 +9,18 @@
<img src="{IMGDIR}/go.gif" align="absmiddle" /> <a
href="$bbsdir/about" class="var" style="color:
$rand_color">��������</a>... <img src="{IMGDIR}/go.gif"
align="absmiddle" /> <a href="$bbsdir/now" class="var" style="color:
$rand_color2">�������������ʲô</a>... <img src="{IMGDIR}/go.gif"
align="absmiddle" />&nbsp;&nbsp;<a href="$bbsdir/go/autistic"
class="var" style="color: $rand_color3">�Լ����Լ���</a> ... <img
src="{IMGDIR}/go.gif" align="absmiddle" />&nbsp;&nbsp;<a
href="/index.html" class="var" style="color: $rand_color4">������ҳ</a>
</span>
</div>
-<div class="maintable" align="left">
<!--{/if}-->
-
+<!--{if $dash_commend}-->
+<div class="maintable" align="left">
<!--{loop $dash_commend $topic}-->
<!--{eval $color = rand_color();}-->
<!--{eval $i_commend ++;}-->
<!--{if $i_commend < 2}-->
<h1 class="ititle"><img src="$bbsdir/$topic[avatar_s]"
align="absmiddle" class="portrait" />&nbsp;<a
href="$bbsdir/thread-$topic[tid]-1-1.html" style="color: #363;"
class="var">$topic[subject]...</a></h1><span class="tip_i"> <hr
size="1" color="#EEE" style="color: #EEE; background-color: #EEE;
height: 1px; border: 0;" />... <a
href="$bbsdir/redirect-$topic[tid].html#lastpost"
class="t">$topic[replies] ƪ�ظ�</a> | <a
href="$bbsdir/thread-$topic[tid]-1-1.html" class="t">��Ҫ��������</a> |
��������� <a href="$bbsdir/go/$topic[board_name]"
class="t">$topic[name]</a> | <a href="$bbsdir/u-$topic[uid].html" class="t">$topic[author]</a> �ĸ�������</span></span>
-</div>
<!--{/if}-->
<!--{/loop}-->
-
+</div>
+<!--{/if}-->
<!--{if empty($gid)}-->
<!--{if !empty($newpmexists) || $announcepm}-->
<div class="maintable" align="left">

Reply all
Reply to author
Forward
0 new messages