%TOC% %STARTINCLUDE%
# TWiki Upgrade Guide
_Upgrade from TWiki 01-Dec-2000 or TWiki 01-Sep-2001 to TWiki 01-Dec-2001 (previous to new full release)_
## Overview
This guide describes how to upgrade either from TWiki 01-Dec-2000 or TWiki 01-Sep-2001 to TWiki 01-Dec-2001.
* The latest version of TWiki (01-Dec-2001) is a small incremental release over the 01-Sep-2001 version.
* The 01-Sep-2001 version involves several major new features and numerous enhancements to the last full version (01-Dec-2000). The file system set-up is almost identical, but much of the underlying data structure and processes is new. With all the changes, the upgrade procedure is straightforward, and your existing page data is imported directly.
## Upgrade Requirements
* To upgrade from a 01-Dec-2000 or 01-Sep-2001 standard installation to the latest 01-Dec-2001 TWiki Production Release, follow the instructions below.
* **_NOTE:_** To upgrade from a **pre-01-Dec-2000** TWiki, start with %TWIKIWEB%.TWikiUpgradeTo01Dec2000.
* To upgrade from a Beta of the new release, or if you made custom modifications to the application, read through all new reference documentation, then use the procedure below as a guideline.
## Major Changes from TWiki 01-Sep-2001
The latest 01-Dec-2001 release includes the following new features and enhancements compared to the 01-Sep-2001 release:
* **[[TWIKIWEBFormattedSearch]]** - New `format=""` parameter in %SEARCH\{\}% variable for database like reporting.
* Various bug fixes
## Major Changes from TWiki 01-Dec-2000
The 01-Sep-2001 release includes the following new features and enhancements compared to the 01-Dec-2000 release:
* **[[TWIKIWEBTWikiPlugins]]** - Easily install program enhancements using external plug-in modules. Developers can create plug-ins in Perl, with the [[TWIKIWEBTWikiPlugins]].
* %TWIKIWEB%.InterwikiPlugin (preinstalled) - Link to external sites with text aliases, `SiteAlias:Page`; rules are defined in [[InterWikis]]. (Get more Plugins from the TWiki:Plugins web.)
* **[[TWIKIWEBTWikiTemplates]]** - New, more flexible template system.
* **[[TWIKIWEBTWikiSkins]]** - Overwrite template headers and footers; page content is unaffected.
* **[[TWIKIWEBTWikiMetaData]]** - New data format
* **[[TWIKIWEBTWikiForms]]** - Create multiple input forms per web; data is rendered in HTML tables.
* **[[TWIKIWEBManagingTopics]]** - Individual topics can be renamed, moved and deleted through the browser. Deleted topics are stored in a common Trash web.
* **[[TWIKIWEBTWikiUserAuthentication]]** - Change and reset passwords using forms.
* **[[TWIKIWEBTWikiVariables]]** - %TOC% variable generates a hierarchical table of contents from topic headings: <h1>...<h6>.
* **[[TWIKIWEBTWikiVariables]]** - Text formatting rules to generate automatic links from any combination of words and spaces.
* **[[TWIKIWEBFileAttachment]]** - Changes made to files attached to topics are now saved under revision control (RCS).
* **[[TWIKIWEBTWikiAccessControl]]** - Lets you to make the members of one user group - by default, TWikiAdminGroup - into TWiki superusers, with the ability to overwrite locked topics from the browser interface. (This gets around the problem of topic lockouts, caused by typos in access privilege definitions.)
* **HierarchicalNavigation** uses new [[TWIKIWEBTWikiMetaData]] variables to link hierarchically.
* **Convert to XHTML** - Pages are rendered for display in XHTML 1.0, as far as possible without breaking HTML 3.2 compliance.
## TWiki Directory Structure and File Names
The TWiki directory structure remains the same, with one exception, the TWiki configuration file and Perl modules have been moved from the `twiki/bin` directory into it's own `twiki/lib` directory tree. The following files have been renamed and moved:
From TWiki 01-Dec-2000:
To TWiki 01-Dec-2001:
twiki/bin/wikicfg.pm
twiki/lib/TWiki.cfg
twiki/bin/wiki.pm
twiki/lib/TWiki.pm
twiki/bin/wikiaccess.pm
twiki/lib/TWiki/Access.pm
twiki/bin/wikiprefs.pm
twiki/lib/TWiki/Prefs.pm
twiki/bin/wikisearch.pm
twiki/lib/TWiki/Search.pm
twiki/bin/wikistore.pm
twiki/lib/TWiki/Store.pm
A new `twiki/lib/TWiki/Plugins` directory contains the new Plugin modules.
## Standard Upgrade Procedure from 01-Sep-2001 to 01-Dec-2001 Release
This incremental update can be performed easily.
The following steps describe the upgrade assuming that `$TWIKIROOT` is the root of your current 01-Sep-2001 release.
1. Back up and prepare:
* Back up all existing TWiki directories `$TWIKIROOT/bin`, `$TWIKIROOT/pub`, `$TWIKIROOT/data`, `$TWIKIROOT/templates`.
* Create a temporary directory and unpack the ZIP file there.
2. Update files in TWiki root:
* Overwrite all `*.html` and `*.txt` files in `$TWIKIROOT` with the new ones.
3. Update template files:
* Overwrite all template files in `$TWIKIROOT/templates` with the new ones.
4. Update script files:
* Overwrite all script files in `$TWIKIROOT/bin` with the new ones.
5. Update library files:
* Overwrite the `TWiki.pm` library in `$TWIKIROOT/lib` with the new one.
* Overwrite all `*.pm` library files in `$TWIKIROOT/lib/TWiki` and `$TWIKIROOT/lib/TWiki/Plugins` with the new ones.
6. Update data/TWiki files: (in case you want the updated docs)
* Using your browser, merge the new TWiki.TWikiRegistration topic (or TWiki.TWikiRegistrationPub in case you used that one) into your existing TWiki.TWikiRegistration topic.
* In the temporary `twiki/data/TWiki` directory where you unzipped the installation package:
* Remove the files you do **not** want to upgrade: `TWikiPreferences.*`, `TWikiWebsTable.*`, `WebNotify.*`, `WebPreferences.*`, `WebStatistics.*` and all `WebTopic*` files.
* In case the cgi-scripts are not running as user `nobody`: The `*,v` RCS repository files delivered with the installation package are locked by user nobody and need to be changed the user of your cgi-scripts, i.e. `www-data`. A simple way to switch the locker of the RCS files is to use sed: `for f in *,v; do sed 's/nobody\:/www-data\:/' $f > x; mv x $f; done`
* Move all remaining `*.txt` and `*.txt,v` files from the temporary `data/TWiki` directory to your `$TWIKIROOT/data/TWiki` directory.
7. Update pub/TWiki files:
* Move the new `pub/TWiki/TWikiDocGraphics` directory into your `$TWIKIROOT/pub/TWiki` directory.
## Standard Upgrade Procedure from 01-Dec-2000 to 01-Dec-2001 Release
The idea is to have the new and old installation work in parallel so that you can test the new installation before switching over. That way you can make the switch on your live TWiki installation within one minute without affecting the users.
Before Switch:
After Switch:
Current 01-Dec-2000:
New 01-Dec-2001:
Obsolete 01-Dec-2000:
New 01-Dec-2001:
twiki/templates/
twiki/templates2/
twiki/templates1/
twiki/templates/
twiki/bin/
twiki/bin/2/
(overwritten)
twiki/bin/
(N/A)
twiki/bin/lib/
(N/A)
twiki/lib/
twiki/data/TWiki
twiki/data/TWiki2
twiki/data/TWiki1
twiki/data/TWiki
(other directories do not change)
Alternatively you could move the existing installation away, install the 01-Dec-2001 release into it's place and move your webs and pub files back.
Follow this step-by-step guide to upgrade from the 01-Dec-2000 TWiki to the 01-Dec-2001 release, importing your original page data and related files:
### Pre-Upgrade Preparation
Two major areas of TWiki functionality - [[TWikiTemplates]] and [[TWikiForms]] (input forms associated with a topic)- are entirely different in the new TWiki. If you've customized your templates or use Category Tables, read those sections _before_ starting your upgrade.
The following steps describe the upgrade on Unix. Windows setup is very similar. It's assumed that `$TWIKIROOT` is the root of your current 01-Dec-2000 release, ex: `export TWIKIROOT=/some/dir/`
### Step 1: Backup & Unpack
1. Back up all existing TWiki directories `twiki/bin`, `twiki/pub`, `twiki/data`, `twiki/templates`.
2. Create a temporary directory and unpack the ZIP file there: `mkdir -p ~/tmp/` `cp -p ~/downloads/TWiki20011201.zip ~/tmp/` `cd ~/tmp/` `unzip ~/tmp/TWiki20011201.zip`
### Step 2: Upgrade TWiki document files
1. Move the document files to your TWiki root ( `twiki` ): `mv ~/tmp/TWiki*.html $TWIKIROOT` `mv ~/tmp/index.html $TWIKIROOT` `mv ~/tmp/readme.txt $TWIKIROOT` `mv ~/tmp/license.txt $TWIKIROOT`
### Step 3: Install new template files
1. Move & rename the template directory to a temporary `twiki/templates2` directory, ex: `mv ~/tmp/templates $TWIKIROOT/templates2`
2. Pay attention to the file and directory permissions (security issue). Set file permissions, ex: `chmod 644 *.cgi`
### Step 4: Install new data and pub files
1. Move the TWiki web to a temporary TWiki2 `twiki/data/TWiki2` directory. Do the same to files attached to this web, ex: `mv ~/tmp/data/TWiki $TWIKIROOT/data/TWiki2` `mv ~/tmp/pub/TWiki $TWIKIROOT/pub/TWiki2`
2. Move & rename the Know web to a temporary `twiki/data/Know2` directory, ex: `mv ~/tmp/data/Know $TWIKIROOT/data/Know2` `mv ~/tmp/pub/Know $TWIKIROOT/pub/Know2`
3. Move the \_default and Trash web, ex: `mv ~/tmp/data/_default $TWIKIROOT/data` `mv ~/tmp/data/Trash $TWIKIROOT/data`
4. Move the MIME types file, ex: `mv ~/tmp/data/mime.types $TWIKIROOT/data`
5. Move the TWiki logo files, ex: `mv ~/tmp/pub/*.gif $TWIKIROOT/pub`
6. Pay attention to the file permissions of the `TWiki2` and `Know2` directories and its files. The files must be writable by the cgi-scripts (usually user `nobody`).
7. In case the cgi-scripts are not running as user `nobody`: The `*,v` RCS repository files delivered with the installation package are locked by user nobody and need to be changed the user of your cgi-scripts, i.e. `www-data`. A simple way to switch the locker of the RCS files is to use sed: `for f in *,v; do sed 's/nobody\:/www-data\:/' $f > x; mv x $f; done`
### Step 5: Install new CGI scripts
1. Move & rename the CGI script directory to a temporary `twiki/bin/2` directory, ex: `mv ~/tmp/bin $TWIKIROOT/bin/2`
2. If necessary, change the script names to include the required extension, ex: `.cgi`
3. Copy any additional scripts you might have from the 01-Dec-2000 release, ex: `cp -p $TWIKIROOT/bin/somescript $TWIKIROOT/bin/2`
4. In case you use basic authentication, rename `.htaccess.txt` to `.htaccess` and customize it, ex: `cd $TWIKIROOT/bin/2` `mv .htaccess.txt .htaccess` `diff ../.htaccess .` and merge the content
5. Pay attention to the file and directory permissions (security issue). Set permissions, ex: `chmod 755 *.cgi`
### Step 6: Install new Perl library files
1. Move the lib directory to a temporary `twiki/bin/lib` directory, ex: `mv ~/tmp/lib $TWIKIROOT/bin`
2. Pay attention to the file and directory permissions (security issue). Set permissions, ex: `chmod 644 *.pm`
### Step 7: Set configurations and test installation
1. Merge the content of the old `twiki/bin/wikicfg.pm` into the new `twiki/lib/TWiki.cfg` configuration file. Use the `diff` command to find out the differences, ex: `cd $TWIKIROOT/bin/lib` `diff ../wikicfg.pm TWiki.cfg`
2. Make sure to set the correct temporary location of templates and scripts, ex: `$scriptUrlPath = "/twiki/bin/2";` `$templateDir = "/home/httpd/twiki/templates2";`
3. Do **not** merge the functions `extendHandleCommonTags`, `extendGetRenderedVersionOutsidePRE`, `extendGetRenderedVersionInsidePRE` from the old `twiki/bin/wikicfg.pm`. This is now handled by the Default plugin `twiki/lib/TWiki/Plugins/Default.pm`
4. Test your new TWiki installation to see if you can view topics. Point your browser to the old installation and fix the URL to see the new installation, ex:
* Old URL: `http://localhost/cgi-bin/view`
* New URL: `http://localhost/cgi-bin/2/view`
### Step 8: Update topics
You can do the following changes using your old TWiki 01-Dec-2000 or new TWiki 01-Dec-2001 installation. Pointing your browser to the old installation for edit-copy-edit-paste operations is recommended, so that users don't get surprised by meta data content showing up in topics.
1. Remember that you now have two TWiki webs:
* The original `TWiki` web.
* The new `TWiki2` web, which gets renamed to `TWiki` when you switch over the installation.
2. In case you customized `TWiki.TWikiRegistration`, merge your changes back into `TWiki2.TWikiRegistration`.
3. Copy `TWiki.TWikiWebsTable` to `TWiki2.TWikiWebsTable`.
* Do the same for any other topics you might have created in the `TWiki` web.
4. In `TWiki2.TWikiPreferences`, merge the old `TWiki.TWikiPreferences` settings and customize it.
* Add your webs to WIKIWEBLIST
* Set the WIKIWEBMASTER
* Set the SMTPMAILHOST
5. In `WebPreferences` of all webs, add or change the following web preferences: (see `TWiki.WebPreferences`)
* Add a NOSEARCHALL in case you want to exclude the web from a `web="all"` search: `* Set NOSEARCHALL = on`
* In WEBTOPICLIST, remove the %WEB% . \{\} decoration from the list (it is now in the templates), ex: `* Set WEBTOPICLIST = Home` ` | Changes` ` | Index` ` | Search` ` | Go `
* Add a these new preferences: `* Set DENYWEBVIEW =` `* Set ALLOWWEBVIEW =` `* Set DENYWEBRENAME =` `* Set ALLOWWEBRENAME =`
* Set the FINALPREFERENCES: `* Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME`
6. Optional: In `WebSearch` of all webs, replace content with this one line: %INCLUDE\{"%TWIKIWEB%.WebSearch"\}%
7. Optional: In `WebChanges` of all webs, replace content with this one line: %INCLUDE\{"%TWIKIWEB%.WebChanges"\}%
### Step 9: Customize template files
**_NOTE:_** Skip this step if you did not customize your template files.
1. Remember that you have now two template directories:
* The original `twiki/templates`.
* The new `twiki/templates2`, which gets renamed to `twiki/templates` when you switch over the installation.
2. Customized templates and skins need to be upgraded to the new [[TWikiTemplates]]. This isn't difficult, but you have be familiar with the new template set-up before starting the conversion. The safest way is to use the new templates as a base and to merge your changes back. Changes in new templates:
* Templates are now rendered by TWiki. You can use all [[TextFormattingRules]], but you have to escape unwanted ones. Also, remove empty lines unless you want a `=` tag added.
* Added [[TWikiMetaData]] rendering.
3. Form Templates replace the TWikiCategoryTables:
* Create a replacement `WebForm` topic based on `twikicatitems.tmpl` in each web that uses a Category Table. See details in [[TWikiForms]] and compare with the settings in the Know2.WebPreferences topic. **_NOTE:_** Do not remove the `twikicatitems.tmpl` file, it is still used for topics that are of the old format.
* Searches need to be adjusted to deal with format change. It is possible to define a regular expression search that can deal at the same time with topics in the old format and new format.
* **_Example:_** List all topics in the Know web that have a [[Know/TopicClassification]] of [[Know/PublicFAQ]]: %SEARCH\{ "[T]opicClassification.\*?(td..td|value\\=).\*?[P]ublicFAQ" casesensitive="on" regex="on" nosearch="on" web="Know"\}% (The `[T]` and `[P]` is done so that search does not find the topic where this search string is located in!)
* **_Example:_** Create a link that lists all topics in the Know web with a [[Know/TopicClassification]] of [[Know/PublicFAQ]]: [[%SCRIPTURL%/search%SCRIPTSUFFIX%/Know/?scope=text &search=%5BT%5DopicClassification.\*%3F%28td..td%7C value%5C%3D%29.\*%3F%5BP%5DublicFAQ®ex=on]\[All Public FAQ]] [[SCRIPTURLsearchSCRIPTSUFFIXKnowscopetextsearch5BT5DopicClassification3F28tdtd7Cvalue5C3D293F5BP5DublicFAQregexon]]
4. For each web that has a custom **notedited.tmpl** template, create an equivalent [[WebTopicEditTemplate]] to conform with the new [[TWIKIWEBTWikiTemplates]]. The new format replaces the `notedited.tmpl`, `notext.tmpl` and `notwiki.tmpl` templates.
### Step 10: Switch over to new installation
In this step, you move the working 01-Dec-2001 installation to the old 01-Dec-2000 installation, so that users don't have to change the URL.
1. Test your new 01-Dec-2001 installation under `twiki/bin/2/view` to make sure everything works as expected.
* **_NOTE:_** Don't worry about the Plugins, they'll work after the switch.
2. Edit `$TWIKIROOT/bin/2/TWiki.cfg` and remove the `/2` from `$scriptUrlPath` and `$templateDir`, ex: `$scriptUrlPath = "/twiki/bin";` `$templateDir = "/home/httpd/twiki/templates";`
3. Rename the `TWiki2` web to `TWiki`, including attachments, ex: `cd $TWIKIROOT/data` `mv TWiki TWiki1` `mv TWiki2 TWiki` `cd $TWIKIROOT/pub` `mv TWiki TWiki1` `mv TWiki2 TWiki`
4. Rename the `templates2` directory to `templates`, ex: `cd $TWIKIROOT` `mv templates templates1` `mv templates2 templates`
5. Move the `lib` directory one level up from `$TWIKIROOT/bin/lib` to `$TWIKIROOT/lib`, ex: `cd $TWIKIROOT` `mv bin/lib .`
6. Copy content of `bin/2` to `bin`, ex: `cd $TWIKIROOT/bin` `cp -p bin/2/* .` `cp -p bin/2/.htaccess .`
7. Point your browser to the original URL and make sure the relocated 01-Dec-2001 installation works as expected: check browsing, searching and user registration.
8. Clean up and remove obsolete directories:
* Remove directory `$TWIKIROOT/bin/2`
* Remove directory `$TWIKIROOT/templates1`
* Remove directory `$TWIKIROOT/data/TWiki1`
* Remove directory `$TWIKIROOT/pub/TWiki1`
* Remove temporary directory, ex: `~/tmp`
### Step 11: Test the TWiki Plugins
1. Test the new [[TWikiPlugins]] by checking the Plugins settings in [[TWikiPreferences]].
* The EmptyPlugin, DefaultPlugin, and InterwikiPlugin should be preinstalled. To check the %TWIKIWEB%.InterwikiPlugin, go to its page.
2. If you have customized the functions `extendHandleCommonTags`, `extendGetRenderedVersionOutsidePRE` and `extendGetRenderedVersionInsidePRE` in `twiki/bin/wikicfg.pm`:
* Merge those changes back into `twiki/lib/TWiki/Plugins/Default.pm`
### General Format Changes
* The format of the %GMTIME\{"..."\}% and %SERVERTIME\{"..."\}% variables is now **"$hour:$min"** instead of `"hour:min"`. More in %TWIKIWEB%.TWikiVariables.
* [[TWikiVariables]]: Enhanced table syntax might have unwanted side effect: | \*bold\* | cells, `| center aligned |` and `| right aligned |` cells, span multiple columns using `| empty cells |||`. More in [[TextFormattingRules]].
* Use **Net::SMTP** module instead of `sendmail` if installed.
* Use **<verbatim> ... </verbatim>** tags instead of `
...
` tags where appropriate. More in %TWIKIWEB%.TextFormattingRules.
* New variable **%STARTINCLUDE%** and **%STOPINCLUDE%** variables to control what gets included of a topic. More in %TWIKIWEB%.TWikiVariables.
* [[FileAttachment]] info is now stored as [[TWikiMetaData]].
* Upgrading of imported pagess is done automatically after first edit, on save. "In memory" upgrade is done on topic view.
* Attachments are now under revision control: `$attachAsciiPath` in `TWiki.cfg` defines which file types are stored in ASCII, otherwise, binary format is used. This means that the RCS version used should support binary files.
* Handling for topic-specific templates like `edit.new.tmpl` has been removed and replaced by template topics in the new [[TWikiTemplates]].
* A new file `warning.txt` file can appear in the `data` directory. It may contain diagnostic info identifying problems that need fixing. This file could get fairly large if you have a lot of problems your site - you can delete it at any time.
## Known Issues
* Check TWiki:Codev/KnownIssuesOfTWiki01Dec2001 for known issues of TWiki 01 Dec 2001 (production release)
* Check TWiki:Codev/KnownIssuesOfTWiki01Sep2001 for known issues of TWiki 01 Sep 2001 (production release)
-- [[JohnTalintyre]] - 18 Jul 2001 -- [[MikeMannix]] - 12 Sep 2001 -- [[PeterThoeny]] - 03 Dec 2001 [http://bijibendiannao.81888888.com 笔记本电脑] [http://chengrenyongpin.81888888.com 成人用品] [http://fanyi.81888888.com 翻译] [http://xianhua.81888888.com 鲜花] [http://yimin.81888888.com 移民] [http://fanyigongsi.81888888.com 翻译公司] [http://zufang.81888888.com 租房] [http://youxi.81888888.com 游戏] [http://youxixiazai.81888888.com 游戏下载] [http://moping.81888888.com 摸屏] [http://bizhi.81888888.com 壁纸] [http://fuwuqi.81888888.com 服务器] [http://aizibing.81888888.com 爱滋病] [http://bangongzidonghua.81888888.com 办公自动化] [http://chuguo.81888888.com 出国] [http://duanxin.81888888.com 短信] [http://ganzaoshebei.81888888.com 干燥设备] [http://jiaoyou.81888888.com 交友] [http://liaotian.81888888.com 聊天] [http://menjin.81888888.com 门禁] [http://neiyi.81888888.com 内衣] [http://shengjiangji.81888888.com 升降机] [http://1shipin.81888888.com 视频] [http://xiezhen.81888888.com 写真] [http://yiqiyibiao.81888888.com 仪器仪表] [http://yidongcunchu.81888888.com 移动存储] [http://yinyue.81888888.com 音乐] [http://zikao.81888888.com 自考] [http://suanming.81888888.com 算命] [http://huipu.81888888.com 惠普] [http://nuojiya.81888888.com 诺基亚] [http://tiyucaipiao.81888888.com 体育彩票] [http://wangyezhizuo.81888888.com 网页制作] [http://qianliexian.81888888.com 前列腺] [http://suoni.81888888.com 索尼] [http://chongwu.81888888.com 宠物] [http://dalian.81888888.com 大连 [http://dianli.81888888.com 电力] [http://fulicaipiao.81888888.com 福利彩票] [http://gerenzhuye.81888888.com 个人主页 [http://guanggaogongsi.81888888.com 广告公司] [http://guojimaoyi.81888888.com 国际贸易] [http://kuaiji.81888888.com 会计 [http://jisuanjidengjikaoshi.81888888.com 计算机等级考试] [http://jiaotong.81888888.com 交通] [http://kuandai.81888888.com 宽带] [http://mianfeikongjian.81888888.com 免费空间] [http://nongye.81888888.com 农业] [http://qiyewenhua.81888888.com 企业文化] [http://rencai.81888888.com 人才] [http://rencaiwang.81888888.com 人才网] [http://sheji.81888888.com 设计] [http://shoujibaojia.81888888.com 手机报价] [http://tushu.81888888.com 图书] [http://wangluo.81888888.com 网络] [http://wangluoyouxi.81888888.com 网络游戏] [http://wuyeguanli.81888888.com 物业管理] [http://ximenzi.81888888.com 西门子] [http://xiaolingtong.81888888.com 小灵通] [http://youerjiaoyu.81888888.com 幼儿教育 [http://youeryuan.81888888.com 幼儿园] [http://yule.81888888.com 娱乐] [http://zhucekuaijishi.81888888.com 注册会计师] [http://caiwu.81888888.com 财务] [http://caiwuguanli.81888888.com 财务管理] [http://chuguoliuxue.81888888.com 出国留学] [http://diannaopeixun.81888888.com 电脑培训] [http://duomeiti.81888888.com 多媒体] [http://fanyiruanjian.81888888.com 翻译软件] [http://feijipiao.81888888.com 飞机票] [http://gouwu.81888888.com 购物] [http://guanli.81888888.com 管理] [http://hunshasheying.81888888.com 婚纱摄影] [http://jiguang.81888888.com 激光] [http://jisuanjipeixun.81888888.com 计算机培训] [http://kongjian.81888888.com 空间] [http://lvshi.81888888.com 律师] [http://lvshishiwusuo.81888888.com 律师事务所] [http://maoyi.81888888.com 贸易] [http://meirongmeifa.81888888.com 美容美发] [http://moxing.81888888.com 模型] [http://nami.81888888.com 纳米] [http://shangbiao.81888888.com 商标] [http://shujuku.81888888.com 数据库] [http://tongxun.81888888.com 通讯] [http://wangluoanquan.81888888.com 网络安全] [http://xiangmuguanli.81888888.com 项目管理] [http://xie.81888888.com 鞋] [http://yasi.81888888.com 雅思] [http://yingyupeixun.81888888.com 英语培训] [http://yuanlin.81888888.com 园林] [http://zhaobiao.81888888.com 招标] [http://zhi.81888888.com 纸] [http://zhongyi.81888888.com 中医]