-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathBlogsAppController.php
More file actions
executable file
·120 lines (106 loc) · 2.34 KB
/
BlogsAppController.php
File metadata and controls
executable file
·120 lines (106 loc) · 2.34 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
<?php
/**
* BlogsApp
*/
App::uses('AppController', 'Controller');
/**
* Class BlogsAppController
*
* @property Blog $Blog
* @property BlogFrameSetting $BlogFrameSetting
* @property BlogSetting $BlogSetting
* @property Block $Block
*/
class BlogsAppController extends AppController {
/**
* @var array ブログ名
*/
protected $_blogTitle;
/**
* @var array ブログ設定
*/
protected $_blogSetting;
/**
* @var array フレーム設定
*/
protected $_frameSetting;
/**
* use components
*
* @var array
*/
public $components = array(
//'NetCommons.NetCommonsBlock',
//'NetCommons.NetCommonsFrame',
'Pages.PageLayout',
'Security',
);
/**
* @var array use model
*/
public $uses = array(
'Blogs.Blog',
'Blogs.BlogSetting',
'Blogs.BlogFrameSetting'
);
/**
* ブロック名をブログタイトルとしてセットする
*
* @return void
*/
protected function _setupBlogTitle() {
$this->loadModel('Blocks.Block');
$block = $this->Block->find('first', array(
'recursive' => 0,
'fields' => ['BlocksLanguage.name'],
'conditions' => array(
'Block.id' => Current::read('Block.id')
)
));
$this->_blogTitle = isset($block['BlocksLanguage']['name'])
? $block['BlocksLanguage']['name']
: '';
}
/**
* フレーム設定を読みこむ
*
* @return void
*/
protected function _loadFrameSetting() {
$this->_frameSetting = $this->BlogFrameSetting->getBlogFrameSetting();
}
/**
* 設定等の呼び出し
*
* @return void
*/
protected function _prepare() {
$this->_setupBlogTitle();
$this->_initBlog(['blogSetting']);
$this->_loadFrameSetting();
}
/**
* initBlog
*
* @param array $contains Optional result sets
* @return bool True on success, False on failure
*/
protected function _initBlog($contains = []) {
$blog = $this->Blog->getBlog();
if (! $blog) {
return $this->throwBadRequest();
}
$this->_blogTitle = $blog['Blog']['name'];
$this->set('blog', $blog);
if (! $blogSetting = $this->BlogSetting->getBlogSetting()) {
$blogSetting = $this->BlogSetting->createBlockSetting();
$blogSetting['BlogSetting']['blog_key'] = null;
} else {
$blogSetting['BlogSetting']['blog_key'] = $blog['Blog']['key'];
}
$this->_blogSetting = $blogSetting;
$this->set('blogSetting', $blogSetting['BlogSetting']);
$this->set('userId', (int)$this->Auth->user('id'));
return true;
}
}