-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMultidatabaseFrameSetting.php
More file actions
131 lines (115 loc) · 2.82 KB
/
MultidatabaseFrameSetting.php
File metadata and controls
131 lines (115 loc) · 2.82 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* MultidatabaseFrameSetting Model
* 汎用データベースフレーム設定に関するモデル処理
*
* @author Noriko Arai <arai@nii.ac.jp>
* @author Tomoyuki OHNO (Ricksoft Co., Ltd.) <ohno.tomoyuki@ricksoft.jp>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('MultidatabasesAppModel', 'Multidatabases.Model');
/**
* MultidatabaseFrameSetting Model
*
* @author Tomoyuki OHNO (Ricksoft, Co., Ltd.) <ohno.tomoyuki@ricksoft.jp>
* @package NetCommons\Multidatabases\Model
*
*/
class MultidatabaseFrameSetting extends MultidatabasesAppModel {
/**
* Validation rules
*
* @var array
*/
public $validate = [];
/**
* Before validate
*
* @param array $options オプション
* @return bool
*/
public function beforeValidate($options = []) {
$this->validate = [
'frame_key' => [
'notBlank' => [
'rule' => ['notBlank'],
'message' => __d('net_commons', 'Invalid request.'),
'required' => true,
],
],
'content_per_page' => [
'number' => [
'rule' => ['notBlank'],
'message' => __d('net_commons', 'Invalid request.'),
'required' => true,
],
],
'default_sort_type' => [
'notBlank' => [
'rule' => ['notBlank'],
'message' => __d('net_commons', 'Invalid request.'),
'required' => true,
],
],
];
return parent::beforeValidate($options);
//The Associations below have been created with all possible keys, those that are not needed can be removed
}
/**
* Get frame setting
* フレーム設定を取得する
*
* @return array|null
*/
public function getMultidatabaseFrameSetting() {
$conditions = [
'frame_key' => Current::read('Frame.key'),
];
$frameSetting = $this->find('first', [
'recursive' => -1,
'conditions' => $conditions,
]
);
if (!$frameSetting) {
$frameSetting = $this->create([
'frame_key' => Current::read('Frame.key'),
]);
}
return $frameSetting;
}
/**
* Save frame setting
* フレーム設定を保存する
*
* @param array $data データ
* @return bool
* @throws InternalErrorException
*/
public function saveMultidatabaseFrameSetting($data) {
$this->loadModels([
'MultidatabaseFrameSetting' => 'Multidatabases.MultidatabaseFrameSetting',
]);
//トランザクションBegin
$this->begin();
//バリデーション
$this->set($data);
if (!$this->validates()) {
$this->rollback();
return false;
}
try {
//登録処理
if (!$this->save(null, false)) {
throw new InternalErrorException(__d('net_commons', 'Internal Server Error'));
}
//トランザクションCommit
$this->commit();
} catch (Exception $ex) {
//トランザクションRollback
$this->rollback($ex);
}
return true;
}
}