-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLinkFrameSettingController.php
More file actions
117 lines (100 loc) · 2.85 KB
/
LinkFrameSettingController.php
File metadata and controls
117 lines (100 loc) · 2.85 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
<?php
/**
* Links Controller
*
* @author Ryuji AMANO <ryuji@ryus.co.jp>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('LinksAppController', 'Links.Controller');
/**
* Links Controller
*
* @author Ryuji AMANO <ryuji@ryus.co.jp>
* @package NetCommons\Links\Controller
*
* @property LinkFrameSetting $LinkFrameSetting
*/
class LinkFrameSettingController extends LinksAppController {
public $helpers = array('Links.LinksStatus');
/**
* use model
*
* @var array
*/
public $uses = array(
'Links.LinkFrameSetting',
);
/**
* use component
*
* @var array
*/
public $components = array(
'NetCommons.NetCommonsBlock', //use Announcement model
'NetCommons.NetCommonsFrame',
'NetCommons.NetCommonsRoomRole',
);
/**
* beforeFilter
*
* @return void
*/
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow();
$frameId = (isset($this->params['pass'][0]) ? (int)$this->params['pass'][0] : 0);
//Frameのデータをviewにセット
if (! $this->NetCommonsFrame->setView($this, $frameId)) {
$this->response->statusCode(400);
return;
}
//Roleのデータをviewにセット
if (! $this->NetCommonsRoomRole->setView($this)) {
$this->response->statusCode(400);
return;
}
}
public function get($frameId = 0) {
$linkFrameSetting = $this->LinkFrameSetting->getByFrameId($frameId);
$this->set('linkFrameSetting', $linkFrameSetting['LinkFrameSetting']);
$this->set('_serialize', 'linkFrameSetting');
return $this->render(false);
}
public function form($frameId = 0) {
$this->set(compact('frameId'));
$linkFrameSetting = $this->LinkFrameSetting->getByFrameId($frameId);
$this->set(compact('linkFrameSetting'));
}
public function edit($frameId) {
if (! $this->request->isPost()) {
throw new MethodNotAllowedException();
}
//保存
if ($this->LinkFrameSetting->save($this->data)) {
$result = array(
'name' => __d('net_commons', 'Successfully finished.'),
'link' => $this->data,
);
$this->set(compact('result'));
$this->set('_serialize', 'result');
return $this->render(false);
} else {
$error = __d('net_commons', 'Failed to register data.');
$error .= $this->formatValidationErrors($this->LinkFrameSetting->validationErrors);
throw new ForbiddenException($error);
}
}
// MyTodo モデルに移動するか、ヘルパかコンポーネントかビヘイビアにする… ->beforeValidate
protected function formatValidationErrors($validationErrors) {
$errors = array();
foreach($validationErrors as $field => $fieldErrors){
foreach($fieldErrors as $errorMessage){
$errors[] = __d('links', $field) . ':' . __d('links', $errorMessage);
}
}
$returnMessage = implode("\n", $errors);
return $returnMessage;
}
}