ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/trunk/webapp/modules/portal/page/user_top.php @ 6630

Last change on this file since 6630 was 6630, checked in by ogawa, 14 years ago

#2266:deprecated_libで定義されている旧関数を使わないようにする

File size: 8.6 KB
Line 
1<?php
2
3class portal_page_user_top extends OpenPNE_Action
4{
5    function isSecure()
6    {
7        return false;
8    }
9
10    function execute($requests)
11    {
12
13        $use_portal = $this->_get_portal_config(PORTAL_CONFIG_USE_PORTAL);
14        if (!isset($use_portal) || $use_portal['value'] == '0') {
15            openpne_redirect('pc');
16        }
17
18        // ヘッダ表示テキスト取得
19        $head_text_type = $this->_get_portal_config(PORTAL_CONFIG_HEAD_TEXT_TYPE);
20
21        if (!$head_text_type) {
22            $head_text_type = PORTAL_CONFIG_HEAD_TEXT_TYPE_SNS;
23        }
24
25        if ($head_text_type == PORTAL_CONFIG_HEAD_TEXT_TYPE_MANUAL) {
26            $head_text = $this->_get_portal_config( PORTAL_CONFIG_HEAD_TEXT );
27        } else {
28            $head_text = SNS_NAME;
29        }
30
31        if (SNS_TITLE) {
32            $title = SNS_TITLE;
33        } else {
34            $title = SNS_NAME;
35        }
36
37        //レイアウト設定
38        $layout_type = $this->_get_portal_config(PORTAL_CONFIG_LAYOUT_TYPE);
39        if (strlen($layout_type) == 0 || !is_numeric(intval($layout_type))) {
40            $layout_type = "1";
41        }
42
43        //配色設定
44        $color_type = $this->_get_portal_config(PORTAL_CONFIG_COLOR_TYPE);
45        if (strlen($color_type) == 0) {
46            $color_type = "default";
47        }
48        // CSS
49        $custom_css = $this->_get_portal_config(PORTAL_CONFIG_CUSTOM_CSS);
50        // meta タグ
51        $meta_description = $this->_get_portal_config(PORTAL_CONFIG_META_DESCRIPTION);
52        $meta_keywords = $this->_get_portal_config(PORTAL_CONFIG_META_KEYWORDS);
53
54        $top = array();
55        $left = array();
56        $right = array();
57        $bottom = array();
58
59        $layout_list = db_portal_layout_order_by_position();
60
61        foreach ($layout_list as $layout) {
62            $pos = $layout['position'];
63            $name = $layout['content_name'];
64
65            $content = $this->get_contents($name);
66            $content['is_image'] = $layout['is_image'];
67
68            if ($pos >= 10 && $pos < 20) {
69                $top[] = $content;
70            } else if($pos >= 20 && $pos < 30) {
71                $left[] = $content;
72            } else if($pos >= 30 && $pos < 40) {
73                $right[] = $content;
74            } else if($pos >= 40 && $pos < 50) {
75                $bottom[] = $content;
76            }
77        }
78
79        if ($color_type == 'no_image') {
80            $preset_color = util_get_preset_color_list();
81            $default_color_id = 7;
82            $default_color = $preset_color[$default_color_id];
83            $this->set('color_config', $default_color);
84        }
85
86        $this->set('title', $title);
87        $this->set('head_text', $head_text);
88        $this->set('layout_type', $layout_type);
89        $this->set('color_type', $color_type);
90        $this->set('custom_css', $custom_css);
91        $this->set('meta_description', $meta_description);
92        $this->set('meta_keywords', $meta_keywords);
93
94        $this->set('top', $top);
95        $this->set('left', $left);
96        $this->set('right', $right);
97        $this->set('bottom', $bottom);
98
99        return 'success';
100    }
101
102    function get_contents($name)
103    {
104        $config = array();
105
106        switch ($name) {
107        case PORTAL_LAYOUT_COMMUNITY:
108            $config['kind'] = PORTAL_LAYOUT_COMMUNITY;
109            $config['contents'] = db_portal_public_c_commmu_list(5);
110            break;
111        case PORTAL_LAYOUT_REVIEW:
112            $config['kind'] = PORTAL_LAYOUT_REVIEW;
113            $config['contents'] = array_shift(monitor_review_list('', 5, 1));
114            break;
115        case PORTAL_LAYOUT_ACCESS_RANKING:
116            $config['kind'] = PORTAL_LAYOUT_ACCESS_RANKING;
117            $config['contents'] = $this->_getRanking('ashiato');
118            break;
119        case PORTAL_LAYOUT_COMMUNITY_RANKING:
120            $config['kind'] = PORTAL_LAYOUT_COMMUNITY_RANKING;
121            $config['contents'] = $this->_getRanking('com_comment');
122            break;
123        case PORTAL_LAYOUT_EVENT:
124            $config['kind'] = PORTAL_LAYOUT_EVENT;
125            $config['contents'] = $this->_get_event();
126            break;
127        case PORTAL_LAYOUT_RSS1:
128            $config['kind'] = PORTAL_LAYOUT_RSS1;
129            $config['contents'] = $this->_get_rss_feed(1);
130            break;
131        case PORTAL_LAYOUT_RSS2:
132            $config['kind'] = PORTAL_LAYOUT_RSS2;
133            $config['contents'] = $this->_get_rss_feed(2);
134            break;
135        case PORTAL_LAYOUT_RSS3:
136            $config['kind'] = PORTAL_LAYOUT_RSS3;
137            $config['contents'] = $this->_get_rss_feed(3);
138            break;
139        case PORTAL_LAYOUT_RSS4:
140            $config['kind'] = PORTAL_LAYOUT_RSS4;
141            $config['contents'] = $this->_get_rss_feed(4);
142            break;
143        case PORTAL_LAYOUT_RSS5:
144            $config['kind'] = PORTAL_LAYOUT_RSS5;
145            $config['contents'] = $this->_get_rss_feed(5);
146            break;
147        case PORTAL_LAYOUT_FREE1:
148            $config['kind'] = PORTAL_LAYOUT_FREE1;
149            $config['contents'] = $this->_get_free_area(1);
150            break;
151        case PORTAL_LAYOUT_FREE2:
152            $config['kind'] = PORTAL_LAYOUT_FREE2;
153            $config['contents'] = $this->_get_free_area(2);
154            break;
155        case PORTAL_LAYOUT_FREE3:
156            $config['kind'] = PORTAL_LAYOUT_FREE3;
157            $config['contents'] = $this->_get_free_area(3);
158            break;
159        case PORTAL_LAYOUT_FREE4:
160            $config['kind'] = PORTAL_LAYOUT_FREE4;
161            $config['contents'] = $this->_get_free_area(4);
162            break;
163        case PORTAL_LAYOUT_FREE5:
164            $config['kind'] = PORTAL_LAYOUT_FREE5;
165            $config['contents'] = $this->_get_free_area(5);
166            break;
167        case PORTAL_LAYOUT_LINK :
168            $config['kind'] = PORTAL_LAYOUT_LINK;
169            $portal_link = db_portal_get_portal_link();
170            foreach ($portal_link as $key => $link) {
171                if (!$link['is_enabled']) {
172                    unset($portal_link[$key]);
173                    continue;
174                }
175            }
176            $config['contents'] = $portal_link;
177        default:
178            break;
179        }
180
181        return $config;
182    }
183
184    function _get_portal_config($portal_config_name)
185    {
186        $data = db_portal_config($portal_config_name);
187
188        if (!isset($data)) {
189            return "";
190        }
191        return $data['value'];
192    }
193
194    function _get_rss_feed($portal_rss_id)
195    {
196        $data = db_portal_portal_rss($portal_rss_id);
197
198        if (!$data || strlen(trim($data['url'])) == 0) {
199            return "";
200        }
201
202        require_once 'OpenPNE/RSS.php';
203        $parser = new OpenPNE_RSS();
204        $result = @$parser->fetch($data['url'], true);
205
206        if (!$result) {
207            return array();
208        }
209
210        foreach ($result[1] as $key => $content) {
211            $image_url = '';
212            $enc_type = $content['enclosure']->type;
213
214            if ($enc_type == 'image/jpeg' || $enc_type == 'image/png' || $enc_type == 'image/gif') {
215                $image_url = $content['enclosure']->link;
216            }
217
218            $result[1][$key]['image_url'] = $image_url;
219        }
220
221        return $result;
222    }
223
224    function _get_free_area($portal_free_area_id)
225    {
226        $data = db_portal_portal_free_area($portal_free_area_id);
227
228        return $data['html'];
229    }
230
231    function _get_event()
232    {
233        $data = db_portal_c_commu_event(date('Y-m-d', time()), 0, 5);
234
235        return $data;
236    }
237
238    function _getRanking($kind)
239    {
240        $limit = 5;
241        switch ($kind) {
242        case "com_comment":
243            $list = pne_cache_call(3600, 'db_ranking_c_commu_topic_comment_ranking', $limit);
244            foreach ($list as $key => $value) {
245                $list[$key]['c_commu'] = db_commu_c_commu4c_commu_id($value['c_commu_id']);
246            }
247            break;
248        case "ashiato":
249        default:
250            $list = pne_cache_call(3600, 'db_ranking_c_ashiato_ranking', $limit);
251            foreach ($list as $key => $value) {
252                $list[$key]['c_member'] = db_member_c_member_with_profile($value['c_member_id']);
253                if (!$list[$key]['c_member']) {
254                    unset($list[$key]);
255                }
256            }
257            break;
258        }
259        $rank_list = array();
260        if ($list) {
261            $rank = 1;
262            $current_count = null;
263            foreach ($list as $item) {
264                if ($item['count'] != $current_count) {
265                    $rank = $rank + count($rank_list[$rank]);
266                    $current_count = $item['count'];
267                }
268                $rank_list[$rank][] = $item;
269            }
270        }
271        return $rank_list;
272    }
273
274}
275
276?>
Note: See TracBrowser for help on using the repository browser.