├── .gitignore
├── system
├── .htaccess
├── fonts
│ ├── texb.ttf
│ └── index.html
├── index.html
├── core
│ ├── index.html
│ ├── Model.php
│ ├── Controller.php
│ ├── Benchmark.php
│ ├── Utf8.php
│ └── Lang.php
├── database
│ ├── index.html
│ ├── drivers
│ │ ├── index.html
│ │ ├── pdo
│ │ │ ├── index.html
│ │ │ ├── pdo_utility.php
│ │ │ └── pdo_result.php
│ │ ├── cubrid
│ │ │ ├── index.html
│ │ │ └── cubrid_utility.php
│ │ ├── mssql
│ │ │ ├── index.html
│ │ │ ├── mssql_utility.php
│ │ │ └── mssql_result.php
│ │ ├── mysql
│ │ │ ├── index.html
│ │ │ └── mysql_result.php
│ │ ├── mysqli
│ │ │ ├── index.html
│ │ │ ├── mysqli_utility.php
│ │ │ └── mysqli_result.php
│ │ ├── oci8
│ │ │ ├── index.html
│ │ │ └── oci8_utility.php
│ │ ├── odbc
│ │ │ ├── index.html
│ │ │ └── odbc_utility.php
│ │ ├── postgre
│ │ │ ├── index.html
│ │ │ ├── postgre_utility.php
│ │ │ └── postgre_result.php
│ │ ├── sqlite
│ │ │ ├── index.html
│ │ │ ├── sqlite_utility.php
│ │ │ └── sqlite_result.php
│ │ └── sqlsrv
│ │ │ ├── index.html
│ │ │ ├── sqlsrv_utility.php
│ │ │ └── sqlsrv_result.php
│ ├── DB.php
│ └── DB_cache.php
├── helpers
│ ├── index.html
│ ├── language_helper.php
│ ├── email_helper.php
│ ├── path_helper.php
│ ├── xml_helper.php
│ ├── number_helper.php
│ ├── directory_helper.php
│ ├── typography_helper.php
│ ├── cookie_helper.php
│ ├── array_helper.php
│ ├── download_helper.php
│ └── security_helper.php
├── language
│ ├── index.html
│ └── english
│ │ ├── index.html
│ │ ├── number_lang.php
│ │ ├── migration_lang.php
│ │ ├── unit_test_lang.php
│ │ ├── profiler_lang.php
│ │ ├── ftp_lang.php
│ │ ├── calendar_lang.php
│ │ ├── upload_lang.php
│ │ ├── email_lang.php
│ │ ├── form_validation_lang.php
│ │ ├── imglib_lang.php
│ │ ├── db_lang.php
│ │ └── date_lang.php
└── libraries
│ ├── index.html
│ ├── Log.php
│ ├── Cache
│ └── drivers
│ │ ├── Cache_dummy.php
│ │ ├── Cache_apc.php
│ │ └── Cache_file.php
│ └── Parser.php
├── application
├── .htaccess
├── cache
│ ├── .htaccess
│ └── index.html
├── index.html
├── core
│ └── index.html
├── hooks
│ └── index.html
├── logs
│ └── index.html
├── views
│ ├── index.html
│ ├── show.php
│ └── landing.php
├── config
│ ├── index.html
│ ├── hooks.php
│ ├── profiler.php
│ ├── doctypes.php
│ ├── migration.php
│ ├── constants.php
│ ├── foreign_chars.php
│ ├── routes.php
│ ├── database.php
│ ├── smileys.php
│ └── autoload.php
├── errors
│ ├── index.html
│ ├── error_php.php
│ ├── error_db.php
│ ├── error_general.php
│ └── error_404.php
├── helpers
│ └── index.html
├── libraries
│ └── index.html
├── models
│ └── index.html
├── controllers
│ ├── index.html
│ ├── docs.php
│ ├── services.php
│ └── landing.php
├── third_party
│ └── index.html
└── language
│ └── english
│ └── index.html
├── conf
└── rc.local
├── install
├── screencast-1.png
├── screencast-2.png
└── db.sql
├── public
├── FlexPaperViewer.swf
├── js
│ ├── expressInstall.swf
│ ├── jquery-ui
│ │ └── ui-lightness
│ │ │ └── images
│ │ │ ├── ui-icons_222222_256x240.png
│ │ │ ├── ui-icons_228ef1_256x240.png
│ │ │ ├── ui-icons_ef8c08_256x240.png
│ │ │ ├── ui-icons_ffd27a_256x240.png
│ │ │ ├── ui-icons_ffffff_256x240.png
│ │ │ ├── ui-bg_flat_10_000000_40x100.png
│ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png
│ │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png
│ │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png
│ │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png
│ │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png
│ │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png
│ │ │ └── ui-bg_highlight-soft_75_ffe45c_1x100.png
│ └── flexpaper_handlers.js
├── .htaccess
└── css
│ └── style.css
├── LICENSE
├── scripts
├── services
│ ├── office2pdf.py
│ └── pdf2swf.py
└── httpsqs
│ └── httpsqs_client.py
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/system/.htaccess:
--------------------------------------------------------------------------------
1 | Deny from all
--------------------------------------------------------------------------------
/application/.htaccess:
--------------------------------------------------------------------------------
1 | Deny from all
--------------------------------------------------------------------------------
/application/cache/.htaccess:
--------------------------------------------------------------------------------
1 | deny from all
--------------------------------------------------------------------------------
/conf/rc.local:
--------------------------------------------------------------------------------
1 | /data/lampstack/ctlscript.sh start
2 | supervisord -c /data/supervisord.conf
--------------------------------------------------------------------------------
/system/fonts/texb.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/system/fonts/texb.ttf
--------------------------------------------------------------------------------
/install/screencast-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/install/screencast-1.png
--------------------------------------------------------------------------------
/install/screencast-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/install/screencast-2.png
--------------------------------------------------------------------------------
/public/FlexPaperViewer.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/FlexPaperViewer.swf
--------------------------------------------------------------------------------
/public/js/expressInstall.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/expressInstall.swf
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 | RewriteEngine on
2 | RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|attachments|FlexPaperViewer\.swf)
3 | RewriteRule ^(.*)$ /index.php/$1 [L]
--------------------------------------------------------------------------------
/system/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/core/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/fonts/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/cache/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/core/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/hooks/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/logs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/helpers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/language/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/libraries/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/config/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/errors/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/helpers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/libraries/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/models/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/controllers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/third_party/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-icons_228ef1_256x240.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-icons_ef8c08_256x240.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-icons_ffd27a_256x240.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/system/database/drivers/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/language/english/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/application/language/english/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/system/database/drivers/cubrid/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/mssql/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/mysql/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/mysqli/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/oci8/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/odbc/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/postgre/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlite/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/system/database/drivers/sqlsrv/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | 403 Forbidden
4 |
5 |
6 |
7 | Directory access is forbidden.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
--------------------------------------------------------------------------------
/public/js/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yoozi/swf-docs-generator/HEAD/public/js/jquery-ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
--------------------------------------------------------------------------------
/system/language/english/number_lang.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | A PHP Error was encountered
4 |
5 | Severity:
6 | Message:
7 | Filename:
8 | Line Number:
9 |
10 |
--------------------------------------------------------------------------------
/application/config/hooks.php:
--------------------------------------------------------------------------------
1 | db->get('docs')->result();
8 | echo json_encode($docs);
9 | }
10 |
11 | private function get($id = 0)
12 | {
13 | echo json_encode($this->db->where('id', $id)->get('docs')->row());
14 | }
15 |
16 | public function _remap($method, $params = array())
17 | {
18 | if (preg_match('/^\d+$/', $method))
19 | {
20 | $this->get($method);
21 | }
22 | else
23 | {
24 | $this->index();
25 | }
26 | }
27 |
28 | }
29 |
30 | /* End of file docs.php */
31 | /* Location: ./application/controllers/docs.php */
--------------------------------------------------------------------------------
/system/language/english/migration_lang.php:
--------------------------------------------------------------------------------
1 | load->library('xmlrpc');
8 | $this->xmlrpc->server('http://localhost:9001/RPC2', 9001);
9 | $this->xmlrpc->method('supervisor.getAllProcessInfo');
10 | $this->xmlrpc->request(array());
11 | if ( ! $this->xmlrpc->send_request())
12 | {
13 | echo json_encode(array(
14 | 'id' => '',
15 | 'soffice' => 'Unkown',
16 | 'httpsqs' => 'Unkown',
17 | 'office2pdf' => 'Unkown',
18 | 'pdf2swf' => 'Unkown'
19 | ));
20 | }
21 | else
22 | {
23 | $services = array('id' => '');
24 | $result = $this->xmlrpc->display_response();
25 | foreach ($result as $service)
26 | {
27 | $services[$service['name']] = $service['statename'];
28 | }
29 | echo json_encode($services);
30 | }
31 | }
32 |
33 | public function _remap($method, $params = array())
34 | {
35 | $this->index();
36 | }
37 |
38 | }
39 |
40 | /* End of file services.php */
41 | /* Location: ./application/controllers/services.php */
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright (c) 2012 Chekun and Yoozi Inc., http://www.yoozi.cn
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the “Software”), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
--------------------------------------------------------------------------------
/application/config/doctypes.php:
--------------------------------------------------------------------------------
1 | '',
5 | 'xhtml1-strict' => '',
6 | 'xhtml1-trans' => '',
7 | 'xhtml1-frame' => '',
8 | 'html5' => '',
9 | 'html4-strict' => '',
10 | 'html4-trans' => '',
11 | 'html4-frame' => ''
12 | );
13 |
14 | /* End of file doctypes.php */
15 | /* Location: ./application/config/doctypes.php */
--------------------------------------------------------------------------------
/system/language/english/profiler_lang.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Database Error
5 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/application/errors/error_general.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Error
5 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/system/core/Model.php:
--------------------------------------------------------------------------------
1 | $key;
52 | }
53 | }
54 | // END Model Class
55 |
56 | /* End of file Model.php */
57 | /* Location: ./system/core/Model.php */
--------------------------------------------------------------------------------
/application/errors/error_404.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 404 Page Not Found
5 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/application/config/migration.php:
--------------------------------------------------------------------------------
1 | migration->latest() this is the version that schema will
21 | | be upgraded / downgraded to.
22 | |
23 | */
24 | $config['migration_version'] = 0;
25 |
26 |
27 | /*
28 | |--------------------------------------------------------------------------
29 | | Migrations Path
30 | |--------------------------------------------------------------------------
31 | |
32 | | Path to your migrations folder.
33 | | Typically, it will be within your application path.
34 | | Also, writing permission is required within the migrations path.
35 | |
36 | */
37 | $config['migration_path'] = APPPATH . 'migrations/';
38 |
39 |
40 | /* End of file migration.php */
41 | /* Location: ./application/config/migration.php */
--------------------------------------------------------------------------------
/install/db.sql:
--------------------------------------------------------------------------------
1 | -- --------------------------------------------------------
2 | -- Host: 127.0.0.1
3 | -- Server version: 5.5.27 - MySQL Community Server (GPL)
4 | -- Server OS: Win32
5 | -- HeidiSQL version: 7.0.0.4053
6 | -- Date/time: 2012-11-01 15:12:43
7 | -- --------------------------------------------------------
8 |
9 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
10 | /*!40101 SET NAMES utf8 */;
11 | /*!40014 SET FOREIGN_KEY_CHECKS=0 */;
12 |
13 | -- Dumping database structure for wenku-demo
14 | DROP DATABASE IF EXISTS `wenku-demo`;
15 | CREATE DATABASE IF NOT EXISTS `wenku-demo` /*!40100 DEFAULT CHARACTER SET utf8 */;
16 | USE `wenku-demo`;
17 |
18 |
19 | -- Dumping structure for table wenku-demo.docs
20 | DROP TABLE IF EXISTS `docs`;
21 | CREATE TABLE IF NOT EXISTS `docs` (
22 | `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
23 | `name` varchar(200) DEFAULT NULL,
24 | `type` varchar(5) DEFAULT NULL,
25 | `size` float unsigned DEFAULT NULL,
26 | `origin_path` varchar(200) DEFAULT NULL,
27 | `path` varchar(200) DEFAULT NULL,
28 | `status` enum('pending','success','fail') DEFAULT 'pending',
29 | PRIMARY KEY (`id`)
30 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
31 |
32 | -- Dumping data for table wenku-demo.docs: ~0 rows (approximately)
33 | DELETE FROM `docs`;
34 | /*!40000 ALTER TABLE `docs` DISABLE KEYS */;
35 | /*!40000 ALTER TABLE `docs` ENABLE KEYS */;
36 | /*!40014 SET FOREIGN_KEY_CHECKS=1 */;
37 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
38 |
--------------------------------------------------------------------------------
/system/helpers/language_helper.php:
--------------------------------------------------------------------------------
1 | lang->line($line);
46 |
47 | if ($id != '')
48 | {
49 | $line = '";
50 | }
51 |
52 | return $line;
53 | }
54 | }
55 |
56 | // ------------------------------------------------------------------------
57 | /* End of file language_helper.php */
58 | /* Location: ./system/helpers/language_helper.php */
--------------------------------------------------------------------------------
/system/language/english/calendar_lang.php:
--------------------------------------------------------------------------------
1 | $class)
45 | {
46 | $this->$var =& load_class($class);
47 | }
48 |
49 | $this->load =& load_class('Loader', 'core');
50 |
51 | $this->load->initialize();
52 |
53 | log_message('debug', "Controller Class Initialized");
54 | }
55 |
56 | public static function &get_instance()
57 | {
58 | return self::$instance;
59 | }
60 | }
61 | // END Controller class
62 |
63 | /* End of file Controller.php */
64 | /* Location: ./system/core/Controller.php */
--------------------------------------------------------------------------------
/application/config/foreign_chars.php:
--------------------------------------------------------------------------------
1 | 'ae',
12 | '/ö|œ/' => 'oe',
13 | '/ü/' => 'ue',
14 | '/Ä/' => 'Ae',
15 | '/Ü/' => 'Ue',
16 | '/Ö/' => 'Oe',
17 | '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
18 | '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
19 | '/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
20 | '/ç|ć|ĉ|ċ|č/' => 'c',
21 | '/Ð|Ď|Đ/' => 'D',
22 | '/ð|ď|đ/' => 'd',
23 | '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
24 | '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
25 | '/Ĝ|Ğ|Ġ|Ģ/' => 'G',
26 | '/ĝ|ğ|ġ|ģ/' => 'g',
27 | '/Ĥ|Ħ/' => 'H',
28 | '/ĥ|ħ/' => 'h',
29 | '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
30 | '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
31 | '/Ĵ/' => 'J',
32 | '/ĵ/' => 'j',
33 | '/Ķ/' => 'K',
34 | '/ķ/' => 'k',
35 | '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
36 | '/ĺ|ļ|ľ|ŀ|ł/' => 'l',
37 | '/Ñ|Ń|Ņ|Ň/' => 'N',
38 | '/ñ|ń|ņ|ň|ʼn/' => 'n',
39 | '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
40 | '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
41 | '/Ŕ|Ŗ|Ř/' => 'R',
42 | '/ŕ|ŗ|ř/' => 'r',
43 | '/Ś|Ŝ|Ş|Š/' => 'S',
44 | '/ś|ŝ|ş|š|ſ/' => 's',
45 | '/Ţ|Ť|Ŧ/' => 'T',
46 | '/ţ|ť|ŧ/' => 't',
47 | '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
48 | '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
49 | '/Ý|Ÿ|Ŷ/' => 'Y',
50 | '/ý|ÿ|ŷ/' => 'y',
51 | '/Ŵ/' => 'W',
52 | '/ŵ/' => 'w',
53 | '/Ź|Ż|Ž/' => 'Z',
54 | '/ź|ż|ž/' => 'z',
55 | '/Æ|Ǽ/' => 'AE',
56 | '/ß/'=> 'ss',
57 | '/IJ/' => 'IJ',
58 | '/ij/' => 'ij',
59 | '/Œ/' => 'OE',
60 | '/ƒ/' => 'f'
61 | );
62 |
63 | /* End of file foreign_chars.php */
64 | /* Location: ./application/config/foreign_chars.php */
--------------------------------------------------------------------------------
/application/config/routes.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | name; ?> - 文库演示
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 |
27 |
55 |
56 |
--------------------------------------------------------------------------------
/system/helpers/path_helper.php:
--------------------------------------------------------------------------------
1 | ","\"", "'", "-"),
53 | array("&", "<", ">", """, "'", "-"),
54 | $str);
55 |
56 | // Decode the temp markers back to entities
57 | $str = preg_replace("/$temp(\d+);/","\\1;",$str);
58 |
59 | if ($protect_all === TRUE)
60 | {
61 | $str = preg_replace("/$temp(\w+);/","&\\1;", $str);
62 | }
63 |
64 | return $str;
65 | }
66 | }
67 |
68 | // ------------------------------------------------------------------------
69 |
70 | /* End of file xml_helper.php */
71 | /* Location: ./system/helpers/xml_helper.php */
--------------------------------------------------------------------------------
/system/language/english/imglib_lang.php:
--------------------------------------------------------------------------------
1 | lang->load('number');
43 |
44 | if ($num >= 1000000000000)
45 | {
46 | $num = round($num / 1099511627776, $precision);
47 | $unit = $CI->lang->line('terabyte_abbr');
48 | }
49 | elseif ($num >= 1000000000)
50 | {
51 | $num = round($num / 1073741824, $precision);
52 | $unit = $CI->lang->line('gigabyte_abbr');
53 | }
54 | elseif ($num >= 1000000)
55 | {
56 | $num = round($num / 1048576, $precision);
57 | $unit = $CI->lang->line('megabyte_abbr');
58 | }
59 | elseif ($num >= 1000)
60 | {
61 | $num = round($num / 1024, $precision);
62 | $unit = $CI->lang->line('kilobyte_abbr');
63 | }
64 | else
65 | {
66 | $unit = $CI->lang->line('bytes');
67 | return number_format($num).' '.$unit;
68 | }
69 |
70 | return number_format($num, $precision).' '.$unit;
71 | }
72 | }
73 |
74 |
75 | /* End of file number_helper.php */
76 | /* Location: ./system/helpers/number_helper.php */
--------------------------------------------------------------------------------
/system/database/drivers/postgre/postgre_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsuported_feature');
83 | }
84 | }
85 |
86 |
87 | /* End of file postgre_utility.php */
88 | /* Location: ./system/database/drivers/postgre/postgre_utility.php */
--------------------------------------------------------------------------------
/system/database/drivers/oci8/oci8_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsuported_feature');
83 | }
84 | }
85 |
86 | /* End of file oci8_utility.php */
87 | /* Location: ./system/database/drivers/oci8/oci8_utility.php */
--------------------------------------------------------------------------------
/system/language/english/db_lang.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsuported_feature');
83 | }
84 |
85 | }
86 |
87 | /* End of file mssql_utility.php */
88 | /* Location: ./system/database/drivers/mssql/mssql_utility.php */
--------------------------------------------------------------------------------
/system/database/drivers/mysqli/mysqli_utility.php:
--------------------------------------------------------------------------------
1 | db->_escape_identifiers($table);
52 | }
53 |
54 | // --------------------------------------------------------------------
55 |
56 | /**
57 | * Repair table query
58 | *
59 | * Generates a platform-specific query so that a table can be repaired
60 | *
61 | * @access private
62 | * @param string the table name
63 | * @return object
64 | */
65 | function _repair_table($table)
66 | {
67 | return "REPAIR TABLE ".$this->db->_escape_identifiers($table);
68 | }
69 |
70 | // --------------------------------------------------------------------
71 |
72 | /**
73 | * MySQLi Export
74 | *
75 | * @access private
76 | * @param array Preferences
77 | * @return mixed
78 | */
79 | function _backup($params = array())
80 | {
81 | // Currently unsupported
82 | return $this->db->display_error('db_unsuported_feature');
83 | }
84 | }
85 |
86 | /* End of file mysqli_utility.php */
87 | /* Location: ./system/database/drivers/mysqli/mysqli_utility.php */
--------------------------------------------------------------------------------
/system/database/drivers/sqlsrv/sqlsrv_utility.php:
--------------------------------------------------------------------------------
1 | db->display_error('db_unsuported_feature');
83 | }
84 |
85 | }
86 |
87 | /* End of file mssql_utility.php */
88 | /* Location: ./system/database/drivers/mssql/mssql_utility.php */
--------------------------------------------------------------------------------
/system/helpers/directory_helper.php:
--------------------------------------------------------------------------------
1 | 0) && @is_dir($source_dir.$file))
61 | {
62 | $filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden);
63 | }
64 | else
65 | {
66 | $filedata[] = $file;
67 | }
68 | }
69 |
70 | closedir($fp);
71 | return $filedata;
72 | }
73 |
74 | return FALSE;
75 | }
76 | }
77 |
78 |
79 | /* End of file directory_helper.php */
80 | /* Location: ./system/helpers/directory_helper.php */
--------------------------------------------------------------------------------
/public/css/style.css:
--------------------------------------------------------------------------------
1 | ::selection{ background-color: #E13300; color: white; }
2 | ::moz-selection{ background-color: #E13300; color: white; }
3 | ::webkit-selection{ background-color: #E13300; color: white; }
4 |
5 | body {
6 | background-color: #fff;
7 | margin: 40px;
8 | font: 13px/20px normal Helvetica, Arial, sans-serif;
9 | color: #4F5155;
10 | }
11 |
12 | a {
13 | color: #003399;
14 | background-color: transparent;
15 | font-weight: normal;
16 | }
17 |
18 | h1 {
19 | color: #444;
20 | background-color: transparent;
21 | border-bottom: 1px solid #D0D0D0;
22 | font-size: 19px;
23 | font-weight: normal;
24 | margin: 0 0 14px 0;
25 | padding: 14px 15px 10px 15px;
26 | }
27 |
28 | h2 {
29 | color: black;
30 | background-color: transparent;
31 | border-bottom: 1px solid #D0D0D0;
32 | font-size: 14px;
33 | font-weight: normal;
34 | margin: 0 0 14px 0;
35 | padding: 14px 15px 10px 15px;
36 | }
37 |
38 | ul.services {
39 | list-style: none;
40 | width:100%;
41 | clear: both;
42 | }
43 |
44 | ul.services li {
45 | width: 24%;
46 | line-height: 20px;
47 | float:left;
48 | }
49 |
50 | ul.services li span {
51 | margin-left:10px;
52 | font-weight: bold;
53 | }
54 |
55 | code {
56 | font-family: Consolas, Monaco, Courier New, Courier, monospace;
57 | font-size: 12px;
58 | background-color: #f9f9f9;
59 | border: 1px solid #D0D0D0;
60 | color: #002166;
61 | display: block;
62 | margin: 14px 0 14px 0;
63 | padding: 12px 10px 12px 10px;
64 | }
65 |
66 | code span {
67 | float: right;
68 | font-weight: bold;
69 | width: 100px;
70 | }
71 | code span.fail {
72 | color: red;
73 | }
74 |
75 | code span.success {
76 | color: green;
77 | }
78 |
79 | #body{
80 | margin: 0 15px 0 15px;
81 | }
82 |
83 | p.footer{
84 | text-align: right;
85 | font-size: 11px;
86 | border-top: 1px solid #D0D0D0;
87 | line-height: 32px;
88 | padding: 0 10px 0 10px;
89 | margin: 20px 0 0 0;
90 | }
91 |
92 | p.msg {
93 | border: 1px solid #FF8080;
94 | background-color: #FFF2F2;
95 | line-height: 18px;
96 | color: #E43D03;
97 | margin: 10px 10px 0px 5px;
98 | padding: 5px;
99 | text-align: left;
100 | }
101 |
102 | #container{
103 | margin: 10px;
104 | border: 1px solid #D0D0D0;
105 | -webkit-box-shadow: 0 0 8px #D0D0D0;
106 | }
--------------------------------------------------------------------------------
/application/controllers/landing.php:
--------------------------------------------------------------------------------
1 | load->view('landing');
8 | }
9 |
10 | public function show($id = 0)
11 | {
12 | $data['doc'] = $this->db->where('id', $id)->get('docs')->row();
13 | if (! $data['doc'] || $data['doc']->status != 'success')
14 | {
15 | $this->session->set_flashdata('msg', '该文档当前不能访问,请稍后重试.');
16 | redirect();
17 | }
18 | $this->load->view('show', $data);
19 | }
20 |
21 | public function upload()
22 | {
23 | $folder = date('Y/m/', time());
24 | $config['upload_path'] = '../data/'.$folder;
25 | //判断此文件夹是否存在,不存在则进行创建
26 | if ( ! is_dir($config['upload_path']))
27 | {
28 | mkdir($config['upload_path'], 0755, TRUE);
29 | }
30 | $config['allowed_types'] = 'doc|docx|xls|xlsx|ppt|pptx|pdf';
31 | $config['max_size'] = '2048';
32 | $config['encrypt_name'] = TRUE;
33 | $this->load->library('upload', $config);
34 | if ( ! $this->upload->do_upload('file'))
35 | {
36 | $this->session->set_flashdata('msg', $this->upload->display_errors('', ''));
37 | redirect();
38 | }
39 | else
40 | {
41 | $uploaded = $this->upload->data();
42 | $doc = array();
43 | $doc['name'] = str_replace($uploaded['file_ext'], '', $uploaded['orig_name']);;
44 | $doc['type'] = str_replace('.', '', $uploaded['file_ext']);
45 | $doc['size'] = $uploaded['file_size'];
46 | $doc['origin_path'] = $folder.$uploaded['file_name'];
47 | $doc['path'] = '';
48 | $doc['status'] = 'pending';
49 | if ($this->db->insert('docs', $doc) AND $doc_id = $this->db->insert_id())
50 | {
51 | $queue_data = json_encode(array(
52 | 'id' => $doc_id,
53 | 'folder' => $folder,
54 | 'raw_name' => str_replace($uploaded['file_ext'], '', $uploaded['file_name']),
55 | 'name' => $uploaded['file_name']
56 | ));
57 | //将文件入转换队列
58 | include FCPATH.'../scripts/httpsqs/httpsqs_client.php';
59 | $httpsqs = new httpsqs('127.0.0.1', 1218);
60 | if ($doc['type'] === 'pdf')
61 | {
62 | $httpsqs->put('pdf2swf', $queue_data);
63 | }
64 | else
65 | {
66 | $httpsqs->put('office2pdf', $queue_data);
67 | }
68 | $this->session->set_flashdata('msg', '文件上传成功.');
69 | redirect();
70 | }
71 | else
72 | {
73 | $this->session->set_flashdata('msg', '上传失败');
74 | redirect();
75 | }
76 | }
77 | }
78 | }
79 |
80 | /* End of file landing.php */
81 | /* Location: ./application/controllers/landing.php */
--------------------------------------------------------------------------------
/system/database/drivers/sqlite/sqlite_utility.php:
--------------------------------------------------------------------------------
1 | db_debug)
41 | {
42 | return $this->db->display_error('db_unsuported_feature');
43 | }
44 | return array();
45 | }
46 |
47 | // --------------------------------------------------------------------
48 |
49 | /**
50 | * Optimize table query
51 | *
52 | * Is optimization even supported in SQLite?
53 | *
54 | * @access private
55 | * @param string the table name
56 | * @return object
57 | */
58 | function _optimize_table($table)
59 | {
60 | return FALSE;
61 | }
62 |
63 | // --------------------------------------------------------------------
64 |
65 | /**
66 | * Repair table query
67 | *
68 | * Are table repairs even supported in SQLite?
69 | *
70 | * @access private
71 | * @param string the table name
72 | * @return object
73 | */
74 | function _repair_table($table)
75 | {
76 | return FALSE;
77 | }
78 |
79 | // --------------------------------------------------------------------
80 |
81 | /**
82 | * SQLite Export
83 | *
84 | * @access private
85 | * @param array Preferences
86 | * @return mixed
87 | */
88 | function _backup($params = array())
89 | {
90 | // Currently unsupported
91 | return $this->db->display_error('db_unsuported_feature');
92 | }
93 | }
94 |
95 | /* End of file sqlite_utility.php */
96 | /* Location: ./system/database/drivers/sqlite/sqlite_utility.php */
--------------------------------------------------------------------------------
/system/helpers/typography_helper.php:
--------------------------------------------------------------------------------
1 | load->library('typography');
44 |
45 | return $CI->typography->nl2br_except_pre($str);
46 | }
47 | }
48 |
49 | // ------------------------------------------------------------------------
50 |
51 | /**
52 | * Auto Typography Wrapper Function
53 | *
54 | *
55 | * @access public
56 | * @param string
57 | * @param bool whether to allow javascript event handlers
58 | * @param bool whether to reduce multiple instances of double newlines to two
59 | * @return string
60 | */
61 | if ( ! function_exists('auto_typography'))
62 | {
63 | function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE)
64 | {
65 | $CI =& get_instance();
66 | $CI->load->library('typography');
67 | return $CI->typography->auto_typography($str, $strip_js_event_handlers, $reduce_linebreaks);
68 | }
69 | }
70 |
71 |
72 | // --------------------------------------------------------------------
73 |
74 | /**
75 | * HTML Entities Decode
76 | *
77 | * This function is a replacement for html_entity_decode()
78 | *
79 | * @access public
80 | * @param string
81 | * @return string
82 | */
83 | if ( ! function_exists('entity_decode'))
84 | {
85 | function entity_decode($str, $charset='UTF-8')
86 | {
87 | global $SEC;
88 | return $SEC->entity_decode($str, $charset);
89 | }
90 | }
91 |
92 | /* End of file typography_helper.php */
93 | /* Location: ./system/helpers/typography_helper.php */
--------------------------------------------------------------------------------
/system/database/drivers/pdo/pdo_utility.php:
--------------------------------------------------------------------------------
1 | db->db_debug)
37 | {
38 | return $this->db->display_error('db_unsuported_feature');
39 | }
40 | return FALSE;
41 | }
42 |
43 | // --------------------------------------------------------------------
44 |
45 | /**
46 | * Optimize table query
47 | *
48 | * Generates a platform-specific query so that a table can be optimized
49 | *
50 | * @access private
51 | * @param string the table name
52 | * @return object
53 | */
54 | function _optimize_table($table)
55 | {
56 | // Not a supported PDO feature
57 | if ($this->db->db_debug)
58 | {
59 | return $this->db->display_error('db_unsuported_feature');
60 | }
61 | return FALSE;
62 | }
63 |
64 | // --------------------------------------------------------------------
65 |
66 | /**
67 | * Repair table query
68 | *
69 | * Generates a platform-specific query so that a table can be repaired
70 | *
71 | * @access private
72 | * @param string the table name
73 | * @return object
74 | */
75 | function _repair_table($table)
76 | {
77 | // Not a supported PDO feature
78 | if ($this->db->db_debug)
79 | {
80 | return $this->db->display_error('db_unsuported_feature');
81 | }
82 | return FALSE;
83 | }
84 |
85 | // --------------------------------------------------------------------
86 |
87 | /**
88 | * PDO Export
89 | *
90 | * @access private
91 | * @param array Preferences
92 | * @return mixed
93 | */
94 | function _backup($params = array())
95 | {
96 | // Currently unsupported
97 | return $this->db->display_error('db_unsuported_feature');
98 | }
99 |
100 | }
101 |
102 | /* End of file pdo_utility.php */
103 | /* Location: ./system/database/drivers/pdo/pdo_utility.php */
--------------------------------------------------------------------------------
/system/database/drivers/odbc/odbc_utility.php:
--------------------------------------------------------------------------------
1 | db->db_debug)
37 | {
38 | return $this->db->display_error('db_unsuported_feature');
39 | }
40 | return FALSE;
41 | }
42 |
43 | // --------------------------------------------------------------------
44 |
45 | /**
46 | * Optimize table query
47 | *
48 | * Generates a platform-specific query so that a table can be optimized
49 | *
50 | * @access private
51 | * @param string the table name
52 | * @return object
53 | */
54 | function _optimize_table($table)
55 | {
56 | // Not a supported ODBC feature
57 | if ($this->db->db_debug)
58 | {
59 | return $this->db->display_error('db_unsuported_feature');
60 | }
61 | return FALSE;
62 | }
63 |
64 | // --------------------------------------------------------------------
65 |
66 | /**
67 | * Repair table query
68 | *
69 | * Generates a platform-specific query so that a table can be repaired
70 | *
71 | * @access private
72 | * @param string the table name
73 | * @return object
74 | */
75 | function _repair_table($table)
76 | {
77 | // Not a supported ODBC feature
78 | if ($this->db->db_debug)
79 | {
80 | return $this->db->display_error('db_unsuported_feature');
81 | }
82 | return FALSE;
83 | }
84 |
85 | // --------------------------------------------------------------------
86 |
87 | /**
88 | * ODBC Export
89 | *
90 | * @access private
91 | * @param array Preferences
92 | * @return mixed
93 | */
94 | function _backup($params = array())
95 | {
96 | // Currently unsupported
97 | return $this->db->display_error('db_unsuported_feature');
98 | }
99 |
100 | }
101 |
102 | /* End of file odbc_utility.php */
103 | /* Location: ./system/database/drivers/odbc/odbc_utility.php */
--------------------------------------------------------------------------------
/system/helpers/cookie_helper.php:
--------------------------------------------------------------------------------
1 | input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);
52 | }
53 | }
54 |
55 | // --------------------------------------------------------------------
56 |
57 | /**
58 | * Fetch an item from the COOKIE array
59 | *
60 | * @access public
61 | * @param string
62 | * @param bool
63 | * @return mixed
64 | */
65 | if ( ! function_exists('get_cookie'))
66 | {
67 | function get_cookie($index = '', $xss_clean = FALSE)
68 | {
69 | $CI =& get_instance();
70 |
71 | $prefix = '';
72 |
73 | if ( ! isset($_COOKIE[$index]) && config_item('cookie_prefix') != '')
74 | {
75 | $prefix = config_item('cookie_prefix');
76 | }
77 |
78 | return $CI->input->cookie($prefix.$index, $xss_clean);
79 | }
80 | }
81 |
82 | // --------------------------------------------------------------------
83 |
84 | /**
85 | * Delete a COOKIE
86 | *
87 | * @param mixed
88 | * @param string the cookie domain. Usually: .yourdomain.com
89 | * @param string the cookie path
90 | * @param string the cookie prefix
91 | * @return void
92 | */
93 | if ( ! function_exists('delete_cookie'))
94 | {
95 | function delete_cookie($name = '', $domain = '', $path = '/', $prefix = '')
96 | {
97 | set_cookie($name, '', '', $domain, $path, $prefix);
98 | }
99 | }
100 |
101 |
102 | /* End of file cookie_helper.php */
103 | /* Location: ./system/helpers/cookie_helper.php */
--------------------------------------------------------------------------------
/system/helpers/array_helper.php:
--------------------------------------------------------------------------------
1 | '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4');
34 |
35 | /**
36 | * Constructor
37 | */
38 | public function __construct()
39 | {
40 | $config =& get_config();
41 |
42 | $this->_log_path = ($config['log_path'] != '') ? $config['log_path'] : APPPATH.'logs/';
43 |
44 | if ( ! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path))
45 | {
46 | $this->_enabled = FALSE;
47 | }
48 |
49 | if (is_numeric($config['log_threshold']))
50 | {
51 | $this->_threshold = $config['log_threshold'];
52 | }
53 |
54 | if ($config['log_date_format'] != '')
55 | {
56 | $this->_date_fmt = $config['log_date_format'];
57 | }
58 | }
59 |
60 | // --------------------------------------------------------------------
61 |
62 | /**
63 | * Write Log File
64 | *
65 | * Generally this function will be called using the global log_message() function
66 | *
67 | * @param string the error level
68 | * @param string the error message
69 | * @param bool whether the error is a native PHP error
70 | * @return bool
71 | */
72 | public function write_log($level = 'error', $msg, $php_error = FALSE)
73 | {
74 | if ($this->_enabled === FALSE)
75 | {
76 | return FALSE;
77 | }
78 |
79 | $level = strtoupper($level);
80 |
81 | if ( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold))
82 | {
83 | return FALSE;
84 | }
85 |
86 | $filepath = $this->_log_path.'log-'.date('Y-m-d').'.php';
87 | $message = '';
88 |
89 | if ( ! file_exists($filepath))
90 | {
91 | $message .= "<"."?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?".">\n\n";
92 | }
93 |
94 | if ( ! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
95 | {
96 | return FALSE;
97 | }
98 |
99 | $message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' '.date($this->_date_fmt). ' --> '.$msg."\n";
100 |
101 | flock($fp, LOCK_EX);
102 | fwrite($fp, $message);
103 | flock($fp, LOCK_UN);
104 | fclose($fp);
105 |
106 | @chmod($filepath, FILE_WRITE_MODE);
107 | return TRUE;
108 | }
109 |
110 | }
111 | // END Log Class
112 |
113 | /* End of file Log.php */
114 | /* Location: ./system/libraries/Log.php */
--------------------------------------------------------------------------------
/system/helpers/download_helper.php:
--------------------------------------------------------------------------------
1 | security->xss_clean($str, $is_image);
44 | }
45 | }
46 |
47 | // ------------------------------------------------------------------------
48 |
49 | /**
50 | * Sanitize Filename
51 | *
52 | * @access public
53 | * @param string
54 | * @return string
55 | */
56 | if ( ! function_exists('sanitize_filename'))
57 | {
58 | function sanitize_filename($filename)
59 | {
60 | $CI =& get_instance();
61 | return $CI->security->sanitize_filename($filename);
62 | }
63 | }
64 |
65 | // --------------------------------------------------------------------
66 |
67 | /**
68 | * Hash encode a string
69 | *
70 | * @access public
71 | * @param string
72 | * @return string
73 | */
74 | if ( ! function_exists('do_hash'))
75 | {
76 | function do_hash($str, $type = 'sha1')
77 | {
78 | if ($type == 'sha1')
79 | {
80 | return sha1($str);
81 | }
82 | else
83 | {
84 | return md5($str);
85 | }
86 | }
87 | }
88 |
89 | // ------------------------------------------------------------------------
90 |
91 | /**
92 | * Strip Image Tags
93 | *
94 | * @access public
95 | * @param string
96 | * @return string
97 | */
98 | if ( ! function_exists('strip_image_tags'))
99 | {
100 | function strip_image_tags($str)
101 | {
102 | $str = preg_replace("#
#", "\\1", $str);
103 | $str = preg_replace("#
#", "\\1", $str);
104 |
105 | return $str;
106 | }
107 | }
108 |
109 | // ------------------------------------------------------------------------
110 |
111 | /**
112 | * Convert PHP tags to entities
113 | *
114 | * @access public
115 | * @param string
116 | * @return string
117 | */
118 | if ( ! function_exists('encode_php_tags'))
119 | {
120 | function encode_php_tags($str)
121 | {
122 | return str_replace(array(''), array('<?php', '<?PHP', '<?', '?>'), $str);
123 | }
124 | }
125 |
126 |
127 | /* End of file security_helper.php */
128 | /* Location: ./system/helpers/security_helper.php */
--------------------------------------------------------------------------------
/system/libraries/Cache/drivers/Cache_dummy.php:
--------------------------------------------------------------------------------
1 | CodeIgniter 项目文件夹
46 |
47 | ### conf
48 |
49 | > rc.local lamp开机自启动
50 | > supervisord.conf supervisord配置
51 |
52 | ### data
53 |
54 | > 用户上传文件存储文件夹,用户没有权限直接访问该文件夹
55 |
56 | ### public
57 |
58 | > 网站根目录
59 |
60 | ### scripts
61 |
62 | > 转换脚本存放目录
63 |
64 | ### system
65 |
66 | > CodeIgnier 框架系统目录
67 |
68 | ### install
69 |
70 | > db.sql 数据库结构
71 |
72 | ## LICENSE
73 |
74 | Copyright (c) 2012 [Chekun](https://github.com/chekun) and [Yoozi Inc.](http://www.yoozi.cn)
75 |
76 | Permission is hereby granted, free of charge, to any person obtaining a copy
77 | of this software and associated documentation files (the “Software”), to deal
78 | in the Software without restriction, including without limitation the rights
79 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
80 | copies of the Software, and to permit persons to whom the Software is
81 | furnished to do so, subject to the following conditions:
82 |
83 | The above copyright notice and this permission notice shall be included in
84 | all copies or substantial portions of the Software.
85 |
86 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
87 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
88 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
89 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
90 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
91 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
92 | THE SOFTWARE.
93 |
94 | [](https://bitdeli.com/free "Bitdeli Badge")
95 |
96 |
--------------------------------------------------------------------------------
/system/database/drivers/cubrid/cubrid_utility.php:
--------------------------------------------------------------------------------
1 | conn_id)
41 | {
42 | return "SELECT '" . $this->database . "'";
43 | }
44 | else
45 | {
46 | return FALSE;
47 | }
48 | }
49 |
50 | // --------------------------------------------------------------------
51 |
52 | /**
53 | * Optimize table query
54 | *
55 | * Generates a platform-specific query so that a table can be optimized
56 | *
57 | * @access private
58 | * @param string the table name
59 | * @return object
60 | * @link http://www.cubrid.org/manual/840/en/Optimize%20Database
61 | */
62 | function _optimize_table($table)
63 | {
64 | // No SQL based support in CUBRID as of version 8.4.0. Database or
65 | // table optimization can be performed using CUBRID Manager
66 | // database administration tool. See the link above for more info.
67 | return FALSE;
68 | }
69 |
70 | // --------------------------------------------------------------------
71 |
72 | /**
73 | * Repair table query
74 | *
75 | * Generates a platform-specific query so that a table can be repaired
76 | *
77 | * @access private
78 | * @param string the table name
79 | * @return object
80 | * @link http://www.cubrid.org/manual/840/en/Checking%20Database%20Consistency
81 | */
82 | function _repair_table($table)
83 | {
84 | // Not supported in CUBRID as of version 8.4.0. Database or
85 | // table consistency can be checked using CUBRID Manager
86 | // database administration tool. See the link above for more info.
87 | return FALSE;
88 | }
89 |
90 | // --------------------------------------------------------------------
91 | /**
92 | * CUBRID Export
93 | *
94 | * @access private
95 | * @param array Preferences
96 | * @return mixed
97 | */
98 | function _backup($params = array())
99 | {
100 | // No SQL based support in CUBRID as of version 8.4.0. Database or
101 | // table backup can be performed using CUBRID Manager
102 | // database administration tool.
103 | return $this->db->display_error('db_unsuported_feature');
104 | }
105 | }
106 |
107 | /* End of file cubrid_utility.php */
108 | /* Location: ./system/database/drivers/cubrid/cubrid_utility.php */
--------------------------------------------------------------------------------
/application/config/database.php:
--------------------------------------------------------------------------------
1 | array('grin.gif', '19', '19', 'grin'),
20 | ':lol:' => array('lol.gif', '19', '19', 'LOL'),
21 | ':cheese:' => array('cheese.gif', '19', '19', 'cheese'),
22 | ':)' => array('smile.gif', '19', '19', 'smile'),
23 | ';-)' => array('wink.gif', '19', '19', 'wink'),
24 | ';)' => array('wink.gif', '19', '19', 'wink'),
25 | ':smirk:' => array('smirk.gif', '19', '19', 'smirk'),
26 | ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'),
27 | ':-S' => array('confused.gif', '19', '19', 'confused'),
28 | ':wow:' => array('surprise.gif', '19', '19', 'surprised'),
29 | ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'),
30 | ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'),
31 | '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'),
32 | ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'),
33 | ':P' => array('raspberry.gif', '19', '19', 'raspberry'),
34 | ':blank:' => array('blank.gif', '19', '19', 'blank stare'),
35 | ':long:' => array('longface.gif', '19', '19', 'long face'),
36 | ':ohh:' => array('ohh.gif', '19', '19', 'ohh'),
37 | ':grrr:' => array('grrr.gif', '19', '19', 'grrr'),
38 | ':gulp:' => array('gulp.gif', '19', '19', 'gulp'),
39 | '8-/' => array('ohoh.gif', '19', '19', 'oh oh'),
40 | ':down:' => array('downer.gif', '19', '19', 'downer'),
41 | ':red:' => array('embarrassed.gif', '19', '19', 'red face'),
42 | ':sick:' => array('sick.gif', '19', '19', 'sick'),
43 | ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'),
44 | ':-/' => array('hmm.gif', '19', '19', 'hmmm'),
45 | '>:(' => array('mad.gif', '19', '19', 'mad'),
46 | ':mad:' => array('mad.gif', '19', '19', 'mad'),
47 | '>:-(' => array('angry.gif', '19', '19', 'angry'),
48 | ':angry:' => array('angry.gif', '19', '19', 'angry'),
49 | ':zip:' => array('zip.gif', '19', '19', 'zipper'),
50 | ':kiss:' => array('kiss.gif', '19', '19', 'kiss'),
51 | ':ahhh:' => array('shock.gif', '19', '19', 'shock'),
52 | ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'),
53 | ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'),
54 | ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'),
55 | ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'),
56 | ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'),
57 | ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'),
58 | ':vampire:' => array('vampire.gif', '19', '19', 'vampire'),
59 | ':snake:' => array('snake.gif', '19', '19', 'snake'),
60 | ':exclaim:' => array('exclaim.gif', '19', '19', 'excaim'),
61 | ':question:' => array('question.gif', '19', '19', 'question') // no comma after last item
62 |
63 | );
64 |
65 | /* End of file smileys.php */
66 | /* Location: ./application/config/smileys.php */
--------------------------------------------------------------------------------
/system/core/Benchmark.php:
--------------------------------------------------------------------------------
1 | marker[$name] = microtime();
54 | }
55 |
56 | // --------------------------------------------------------------------
57 |
58 | /**
59 | * Calculates the time difference between two marked points.
60 | *
61 | * If the first parameter is empty this function instead returns the
62 | * {elapsed_time} pseudo-variable. This permits the full system
63 | * execution time to be shown in a template. The output class will
64 | * swap the real value for this variable.
65 | *
66 | * @access public
67 | * @param string a particular marked point
68 | * @param string a particular marked point
69 | * @param integer the number of decimal places
70 | * @return mixed
71 | */
72 | function elapsed_time($point1 = '', $point2 = '', $decimals = 4)
73 | {
74 | if ($point1 == '')
75 | {
76 | return '{elapsed_time}';
77 | }
78 |
79 | if ( ! isset($this->marker[$point1]))
80 | {
81 | return '';
82 | }
83 |
84 | if ( ! isset($this->marker[$point2]))
85 | {
86 | $this->marker[$point2] = microtime();
87 | }
88 |
89 | list($sm, $ss) = explode(' ', $this->marker[$point1]);
90 | list($em, $es) = explode(' ', $this->marker[$point2]);
91 |
92 | return number_format(($em + $es) - ($sm + $ss), $decimals);
93 | }
94 |
95 | // --------------------------------------------------------------------
96 |
97 | /**
98 | * Memory Usage
99 | *
100 | * This function returns the {memory_usage} pseudo-variable.
101 | * This permits it to be put it anywhere in a template
102 | * without the memory being calculated until the end.
103 | * The output class will swap the real value for this variable.
104 | *
105 | * @access public
106 | * @return string
107 | */
108 | function memory_usage()
109 | {
110 | return '{memory_usage}';
111 | }
112 |
113 | }
114 |
115 | // END CI_Benchmark class
116 |
117 | /* End of file Benchmark.php */
118 | /* Location: ./system/core/Benchmark.php */
--------------------------------------------------------------------------------
/application/config/autoload.php:
--------------------------------------------------------------------------------
1 | .
17 |
18 | For more information on FlexPaper please see the FlexPaper project
19 | home page: http://flexpaper.devaldi.com
20 | */
21 |
22 | $(function() {
23 | /**
24 | * Handles the event of external links getting clicked in the document.
25 | *
26 | * @example onExternalLinkClicked("http://www.google.com")
27 | *
28 | * @param String link
29 | */
30 | jQuery('#viewerPlaceHolder').bind('onExternalLinkClicked',function(e,link){
31 |
32 | });
33 |
34 | /**
35 | * Recieves progress information about the document being loaded
36 | *
37 | * @example onProgress( 100,10000 );
38 | *
39 | * @param int loaded
40 | * @param int total
41 | */
42 | jQuery('#viewerPlaceHolder').bind('onProgress',function(e,loadedBytes,totalBytes){
43 |
44 | });
45 |
46 | /**
47 | * Handles the event of a document is in progress of loading
48 | *
49 | */
50 | jQuery('#viewerPlaceHolder').bind('onDocumentLoading',function(e){
51 |
52 | });
53 |
54 | /**
55 | * Handles the event of a document is in progress of loading
56 | *
57 | */
58 | jQuery('#viewerPlaceHolder').bind('onPageLoading',function(e,pageNumber){
59 |
60 | });
61 |
62 | /**
63 | * Receives messages about the current page being changed
64 | *
65 | * @example onCurrentPageChanged( 10 );
66 | *
67 | * @param int pagenum
68 | */
69 | jQuery('#viewerPlaceHolder').bind('onCurrentPageChanged',function(e,pagenum){
70 |
71 | });
72 |
73 | /**
74 | * Receives messages about the document being loaded
75 | *
76 | * @example onDocumentLoaded( 20 );
77 | *
78 | * @param int totalPages
79 | */
80 | jQuery('#viewerPlaceHolder').bind('onDocumentLoaded',function(e,totalPages){
81 |
82 | });
83 |
84 | /**
85 | * Receives messages about the page loaded
86 | *
87 | * @example onPageLoaded( 1 );
88 | *
89 | * @param int pageNumber
90 | */
91 | jQuery('#viewerPlaceHolder').bind('onPageLoaded',function(e,pageNumber){
92 |
93 | });
94 |
95 | /**
96 | * Receives messages about the page loaded
97 | *
98 | * @example onErrorLoadingPage( 1 );
99 | *
100 | * @param int pageNumber
101 | */
102 | jQuery('#viewerPlaceHolder').bind('onErrorLoadingPage',function(e,pageNumber){
103 |
104 | });
105 |
106 | /**
107 | * Receives error messages when a document is not loading properly
108 | *
109 | * @example onDocumentLoadedError( "Network error" );
110 | *
111 | * @param String errorMessage
112 | */
113 | jQuery('#viewerPlaceHolder').bind('onDocumentLoadedError',function(e,errMessage){
114 |
115 | });
116 |
117 | /**
118 | * Receives error messages when a document has finished printed
119 | *
120 | * @example onDocumentPrinted();
121 | *
122 | */
123 | jQuery('#viewerPlaceHolder').bind('onDocumentPrinted',function(e){
124 |
125 | });
126 | });
--------------------------------------------------------------------------------
/system/libraries/Cache/drivers/Cache_apc.php:
--------------------------------------------------------------------------------
1 | $time + $ttl,
121 | 'mtime' => $time,
122 | 'data' => $data
123 | );
124 | }
125 |
126 | // ------------------------------------------------------------------------
127 |
128 | /**
129 | * is_supported()
130 | *
131 | * Check to see if APC is available on this system, bail if it isn't.
132 | */
133 | public function is_supported()
134 | {
135 | if ( ! extension_loaded('apc') OR ini_get('apc.enabled') != "1")
136 | {
137 | log_message('error', 'The APC PHP extension must be loaded to use APC Cache.');
138 | return FALSE;
139 | }
140 |
141 | return TRUE;
142 | }
143 |
144 | // ------------------------------------------------------------------------
145 |
146 |
147 | }
148 | // End Class
149 |
150 | /* End of file Cache_apc.php */
151 | /* Location: ./system/libraries/Cache/drivers/Cache_apc.php */
152 |
--------------------------------------------------------------------------------
/system/database/drivers/mssql/mssql_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @mssql_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | while ($field = mssql_fetch_field($this->result_id))
67 | {
68 | $field_names[] = $field->name;
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | while ($field = mssql_fetch_field($this->result_id))
88 | {
89 | $F = new stdClass();
90 | $F->name = $field->name;
91 | $F->type = $field->type;
92 | $F->max_length = $field->max_length;
93 | $F->primary_key = 0;
94 | $F->default = '';
95 |
96 | $retval[] = $F;
97 | }
98 |
99 | return $retval;
100 | }
101 |
102 | // --------------------------------------------------------------------
103 |
104 | /**
105 | * Free the result
106 | *
107 | * @return null
108 | */
109 | function free_result()
110 | {
111 | if (is_resource($this->result_id))
112 | {
113 | mssql_free_result($this->result_id);
114 | $this->result_id = FALSE;
115 | }
116 | }
117 |
118 | // --------------------------------------------------------------------
119 |
120 | /**
121 | * Data Seek
122 | *
123 | * Moves the internal pointer to the desired offset. We call
124 | * this internally before fetching results to make sure the
125 | * result set starts at zero
126 | *
127 | * @access private
128 | * @return array
129 | */
130 | function _data_seek($n = 0)
131 | {
132 | return mssql_data_seek($this->result_id, $n);
133 | }
134 |
135 | // --------------------------------------------------------------------
136 |
137 | /**
138 | * Result - associative array
139 | *
140 | * Returns the result set as an array
141 | *
142 | * @access private
143 | * @return array
144 | */
145 | function _fetch_assoc()
146 | {
147 | return mssql_fetch_assoc($this->result_id);
148 | }
149 |
150 | // --------------------------------------------------------------------
151 |
152 | /**
153 | * Result - object
154 | *
155 | * Returns the result set as an object
156 | *
157 | * @access private
158 | * @return object
159 | */
160 | function _fetch_object()
161 | {
162 | return mssql_fetch_object($this->result_id);
163 | }
164 |
165 | }
166 |
167 |
168 | /* End of file mssql_result.php */
169 | /* Location: ./system/database/drivers/mssql/mssql_result.php */
--------------------------------------------------------------------------------
/system/database/drivers/sqlsrv/sqlsrv_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @sqlsrv_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field)
67 | {
68 | $field_names[] = $field['Name'];
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field)
88 | {
89 | $F = new stdClass();
90 | $F->name = $field['Name'];
91 | $F->type = $field['Type'];
92 | $F->max_length = $field['Size'];
93 | $F->primary_key = 0;
94 | $F->default = '';
95 |
96 | $retval[] = $F;
97 | }
98 |
99 | return $retval;
100 | }
101 |
102 | // --------------------------------------------------------------------
103 |
104 | /**
105 | * Free the result
106 | *
107 | * @return null
108 | */
109 | function free_result()
110 | {
111 | if (is_resource($this->result_id))
112 | {
113 | sqlsrv_free_stmt($this->result_id);
114 | $this->result_id = FALSE;
115 | }
116 | }
117 |
118 | // --------------------------------------------------------------------
119 |
120 | /**
121 | * Data Seek
122 | *
123 | * Moves the internal pointer to the desired offset. We call
124 | * this internally before fetching results to make sure the
125 | * result set starts at zero
126 | *
127 | * @access private
128 | * @return array
129 | */
130 | function _data_seek($n = 0)
131 | {
132 | // Not implemented
133 | }
134 |
135 | // --------------------------------------------------------------------
136 |
137 | /**
138 | * Result - associative array
139 | *
140 | * Returns the result set as an array
141 | *
142 | * @access private
143 | * @return array
144 | */
145 | function _fetch_assoc()
146 | {
147 | return sqlsrv_fetch_array($this->result_id, SQLSRV_FETCH_ASSOC);
148 | }
149 |
150 | // --------------------------------------------------------------------
151 |
152 | /**
153 | * Result - object
154 | *
155 | * Returns the result set as an object
156 | *
157 | * @access private
158 | * @return object
159 | */
160 | function _fetch_object()
161 | {
162 | return sqlsrv_fetch_object($this->result_id);
163 | }
164 |
165 | }
166 |
167 |
168 | /* End of file mssql_result.php */
169 | /* Location: ./system/database/drivers/mssql/mssql_result.php */
--------------------------------------------------------------------------------
/scripts/httpsqs/httpsqs_client.py:
--------------------------------------------------------------------------------
1 | # -*- coding:utf-8 -*-
2 |
3 | """
4 | @author: Yusong Cui
5 | @copyright: This is free software, under the New BSD License
6 | """
7 |
8 | import urllib2
9 | import urllib
10 |
11 | class httpsqs:
12 | host = "127.0.0.1"
13 | port = '1218'
14 | charset = 'utf-8'
15 | name = ''
16 |
17 | #初始化参数,地址,端口,队列名称,字符编码
18 | def __init__(self, host, port, name, charset='utf-8'):
19 | self.host = host
20 | self.port = port
21 | self.name = name
22 | self.charset = charset
23 |
24 | def request(self, opt, data=None, name=None, method='GET', charset=None):
25 | if name is None:
26 | name = self.name
27 | if charset is None:
28 | charset = self.charset
29 | param = {'charset':charset, 'name':name, 'opt':opt}
30 | if data :
31 | param.update(data)
32 |
33 | url = 'http://' + self.host + ':' + self.port + '/?'
34 | param_str = urllib.urlencode(param)
35 | getString = url + param_str
36 | req = urllib2.Request(getString)
37 | try:
38 | handle = urllib2.urlopen(req)
39 | except:
40 | return False
41 |
42 | return handle
43 |
44 | #获取队首一个元素及位置信息
45 | def gets(self, q_name=None):
46 | result = {}
47 | handle = self.request('get',name=q_name)
48 | try:
49 | result['pos'] = self.pos(handle)
50 | except:
51 | return False
52 | result['data'] = handle.read()
53 |
54 | if result['data'] == 'HTTPSQS_GET_END':
55 | return False
56 | else:
57 | return result
58 |
59 | #获取一个队列元素
60 | def get(self, q_name=None):
61 | result = self.request('get',name=q_name).read()
62 | if result != 'HTTPSQS_GET_END':
63 | return result
64 | else:
65 | return False
66 |
67 | #向队尾增加一个元素
68 | def put(self, data, q_name=None):
69 | result = {}
70 | handle = self.request('put', {'data':data}, q_name)
71 | result['data'] = handle.read()
72 | if result['data'] == 'HTTPSQS_PUT_OK':
73 | return True
74 | else:
75 | return False
76 |
77 | #重置队列
78 | def reset(self, q_name=None):
79 | handle = self.request('reset', name=q_name)
80 | str = handle.read()
81 | if str == 'HTTPSQS_RESET_OK':
82 | return True
83 | else:
84 | return False
85 |
86 | #设置队列最大值
87 | def maxqueue(self, num, q_name=None):
88 | if not num:
89 | return False
90 |
91 | str = self.request('maxqueue', {'num':num}, q_name).read()
92 | if str == 'HTTPSQS_MAXQUEUE_OK':
93 | return True
94 | else:
95 | return False
96 |
97 | #以json格式返回队列状态等信息
98 | def status_json(self, q_name=None):
99 | str = self.request('status_json', name=q_name).read()
100 | if str != 'HTTPSQS_ERROR' and str:
101 | return str
102 | else:
103 | return False
104 |
105 | #设置同步时间间隔
106 | def synctime(self, num, q_name=None):
107 | if not num:
108 | return False
109 | str = self.request('synctime', {'num':num}, q_name).read()
110 | if str == 'HTTPSQS_SYNCTIME_OK':
111 | return True
112 | else:
113 | return False
114 |
115 | #获取队列状态信息
116 | def status(self, q_name=None):
117 | str = self.request('status', name=q_name).read()
118 | if str != 'HTTPSQS_ERROR' and str:
119 | return str
120 | else:
121 | return False
122 |
123 | #根据队列位置查看状态
124 | def view(self, pos, q_name=None):
125 | str = self.request('view', {'pos':pos}, q_name).read()
126 | if str != 'HTTPSQS_ERROR' and str:
127 | return str
128 | else:
129 | return False
130 |
131 | #根据request句柄获取header部分的pos
132 | def pos(self, handle):
133 | pos = int(handle.info().headers[2].replace('\r\n', '').split(':')[1])
134 | return pos
135 |
136 |
--------------------------------------------------------------------------------
/system/database/drivers/postgre/postgre_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @pg_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | for ($i = 0; $i < $this->num_fields(); $i++)
67 | {
68 | $field_names[] = pg_field_name($this->result_id, $i);
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | for ($i = 0; $i < $this->num_fields(); $i++)
88 | {
89 | $F = new stdClass();
90 | $F->name = pg_field_name($this->result_id, $i);
91 | $F->type = pg_field_type($this->result_id, $i);
92 | $F->max_length = pg_field_size($this->result_id, $i);
93 | $F->primary_key = 0;
94 | $F->default = '';
95 |
96 | $retval[] = $F;
97 | }
98 |
99 | return $retval;
100 | }
101 |
102 | // --------------------------------------------------------------------
103 |
104 | /**
105 | * Free the result
106 | *
107 | * @return null
108 | */
109 | function free_result()
110 | {
111 | if (is_resource($this->result_id))
112 | {
113 | pg_free_result($this->result_id);
114 | $this->result_id = FALSE;
115 | }
116 | }
117 |
118 | // --------------------------------------------------------------------
119 |
120 | /**
121 | * Data Seek
122 | *
123 | * Moves the internal pointer to the desired offset. We call
124 | * this internally before fetching results to make sure the
125 | * result set starts at zero
126 | *
127 | * @access private
128 | * @return array
129 | */
130 | function _data_seek($n = 0)
131 | {
132 | return pg_result_seek($this->result_id, $n);
133 | }
134 |
135 | // --------------------------------------------------------------------
136 |
137 | /**
138 | * Result - associative array
139 | *
140 | * Returns the result set as an array
141 | *
142 | * @access private
143 | * @return array
144 | */
145 | function _fetch_assoc()
146 | {
147 | return pg_fetch_assoc($this->result_id);
148 | }
149 |
150 | // --------------------------------------------------------------------
151 |
152 | /**
153 | * Result - object
154 | *
155 | * Returns the result set as an object
156 | *
157 | * @access private
158 | * @return object
159 | */
160 | function _fetch_object()
161 | {
162 | return pg_fetch_object($this->result_id);
163 | }
164 |
165 | }
166 |
167 |
168 | /* End of file postgre_result.php */
169 | /* Location: ./system/database/drivers/postgre/postgre_result.php */
--------------------------------------------------------------------------------
/system/core/Utf8.php:
--------------------------------------------------------------------------------
1 | item('charset') == 'UTF-8' // Application charset must be UTF-8
48 | )
49 | {
50 | log_message('debug', "UTF-8 Support Enabled");
51 |
52 | define('UTF8_ENABLED', TRUE);
53 |
54 | // set internal encoding for multibyte string functions if necessary
55 | // and set a flag so we don't have to repeatedly use extension_loaded()
56 | // or function_exists()
57 | if (extension_loaded('mbstring'))
58 | {
59 | define('MB_ENABLED', TRUE);
60 | mb_internal_encoding('UTF-8');
61 | }
62 | else
63 | {
64 | define('MB_ENABLED', FALSE);
65 | }
66 | }
67 | else
68 | {
69 | log_message('debug', "UTF-8 Support Disabled");
70 | define('UTF8_ENABLED', FALSE);
71 | }
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Clean UTF-8 strings
78 | *
79 | * Ensures strings are UTF-8
80 | *
81 | * @access public
82 | * @param string
83 | * @return string
84 | */
85 | function clean_string($str)
86 | {
87 | if ($this->_is_ascii($str) === FALSE)
88 | {
89 | $str = @iconv('UTF-8', 'UTF-8//IGNORE', $str);
90 | }
91 |
92 | return $str;
93 | }
94 |
95 | // --------------------------------------------------------------------
96 |
97 | /**
98 | * Remove ASCII control characters
99 | *
100 | * Removes all ASCII control characters except horizontal tabs,
101 | * line feeds, and carriage returns, as all others can cause
102 | * problems in XML
103 | *
104 | * @access public
105 | * @param string
106 | * @return string
107 | */
108 | function safe_ascii_for_xml($str)
109 | {
110 | return remove_invisible_characters($str, FALSE);
111 | }
112 |
113 | // --------------------------------------------------------------------
114 |
115 | /**
116 | * Convert to UTF-8
117 | *
118 | * Attempts to convert a string to UTF-8
119 | *
120 | * @access public
121 | * @param string
122 | * @param string - input encoding
123 | * @return string
124 | */
125 | function convert_to_utf8($str, $encoding)
126 | {
127 | if (function_exists('iconv'))
128 | {
129 | $str = @iconv($encoding, 'UTF-8', $str);
130 | }
131 | elseif (function_exists('mb_convert_encoding'))
132 | {
133 | $str = @mb_convert_encoding($str, 'UTF-8', $encoding);
134 | }
135 | else
136 | {
137 | return FALSE;
138 | }
139 |
140 | return $str;
141 | }
142 |
143 | // --------------------------------------------------------------------
144 |
145 | /**
146 | * Is ASCII?
147 | *
148 | * Tests if a string is standard 7-bit ASCII or not
149 | *
150 | * @access public
151 | * @param string
152 | * @return bool
153 | */
154 | function _is_ascii($str)
155 | {
156 | return (preg_match('/[^\x00-\x7F]/S', $str) == 0);
157 | }
158 |
159 | // --------------------------------------------------------------------
160 |
161 | }
162 | // End Utf8 Class
163 |
164 | /* End of file Utf8.php */
165 | /* Location: ./system/core/Utf8.php */
--------------------------------------------------------------------------------
/system/core/Lang.php:
--------------------------------------------------------------------------------
1 | is_loaded, TRUE))
77 | {
78 | return;
79 | }
80 |
81 | $config =& get_config();
82 |
83 | if ($idiom == '')
84 | {
85 | $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language'];
86 | $idiom = ($deft_lang == '') ? 'english' : $deft_lang;
87 | }
88 |
89 | // Determine where the language file is and load it
90 | if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
91 | {
92 | include($alt_path.'language/'.$idiom.'/'.$langfile);
93 | }
94 | else
95 | {
96 | $found = FALSE;
97 |
98 | foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
99 | {
100 | if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
101 | {
102 | include($package_path.'language/'.$idiom.'/'.$langfile);
103 | $found = TRUE;
104 | break;
105 | }
106 | }
107 |
108 | if ($found !== TRUE)
109 | {
110 | show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
111 | }
112 | }
113 |
114 |
115 | if ( ! isset($lang))
116 | {
117 | log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
118 | return;
119 | }
120 |
121 | if ($return == TRUE)
122 | {
123 | return $lang;
124 | }
125 |
126 | $this->is_loaded[] = $langfile;
127 | $this->language = array_merge($this->language, $lang);
128 | unset($lang);
129 |
130 | log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
131 | return TRUE;
132 | }
133 |
134 | // --------------------------------------------------------------------
135 |
136 | /**
137 | * Fetch a single line of text from the language array
138 | *
139 | * @access public
140 | * @param string $line the language line
141 | * @return string
142 | */
143 | function line($line = '')
144 | {
145 | $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
146 |
147 | // Because killer robots like unicorns!
148 | if ($value === FALSE)
149 | {
150 | log_message('error', 'Could not find the language line "'.$line.'"');
151 | }
152 |
153 | return $value;
154 | }
155 |
156 | }
157 | // END Language Class
158 |
159 | /* End of file Lang.php */
160 | /* Location: ./system/core/Lang.php */
161 |
--------------------------------------------------------------------------------
/system/database/drivers/pdo/pdo_result.php:
--------------------------------------------------------------------------------
1 | num_rows))
39 | {
40 | return $this->num_rows;
41 | }
42 | elseif (($this->num_rows = $this->result_id->rowCount()) > 0)
43 | {
44 | return $this->num_rows;
45 | }
46 |
47 | $this->num_rows = count($this->result_id->fetchAll());
48 | $this->result_id->execute();
49 | return $this->num_rows;
50 | }
51 |
52 | // --------------------------------------------------------------------
53 |
54 | /**
55 | * Number of fields in the result set
56 | *
57 | * @access public
58 | * @return integer
59 | */
60 | function num_fields()
61 | {
62 | return $this->result_id->columnCount();
63 | }
64 |
65 | // --------------------------------------------------------------------
66 |
67 | /**
68 | * Fetch Field Names
69 | *
70 | * Generates an array of column names
71 | *
72 | * @access public
73 | * @return array
74 | */
75 | function list_fields()
76 | {
77 | if ($this->db->db_debug)
78 | {
79 | return $this->db->display_error('db_unsuported_feature');
80 | }
81 | return FALSE;
82 | }
83 |
84 | // --------------------------------------------------------------------
85 |
86 | /**
87 | * Field data
88 | *
89 | * Generates an array of objects containing field meta-data
90 | *
91 | * @access public
92 | * @return array
93 | */
94 | function field_data()
95 | {
96 | $data = array();
97 |
98 | try
99 | {
100 | for($i = 0; $i < $this->num_fields(); $i++)
101 | {
102 | $data[] = $this->result_id->getColumnMeta($i);
103 | }
104 |
105 | return $data;
106 | }
107 | catch (Exception $e)
108 | {
109 | if ($this->db->db_debug)
110 | {
111 | return $this->db->display_error('db_unsuported_feature');
112 | }
113 | return FALSE;
114 | }
115 | }
116 |
117 | // --------------------------------------------------------------------
118 |
119 | /**
120 | * Free the result
121 | *
122 | * @return null
123 | */
124 | function free_result()
125 | {
126 | if (is_object($this->result_id))
127 | {
128 | $this->result_id = FALSE;
129 | }
130 | }
131 |
132 | // --------------------------------------------------------------------
133 |
134 | /**
135 | * Data Seek
136 | *
137 | * Moves the internal pointer to the desired offset. We call
138 | * this internally before fetching results to make sure the
139 | * result set starts at zero
140 | *
141 | * @access private
142 | * @return array
143 | */
144 | function _data_seek($n = 0)
145 | {
146 | return FALSE;
147 | }
148 |
149 | // --------------------------------------------------------------------
150 |
151 | /**
152 | * Result - associative array
153 | *
154 | * Returns the result set as an array
155 | *
156 | * @access private
157 | * @return array
158 | */
159 | function _fetch_assoc()
160 | {
161 | return $this->result_id->fetch(PDO::FETCH_ASSOC);
162 | }
163 |
164 | // --------------------------------------------------------------------
165 |
166 | /**
167 | * Result - object
168 | *
169 | * Returns the result set as an object
170 | *
171 | * @access private
172 | * @return object
173 | */
174 | function _fetch_object()
175 | {
176 | return $this->result_id->fetchObject();
177 | }
178 |
179 | }
180 |
181 |
182 | /* End of file pdo_result.php */
183 | /* Location: ./system/database/drivers/pdo/pdo_result.php */
--------------------------------------------------------------------------------
/system/database/drivers/sqlite/sqlite_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @sqlite_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | for ($i = 0; $i < $this->num_fields(); $i++)
67 | {
68 | $field_names[] = sqlite_field_name($this->result_id, $i);
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | for ($i = 0; $i < $this->num_fields(); $i++)
88 | {
89 | $F = new stdClass();
90 | $F->name = sqlite_field_name($this->result_id, $i);
91 | $F->type = 'varchar';
92 | $F->max_length = 0;
93 | $F->primary_key = 0;
94 | $F->default = '';
95 |
96 | $retval[] = $F;
97 | }
98 |
99 | return $retval;
100 | }
101 |
102 | // --------------------------------------------------------------------
103 |
104 | /**
105 | * Free the result
106 | *
107 | * @return null
108 | */
109 | function free_result()
110 | {
111 | // Not implemented in SQLite
112 | }
113 |
114 | // --------------------------------------------------------------------
115 |
116 | /**
117 | * Data Seek
118 | *
119 | * Moves the internal pointer to the desired offset. We call
120 | * this internally before fetching results to make sure the
121 | * result set starts at zero
122 | *
123 | * @access private
124 | * @return array
125 | */
126 | function _data_seek($n = 0)
127 | {
128 | return sqlite_seek($this->result_id, $n);
129 | }
130 |
131 | // --------------------------------------------------------------------
132 |
133 | /**
134 | * Result - associative array
135 | *
136 | * Returns the result set as an array
137 | *
138 | * @access private
139 | * @return array
140 | */
141 | function _fetch_assoc()
142 | {
143 | return sqlite_fetch_array($this->result_id);
144 | }
145 |
146 | // --------------------------------------------------------------------
147 |
148 | /**
149 | * Result - object
150 | *
151 | * Returns the result set as an object
152 | *
153 | * @access private
154 | * @return object
155 | */
156 | function _fetch_object()
157 | {
158 | if (function_exists('sqlite_fetch_object'))
159 | {
160 | return sqlite_fetch_object($this->result_id);
161 | }
162 | else
163 | {
164 | $arr = sqlite_fetch_array($this->result_id, SQLITE_ASSOC);
165 | if (is_array($arr))
166 | {
167 | $obj = (object) $arr;
168 | return $obj;
169 | } else {
170 | return NULL;
171 | }
172 | }
173 | }
174 |
175 | }
176 |
177 |
178 | /* End of file sqlite_result.php */
179 | /* Location: ./system/database/drivers/sqlite/sqlite_result.php */
--------------------------------------------------------------------------------
/system/database/drivers/mysql/mysql_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @mysql_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | while ($field = mysql_fetch_field($this->result_id))
67 | {
68 | $field_names[] = $field->name;
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | while ($field = mysql_fetch_object($this->result_id))
88 | {
89 | preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches);
90 |
91 | $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL;
92 | $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL;
93 |
94 | $F = new stdClass();
95 | $F->name = $field->Field;
96 | $F->type = $type;
97 | $F->default = $field->Default;
98 | $F->max_length = $length;
99 | $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 );
100 |
101 | $retval[] = $F;
102 | }
103 |
104 | return $retval;
105 | }
106 |
107 | // --------------------------------------------------------------------
108 |
109 | /**
110 | * Free the result
111 | *
112 | * @return null
113 | */
114 | function free_result()
115 | {
116 | if (is_resource($this->result_id))
117 | {
118 | mysql_free_result($this->result_id);
119 | $this->result_id = FALSE;
120 | }
121 | }
122 |
123 | // --------------------------------------------------------------------
124 |
125 | /**
126 | * Data Seek
127 | *
128 | * Moves the internal pointer to the desired offset. We call
129 | * this internally before fetching results to make sure the
130 | * result set starts at zero
131 | *
132 | * @access private
133 | * @return array
134 | */
135 | function _data_seek($n = 0)
136 | {
137 | return mysql_data_seek($this->result_id, $n);
138 | }
139 |
140 | // --------------------------------------------------------------------
141 |
142 | /**
143 | * Result - associative array
144 | *
145 | * Returns the result set as an array
146 | *
147 | * @access private
148 | * @return array
149 | */
150 | function _fetch_assoc()
151 | {
152 | return mysql_fetch_assoc($this->result_id);
153 | }
154 |
155 | // --------------------------------------------------------------------
156 |
157 | /**
158 | * Result - object
159 | *
160 | * Returns the result set as an object
161 | *
162 | * @access private
163 | * @return object
164 | */
165 | function _fetch_object()
166 | {
167 | return mysql_fetch_object($this->result_id);
168 | }
169 |
170 | }
171 |
172 |
173 | /* End of file mysql_result.php */
174 | /* Location: ./system/database/drivers/mysql/mysql_result.php */
--------------------------------------------------------------------------------
/system/database/drivers/mysqli/mysqli_result.php:
--------------------------------------------------------------------------------
1 | result_id);
38 | }
39 |
40 | // --------------------------------------------------------------------
41 |
42 | /**
43 | * Number of fields in the result set
44 | *
45 | * @access public
46 | * @return integer
47 | */
48 | function num_fields()
49 | {
50 | return @mysqli_num_fields($this->result_id);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Fetch Field Names
57 | *
58 | * Generates an array of column names
59 | *
60 | * @access public
61 | * @return array
62 | */
63 | function list_fields()
64 | {
65 | $field_names = array();
66 | while ($field = mysqli_fetch_field($this->result_id))
67 | {
68 | $field_names[] = $field->name;
69 | }
70 |
71 | return $field_names;
72 | }
73 |
74 | // --------------------------------------------------------------------
75 |
76 | /**
77 | * Field data
78 | *
79 | * Generates an array of objects containing field meta-data
80 | *
81 | * @access public
82 | * @return array
83 | */
84 | function field_data()
85 | {
86 | $retval = array();
87 | while ($field = mysqli_fetch_object($this->result_id))
88 | {
89 | preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches);
90 |
91 | $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL;
92 | $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL;
93 |
94 | $F = new stdClass();
95 | $F->name = $field->Field;
96 | $F->type = $type;
97 | $F->default = $field->Default;
98 | $F->max_length = $length;
99 | $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 );
100 |
101 | $retval[] = $F;
102 | }
103 |
104 | return $retval;
105 | }
106 |
107 | // --------------------------------------------------------------------
108 |
109 | /**
110 | * Free the result
111 | *
112 | * @return null
113 | */
114 | function free_result()
115 | {
116 | if (is_object($this->result_id))
117 | {
118 | mysqli_free_result($this->result_id);
119 | $this->result_id = FALSE;
120 | }
121 | }
122 |
123 | // --------------------------------------------------------------------
124 |
125 | /**
126 | * Data Seek
127 | *
128 | * Moves the internal pointer to the desired offset. We call
129 | * this internally before fetching results to make sure the
130 | * result set starts at zero
131 | *
132 | * @access private
133 | * @return array
134 | */
135 | function _data_seek($n = 0)
136 | {
137 | return mysqli_data_seek($this->result_id, $n);
138 | }
139 |
140 | // --------------------------------------------------------------------
141 |
142 | /**
143 | * Result - associative array
144 | *
145 | * Returns the result set as an array
146 | *
147 | * @access private
148 | * @return array
149 | */
150 | function _fetch_assoc()
151 | {
152 | return mysqli_fetch_assoc($this->result_id);
153 | }
154 |
155 | // --------------------------------------------------------------------
156 |
157 | /**
158 | * Result - object
159 | *
160 | * Returns the result set as an object
161 | *
162 | * @access private
163 | * @return object
164 | */
165 | function _fetch_object()
166 | {
167 | return mysqli_fetch_object($this->result_id);
168 | }
169 |
170 | }
171 |
172 |
173 | /* End of file mysqli_result.php */
174 | /* Location: ./system/database/drivers/mysqli/mysqli_result.php */
--------------------------------------------------------------------------------
/system/database/DB.php:
--------------------------------------------------------------------------------
1 | $dns['scheme'],
77 | 'hostname' => (isset($dns['host'])) ? rawurldecode($dns['host']) : '',
78 | 'username' => (isset($dns['user'])) ? rawurldecode($dns['user']) : '',
79 | 'password' => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '',
80 | 'database' => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : ''
81 | );
82 |
83 | // were additional config items set?
84 | if (isset($dns['query']))
85 | {
86 | parse_str($dns['query'], $extra);
87 |
88 | foreach ($extra as $key => $val)
89 | {
90 | // booleans please
91 | if (strtoupper($val) == "TRUE")
92 | {
93 | $val = TRUE;
94 | }
95 | elseif (strtoupper($val) == "FALSE")
96 | {
97 | $val = FALSE;
98 | }
99 |
100 | $params[$key] = $val;
101 | }
102 | }
103 | }
104 |
105 | // No DB specified yet? Beat them senseless...
106 | if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '')
107 | {
108 | show_error('You have not selected a database type to connect to.');
109 | }
110 |
111 | // Load the DB classes. Note: Since the active record class is optional
112 | // we need to dynamically create a class that extends proper parent class
113 | // based on whether we're using the active record class or not.
114 | // Kudos to Paul for discovering this clever use of eval()
115 |
116 | if ($active_record_override !== NULL)
117 | {
118 | $active_record = $active_record_override;
119 | }
120 |
121 | require_once(BASEPATH.'database/DB_driver.php');
122 |
123 | if ( ! isset($active_record) OR $active_record == TRUE)
124 | {
125 | require_once(BASEPATH.'database/DB_active_rec.php');
126 |
127 | if ( ! class_exists('CI_DB'))
128 | {
129 | eval('class CI_DB extends CI_DB_active_record { }');
130 | }
131 | }
132 | else
133 | {
134 | if ( ! class_exists('CI_DB'))
135 | {
136 | eval('class CI_DB extends CI_DB_driver { }');
137 | }
138 | }
139 |
140 | require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php');
141 |
142 | // Instantiate the DB adapter
143 | $driver = 'CI_DB_'.$params['dbdriver'].'_driver';
144 | $DB = new $driver($params);
145 |
146 | if ($DB->autoinit == TRUE)
147 | {
148 | $DB->initialize();
149 | }
150 |
151 | if (isset($params['stricton']) && $params['stricton'] == TRUE)
152 | {
153 | $DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"');
154 | }
155 |
156 | return $DB;
157 | }
158 |
159 |
160 |
161 | /* End of file DB.php */
162 | /* Location: ./system/database/DB.php */
--------------------------------------------------------------------------------
/system/libraries/Cache/drivers/Cache_file.php:
--------------------------------------------------------------------------------
1 | load->helper('file');
39 |
40 | $path = $CI->config->item('cache_path');
41 |
42 | $this->_cache_path = ($path == '') ? APPPATH.'cache/' : $path;
43 | }
44 |
45 | // ------------------------------------------------------------------------
46 |
47 | /**
48 | * Fetch from cache
49 | *
50 | * @param mixed unique key id
51 | * @return mixed data on success/false on failure
52 | */
53 | public function get($id)
54 | {
55 | if ( ! file_exists($this->_cache_path.$id))
56 | {
57 | return FALSE;
58 | }
59 |
60 | $data = read_file($this->_cache_path.$id);
61 | $data = unserialize($data);
62 |
63 | if (time() > $data['time'] + $data['ttl'])
64 | {
65 | unlink($this->_cache_path.$id);
66 | return FALSE;
67 | }
68 |
69 | return $data['data'];
70 | }
71 |
72 | // ------------------------------------------------------------------------
73 |
74 | /**
75 | * Save into cache
76 | *
77 | * @param string unique key
78 | * @param mixed data to store
79 | * @param int length of time (in seconds) the cache is valid
80 | * - Default is 60 seconds
81 | * @return boolean true on success/false on failure
82 | */
83 | public function save($id, $data, $ttl = 60)
84 | {
85 | $contents = array(
86 | 'time' => time(),
87 | 'ttl' => $ttl,
88 | 'data' => $data
89 | );
90 |
91 | if (write_file($this->_cache_path.$id, serialize($contents)))
92 | {
93 | @chmod($this->_cache_path.$id, 0777);
94 | return TRUE;
95 | }
96 |
97 | return FALSE;
98 | }
99 |
100 | // ------------------------------------------------------------------------
101 |
102 | /**
103 | * Delete from Cache
104 | *
105 | * @param mixed unique identifier of item in cache
106 | * @return boolean true on success/false on failure
107 | */
108 | public function delete($id)
109 | {
110 | return unlink($this->_cache_path.$id);
111 | }
112 |
113 | // ------------------------------------------------------------------------
114 |
115 | /**
116 | * Clean the Cache
117 | *
118 | * @return boolean false on failure/true on success
119 | */
120 | public function clean()
121 | {
122 | return delete_files($this->_cache_path);
123 | }
124 |
125 | // ------------------------------------------------------------------------
126 |
127 | /**
128 | * Cache Info
129 | *
130 | * Not supported by file-based caching
131 | *
132 | * @param string user/filehits
133 | * @return mixed FALSE
134 | */
135 | public function cache_info($type = NULL)
136 | {
137 | return get_dir_file_info($this->_cache_path);
138 | }
139 |
140 | // ------------------------------------------------------------------------
141 |
142 | /**
143 | * Get Cache Metadata
144 | *
145 | * @param mixed key to get cache metadata on
146 | * @return mixed FALSE on failure, array on success.
147 | */
148 | public function get_metadata($id)
149 | {
150 | if ( ! file_exists($this->_cache_path.$id))
151 | {
152 | return FALSE;
153 | }
154 |
155 | $data = read_file($this->_cache_path.$id);
156 | $data = unserialize($data);
157 |
158 | if (is_array($data))
159 | {
160 | $mtime = filemtime($this->_cache_path.$id);
161 |
162 | if ( ! isset($data['ttl']))
163 | {
164 | return FALSE;
165 | }
166 |
167 | return array(
168 | 'expire' => $mtime + $data['ttl'],
169 | 'mtime' => $mtime
170 | );
171 | }
172 |
173 | return FALSE;
174 | }
175 |
176 | // ------------------------------------------------------------------------
177 |
178 | /**
179 | * Is supported
180 | *
181 | * In the file driver, check to see that the cache directory is indeed writable
182 | *
183 | * @return boolean
184 | */
185 | public function is_supported()
186 | {
187 | return is_really_writable($this->_cache_path);
188 | }
189 |
190 | // ------------------------------------------------------------------------
191 | }
192 | // End Class
193 |
194 | /* End of file Cache_file.php */
195 | /* Location: ./system/libraries/Cache/drivers/Cache_file.php */
--------------------------------------------------------------------------------
/application/views/landing.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 文库演示
6 |
7 |
8 |
9 |
10 |
11 |
文库演示
12 |
服务状态(10s检测一次, 使用 supervisor 监控.)
13 |
14 |
所有文件
15 |
16 | session->flashdata('msg')): ?>
17 |
18 |
19 |
20 | 上传格式:doc,docx,xls,xlsx,pdf,ppt,pptx,最大2M.
21 |
25 |
26 |
已上传文件列表
27 |
28 |
29 |
35 |
36 |
37 |
38 |
39 |
40 |
48 |
55 |
149 |
150 |
--------------------------------------------------------------------------------
/system/database/DB_cache.php:
--------------------------------------------------------------------------------
1 | CI
39 | // and load the file helper since we use it a lot
40 | $this->CI =& get_instance();
41 | $this->db =& $db;
42 | $this->CI->load->helper('file');
43 | }
44 |
45 | // --------------------------------------------------------------------
46 |
47 | /**
48 | * Set Cache Directory Path
49 | *
50 | * @access public
51 | * @param string the path to the cache directory
52 | * @return bool
53 | */
54 | function check_path($path = '')
55 | {
56 | if ($path == '')
57 | {
58 | if ($this->db->cachedir == '')
59 | {
60 | return $this->db->cache_off();
61 | }
62 |
63 | $path = $this->db->cachedir;
64 | }
65 |
66 | // Add a trailing slash to the path if needed
67 | $path = preg_replace("/(.+?)\/*$/", "\\1/", $path);
68 |
69 | if ( ! is_dir($path) OR ! is_really_writable($path))
70 | {
71 | // If the path is wrong we'll turn off caching
72 | return $this->db->cache_off();
73 | }
74 |
75 | $this->db->cachedir = $path;
76 | return TRUE;
77 | }
78 |
79 | // --------------------------------------------------------------------
80 |
81 | /**
82 | * Retrieve a cached query
83 | *
84 | * The URI being requested will become the name of the cache sub-folder.
85 | * An MD5 hash of the SQL statement will become the cache file name
86 | *
87 | * @access public
88 | * @return string
89 | */
90 | function read($sql)
91 | {
92 | if ( ! $this->check_path())
93 | {
94 | return $this->db->cache_off();
95 | }
96 |
97 | $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
98 |
99 | $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
100 |
101 | $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql);
102 |
103 | if (FALSE === ($cachedata = read_file($filepath)))
104 | {
105 | return FALSE;
106 | }
107 |
108 | return unserialize($cachedata);
109 | }
110 |
111 | // --------------------------------------------------------------------
112 |
113 | /**
114 | * Write a query to a cache file
115 | *
116 | * @access public
117 | * @return bool
118 | */
119 | function write($sql, $object)
120 | {
121 | if ( ! $this->check_path())
122 | {
123 | return $this->db->cache_off();
124 | }
125 |
126 | $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
127 |
128 | $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
129 |
130 | $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/';
131 |
132 | $filename = md5($sql);
133 |
134 | if ( ! @is_dir($dir_path))
135 | {
136 | if ( ! @mkdir($dir_path, DIR_WRITE_MODE))
137 | {
138 | return FALSE;
139 | }
140 |
141 | @chmod($dir_path, DIR_WRITE_MODE);
142 | }
143 |
144 | if (write_file($dir_path.$filename, serialize($object)) === FALSE)
145 | {
146 | return FALSE;
147 | }
148 |
149 | @chmod($dir_path.$filename, FILE_WRITE_MODE);
150 | return TRUE;
151 | }
152 |
153 | // --------------------------------------------------------------------
154 |
155 | /**
156 | * Delete cache files within a particular directory
157 | *
158 | * @access public
159 | * @return bool
160 | */
161 | function delete($segment_one = '', $segment_two = '')
162 | {
163 | if ($segment_one == '')
164 | {
165 | $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
166 | }
167 |
168 | if ($segment_two == '')
169 | {
170 | $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
171 | }
172 |
173 | $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/';
174 |
175 | delete_files($dir_path, TRUE);
176 | }
177 |
178 | // --------------------------------------------------------------------
179 |
180 | /**
181 | * Delete all existing cache files
182 | *
183 | * @access public
184 | * @return bool
185 | */
186 | function delete_all()
187 | {
188 | delete_files($this->db->cachedir, TRUE);
189 | }
190 |
191 | }
192 |
193 |
194 | /* End of file DB_cache.php */
195 | /* Location: ./system/database/DB_cache.php */
--------------------------------------------------------------------------------
/system/libraries/Parser.php:
--------------------------------------------------------------------------------
1 | load->view($template, $data, TRUE);
49 |
50 | return $this->_parse($template, $data, $return);
51 | }
52 |
53 | // --------------------------------------------------------------------
54 |
55 | /**
56 | * Parse a String
57 | *
58 | * Parses pseudo-variables contained in the specified string,
59 | * replacing them with the data in the second param
60 | *
61 | * @access public
62 | * @param string
63 | * @param array
64 | * @param bool
65 | * @return string
66 | */
67 | function parse_string($template, $data, $return = FALSE)
68 | {
69 | return $this->_parse($template, $data, $return);
70 | }
71 |
72 | // --------------------------------------------------------------------
73 |
74 | /**
75 | * Parse a template
76 | *
77 | * Parses pseudo-variables contained in the specified template,
78 | * replacing them with the data in the second param
79 | *
80 | * @access public
81 | * @param string
82 | * @param array
83 | * @param bool
84 | * @return string
85 | */
86 | function _parse($template, $data, $return = FALSE)
87 | {
88 | if ($template == '')
89 | {
90 | return FALSE;
91 | }
92 |
93 | foreach ($data as $key => $val)
94 | {
95 | if (is_array($val))
96 | {
97 | $template = $this->_parse_pair($key, $val, $template);
98 | }
99 | else
100 | {
101 | $template = $this->_parse_single($key, (string)$val, $template);
102 | }
103 | }
104 |
105 | if ($return == FALSE)
106 | {
107 | $CI =& get_instance();
108 | $CI->output->append_output($template);
109 | }
110 |
111 | return $template;
112 | }
113 |
114 | // --------------------------------------------------------------------
115 |
116 | /**
117 | * Set the left/right variable delimiters
118 | *
119 | * @access public
120 | * @param string
121 | * @param string
122 | * @return void
123 | */
124 | function set_delimiters($l = '{', $r = '}')
125 | {
126 | $this->l_delim = $l;
127 | $this->r_delim = $r;
128 | }
129 |
130 | // --------------------------------------------------------------------
131 |
132 | /**
133 | * Parse a single key/value
134 | *
135 | * @access private
136 | * @param string
137 | * @param string
138 | * @param string
139 | * @return string
140 | */
141 | function _parse_single($key, $val, $string)
142 | {
143 | return str_replace($this->l_delim.$key.$this->r_delim, $val, $string);
144 | }
145 |
146 | // --------------------------------------------------------------------
147 |
148 | /**
149 | * Parse a tag pair
150 | *
151 | * Parses tag pairs: {some_tag} string... {/some_tag}
152 | *
153 | * @access private
154 | * @param string
155 | * @param array
156 | * @param string
157 | * @return string
158 | */
159 | function _parse_pair($variable, $data, $string)
160 | {
161 | if (FALSE === ($match = $this->_match_pair($string, $variable)))
162 | {
163 | return $string;
164 | }
165 |
166 | $str = '';
167 | foreach ($data as $row)
168 | {
169 | $temp = $match['1'];
170 | foreach ($row as $key => $val)
171 | {
172 | if ( ! is_array($val))
173 | {
174 | $temp = $this->_parse_single($key, $val, $temp);
175 | }
176 | else
177 | {
178 | $temp = $this->_parse_pair($key, $val, $temp);
179 | }
180 | }
181 |
182 | $str .= $temp;
183 | }
184 |
185 | return str_replace($match['0'], $str, $string);
186 | }
187 |
188 | // --------------------------------------------------------------------
189 |
190 | /**
191 | * Matches a variable pair
192 | *
193 | * @access private
194 | * @param string
195 | * @param string
196 | * @return mixed
197 | */
198 | function _match_pair($string, $variable)
199 | {
200 | if ( ! preg_match("|" . preg_quote($this->l_delim) . $variable . preg_quote($this->r_delim) . "(.+?)". preg_quote($this->l_delim) . '/' . $variable . preg_quote($this->r_delim) . "|s", $string, $match))
201 | {
202 | return FALSE;
203 | }
204 |
205 | return $match;
206 | }
207 |
208 | }
209 | // END Parser Class
210 |
211 | /* End of file Parser.php */
212 | /* Location: ./system/libraries/Parser.php */
213 |
--------------------------------------------------------------------------------