Plugin.class.php
2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* Plugin.class.php
* 应用公共处理类
*
* @author Deepseath
* @version $Id$
* @copyright vchangyi.com
*/
namespace Com;
use Think\Model as ThinkPHPModel;
class Plugin
{
/**
* 导入默认数据
*
* @param array $data (引用结果)要导入的数据,为空则导入默认数据。
* 数据结构可见:/[APP]/Common/Sql/data.php
*
* @return boolean
*/
public function importDefaultData(array &$data = array())
{
if (empty($data)) {
// 未定义导入的数据,则读取默认数据
$file = PLUGIN_PATH . 'Common' . D_S . 'Sql' . D_S . 'data.php';
$data = load_config($file);
}
if (empty($data) || ! is_array($data)) {
// 空数据则直接返回
return true;
}
// 遍历数据数组,拼凑 SQL 语句
foreach ($data as $_table => $_data) {
$model = new ThinkPHPModel($_table);
foreach ($_data as $__data) {
$_field = $_val = '';
$_sql = array();
$_params = array();
// 加入数据状态
if (! isset($__data['status'])) {
$__data['status'] = Model::ST_CREATE;
}
// 加入数据创建时间
if (! isset($__data['created'])) {
$__data['created'] = NOW_TIME;
}
// 加入数据更新时间
if (! isset($__data['updated'])) {
$__data['updated'] = NOW_TIME;
}
// 加入企业标识
if (! isset($__data['domain'])) {
$__data['domain'] = QY_DOMAIN;
}
// 构造查询字段数组
foreach ($__data as $_field => $_val) {
$_sql[] = "`{$_field}`=?";
$_params[] = $_val;
}
$model->execsql("REPLACE INTO __TABLE__ SET " . implode(', ', $_sql), $_params);
}
unset($__data, $_field, $_sql, $_params);
}
unset($_data, $_table);
return true;
}
}