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

source: OpenPNE3/trunk/apps/pc_frontend/modules/member/actions/actions.class.php @ 9593

Last change on this file since 9593 was 9593, checked in by ebihara, 14 years ago

fixed a member doesn't link with another one is invited from he/she

File size: 5.7 KB
Line 
1<?php
2
3/**
4 * member actions.
5 *
6 * @package    OpenPNE
7 * @subpackage member
8 * @author     Kousuke Ebihara <ebihara@tejimaya.com>
9 */
10class memberActions extends sfOpenPNEMemberAction
11{
12 /**
13  * Executes home action
14  *
15  * @param sfRequest $request A request object
16  */
17  public function executeHome($request)
18  {
19    $this->widgetConfig = sfConfig::get('op_widget_list');
20    $layout = SnsConfigPeer::retrieveByName('home_layout');
21    if ($layout)
22    {
23      $this->setLayout($layout->getValue());
24    }
25
26    if (!$layout || $layout->getValue() === 'layoutA')
27    {
28      $this->topWidgets = HomeWidgetPeer::retrieveTopWidgets();
29    }
30    if (!$layout || $layout->getValue() === 'layoutA' || $layout->getValue() === 'layoutB')
31    {
32      $this->sideMenuWidgets = HomeWidgetPeer::retrieveSideMenuWidgets();
33    }
34    $this->contentsWidgets = HomeWidgetPeer::retrieveContentsWidgets();
35
36    return parent::executeHome($request);
37  }
38
39 /**
40  * Executes list action
41  *
42  * @param sfRequest $request A request object
43  */
44  public function executeList($request)
45  {
46    $this->pager = new sfPropelPager('Member', 20);
47    $this->pager->setPage($request->getParameter('page', 1));
48    $this->pager->init();
49
50    return sfView::SUCCESS;
51  }
52
53 /**
54  * Executes profile action
55  *
56  * @param sfRequest $request A request object
57  */
58  public function executeProfile($request)
59  {
60    if ($request->hasParameter('id') && $request->getParameter('id') != $this->getUser()->getMemberId())
61    {
62      sfConfig::set('sf_navi_type', 'friend');
63    }
64
65    return parent::executeProfile($request);
66  }
67
68 /**
69  * Executes config action
70  *
71  * @param sfRequest $request A request object
72  */
73  public function executeConfig($request)
74  {
75    $this->categories = sfConfig::get('openpne_member_category');
76    $this->categoryName = $request->getParameter('category', 'general');
77    $this->forward404Unless(array_key_exists($this->categoryName, $this->categories), 'Undefined category');
78
79    $formClass = 'MemberConfig'.ucfirst($this->categoryName).'Form';
80    $this->form = new $formClass($this->getUser()->getMember());
81
82    if ($request->isMethod('post'))
83    {
84      $this->form->bind($request->getParameter('member_config'));
85      if ($this->form->isValid())
86      {
87        $this->form->save($this->getUser()->getMemberId());
88        $this->redirect('member/config?category='.$this->categoryName);
89      }
90    }
91
92    return sfView::SUCCESS;
93  }
94
95 /**
96  * Executes config complete action
97  *
98  * @param sfRequest $request A request object
99  */
100  public function executeConfigComplete($request)
101  {
102    $type = $request->getParameter('type');
103    $this->forward404Unless($type);
104
105    $memberId = $request->getParameter('id');
106
107    $memberConfig = MemberConfigPeer::retrieveByNameAndMemberId($type.'_token', $memberId);
108    $this->forward404Unless($memberConfig);
109    $this->forward404Unless((bool)$request->getParameter('token') !== $memberConfig->getValue());
110
111    $option = array('member' => $memberConfig->getMember());
112    $this->form = new sfOpenPNEPasswordForm(array(), $option);
113
114    if ($request->isMethod('post')) {
115      $this->form->bind($request->getParameter('password'));
116      if ($this->form->isValid()) {
117        $config = MemberConfigPeer::retrieveByNameAndMemberId($type, $memberId);
118        $pre = MemberConfigPeer::retrieveByNameAndMemberId($type.'_pre', $memberId);
119
120        if (!$config) {
121          $config = new MemberConfig();
122          $config->setName($type);
123        }
124
125        $config->setValue($pre->getValue());
126
127        if ($config->save()) {
128          $pre->delete();
129          $token = MemberConfigPeer::retrieveByNameAndMemberId($type.'_token', $memberId);
130          $token->delete();
131        }
132
133        $this->redirect('member/home');
134      }
135    }
136
137    return sfView::SUCCESS;
138  }
139
140 /**
141  * Executes invite action
142  *
143  * @param sfRequest $request A request object
144  */
145  public function executeInvite($request)
146  {
147    $this->form = new InviteForm();
148    $this->form->setOption('is_link', true);
149    if ($request->isMethod('post'))
150    {
151      $this->form->bind($request->getParameter('member_config'));
152      if ($this->form->isValid())
153      {
154        $this->form->save();
155
156        return sfView::SUCCESS;
157      }
158    }
159
160    return sfView::INPUT;
161  }
162
163 /**
164  * Executes configImage action
165  *
166  * @param sfRequest $request A request object
167  */
168  public function executeConfigImage($request)
169  {
170    if ($request->isXmlHttpRequest())
171    {
172      $this->setLayout('plain');
173    }
174
175    $options = array('member' => $this->getUser()->getMember());
176    $this->form = new MemberImageForm(array(), $options);
177
178    if ($request->isMethod('post'))
179    {
180      $this->form->bindAndSave($request->getParameter('member_image'), $request->getFiles('member_image'));
181      $this->redirect('member/configImage');
182    }
183  }
184
185 /**
186  * Executes deleteImage action
187  *
188  * @param sfRequest $request A request object
189  */
190  public function executeDeleteImage($request)
191  {
192    $image = MemberImagePeer::retrieveByPk($request->getParameter('member_image_id'));
193    $this->forward404Unless($image);
194    $this->forward404Unless($image->getMemberId() == $this->getUser()->getMemberId());
195
196    $image->delete();
197
198    $this->redirect('member/configImage');
199  }
200
201 /**
202  * Executes changeMainImage action
203  *
204  * @param sfRequest $request A request object
205  */
206  public function executeChangeMainImage($request)
207  {
208    $image = MemberImagePeer::retrieveByPk($request->getParameter('member_image_id'));
209    $this->forward404Unless($image);
210    $this->forward404Unless($image->getMemberId() == $this->getUser()->getMemberId());
211
212    $currentImage = $this->getUser()->getMember()->getImage();
213    $currentImage->setIsPrimary(false);
214    $currentImage->save();
215    $image->setIsPrimary(true);
216    $image->save();
217
218    $this->redirect('member/configImage');
219  }
220}
Note: See TracBrowser for help on using the repository browser.