예제 #1
0
 public function updateprivacyAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $request = $this->getRequest()->getParams();
     if (isset($this->authIdentity) && !empty($request['types'])) {
         $a = serialize(array());
         $parametertypes = array('scribbles', 'statures', 'admires', 'videos', 'images', 'messages');
         if ($request['types'] != 'all') {
             $privacy_parameters = array_intersect($parametertypes, explode(',', $request['types']));
         }
         $privacys['scribbles'] = array('postspeci' => $a, 'posthidden' => $a, 'postspecificpeople' => $a, 'postignore' => $a);
         $privacys['statures'] = array('staturespeci' => $a, 'staturehidden' => $a, 'staturespecificpeople' => $a, 'statureignore' => $a);
         $privacys['admires'] = array('testyspeci' => $a, 'testyhidden' => $a, 'testyspecificpeople' => $a, 'testyignore' => $a);
         $privacys['videos'] = array('videospeci' => $a, 'videohidden' => $a, 'videospecificpeople' => $a, 'videoignore' => $a);
         $privacys['images'] = array('albumspeci' => $a, 'albumhidden' => $a, 'albumspecificpeople' => $a, 'albumignore' => $a);
         $privacys['messages'] = array('messagespecificpeople' => $a, 'messageignore' => $a);
         $privacy_types = array('public', 'friends', 'private', 'fof', 'specific');
         $privacy = array();
         foreach ($privacy_parameters as $parameter) {
             $privacy = array_merge($privacy, $privacys[$parameter]);
         }
         if (in_array('scribbles', $privacy_parameters)) {
             if (isset($request['scribblesview']) && in_array($request['scribblesview'], $privacy_types)) {
                 switch ($request['scribblesview']) {
                     case 'specific':
                         unset($request['scribblesviewhidden']);
                         break;
                     case 'private':
                         unset($request['scribblesviewhidden']);
                         unset($request['scribblesviewspecific']);
                         break;
                     default:
                         unset($request['scribblesviewspecific']);
                 }
                 $privacy['postvisi'] = $request['scribblesview'];
             }
             if (!empty($request['scribblesviewspecific'])) {
                 $privacy['postspeci'] = serialize(explode(',', $request['scribblesviewspecific']));
             }
             if (!empty($request['scribblesviewhidden'])) {
                 $privacy['posthidden'] = serialize(explode(',', $request['scribblesviewhidden']));
             }
             if (!empty($request['scribblescomment']) && in_array($request['scribblescomment'], $privacy_types)) {
                 switch ($request['scribblescomment']) {
                     case 'specific':
                         unset($request['scribblescommentignore']);
                         break;
                     case 'private':
                         unset($request['scribblescommentignore']);
                         unset($request['scribblescommentspecific']);
                         break;
                     default:
                         unset($request['scribblescommentspecific']);
                 }
                 $privacy['post'] = $request['scribblescomment'];
             }
             if (!empty($request['scribblescommentspecific'])) {
                 $privacy['postspecificpeople'] = serialize(explode(',', $request['scribblescommentspecific']));
             }
             if (!empty($request['scribblescommentignore'])) {
                 $privacy['postignore'] = serialize(explode(',', $request['scribblescommentignore']));
             }
         }
         if (in_array('statures', $privacy_parameters)) {
             if (isset($request['statureview']) && in_array($request['statureview'], $privacy_types)) {
                 switch ($request['statureview']) {
                     case 'specific':
                         unset($request['statureviewhidden']);
                         break;
                     case 'private':
                         unset($request['statureviewhidden']);
                         unset($request['statureviewspecific']);
                         break;
                     default:
                         unset($request['statureviewspecific']);
                 }
                 $privacy['staturevisi'] = $request['statureview'];
             }
             if (!empty($request['statureviewspecific'])) {
                 $privacy['staturespeci'] = serialize(explode(',', $request['statureviewspecific']));
             }
             if (!empty($request['statureviewhidden'])) {
                 $privacy['staturehidden'] = serialize(explode(',', $request['statureviewhidden']));
             }
             if (!empty($request['staturecomment']) && in_array($request['staturecomment'], $privacy_types)) {
                 switch ($request['staturecomment']) {
                     case 'specific':
                         unset($request['staturecommentignore']);
                         break;
                     case 'private':
                         unset($request['staturecommentignore']);
                         unset($request['staturecommentspecific']);
                         break;
                     default:
                         unset($request['staturecommentspecific']);
                 }
                 $privacy['stature'] = $request['staturecomment'];
             }
             if (!empty($request['staturecommentspecific'])) {
                 $privacy['staturespecificpeople'] = serialize(explode(',', $request['staturecommentspecific']));
             }
             if (!empty($request['staturecommentignore'])) {
                 $privacy['statureignore'] = serialize(explode(',', $request['staturecommentignore']));
             }
         }
         if (in_array('admires', $privacy_parameters)) {
             if (isset($request['admireview']) && in_array($request['admireview'], $privacy_types)) {
                 switch ($request['admireview']) {
                     case 'specific':
                         unset($request['admireviewhidden']);
                         break;
                     case 'private':
                         unset($request['admireviewhidden']);
                         unset($request['admireviewspecific']);
                         break;
                     default:
                         unset($request['admireviewspecific']);
                 }
                 $privacy['testyvisi'] = $request['admireview'];
             }
             if (!empty($request['admireviewspecific'])) {
                 $privacy['testyspeci'] = serialize(explode(',', $request['admireviewspecific']));
             }
             if (!empty($request['admireviewhidden'])) {
                 $privacy['testyhidden'] = serialize(explode(',', $request['admireviewhidden']));
             }
             if (!empty($request['admirecomment']) && in_array($request['admirecomment'], $privacy_types)) {
                 switch ($request['admirecomment']) {
                     case 'specific':
                         unset($request['admirecommentignore']);
                         break;
                     case 'private':
                         unset($request['admirecommentignore']);
                         unset($request['admirecommentspecific']);
                         break;
                     default:
                         unset($request['admirecommentspecific']);
                 }
                 $privacy['testy'] = $request['admirecomment'];
             }
             if (!empty($request['admirecommentspecific'])) {
                 $privacy['testyspecificpeople'] = serialize(explode(',', $request['admirecommentspecific']));
             }
             if (!empty($request['admirecommentignore'])) {
                 $privacy['testyignore'] = serialize(explode(',', $request['admirecommentignore']));
             }
         }
         if (in_array('videos', $privacy_parameters)) {
             if (isset($request['videoview']) && in_array($request['videoview'], $privacy_types)) {
                 switch ($request['videoview']) {
                     case 'specific':
                         unset($request['videoviewhidden']);
                         break;
                     case 'private':
                         unset($request['videoviewhidden']);
                         unset($request['videoviewspecific']);
                         break;
                     default:
                         unset($request['videoviewspecific']);
                 }
                 $privacy['videovisi'] = $request['videoview'];
             }
             if (!empty($request['videoviewspecific'])) {
                 $privacy['videospeci'] = serialize(explode(',', $request['videoviewspecific']));
             }
             if (!empty($request['videoviewhidden'])) {
                 $privacy['videohidden'] = serialize(explode(',', $request['videoviewhidden']));
             }
             if (!empty($request['videocomment']) && in_array($request['videocomment'], $privacy_types)) {
                 switch ($request['videocomment']) {
                     case 'specific':
                         unset($request['videocommentignore']);
                         break;
                     case 'private':
                         unset($request['videocommentignore']);
                         unset($request['videocommentspecific']);
                         break;
                     default:
                         unset($request['videocommentspecific']);
                 }
                 $privacy['video'] = $request['videocomment'];
             }
             if (!empty($request['videocommentspecific'])) {
                 $privacy['videospecificpeople'] = serialize(explode(',', $request['videocommentspecific']));
             }
             if (!empty($request['videocommentignore'])) {
                 $privacy['videoignore'] = serialize(explode(',', $request['videocommentignore']));
             }
         }
         if (in_array('images', $privacy_parameters)) {
             if (isset($request['imageview']) && in_array($request['imageview'], $privacy_types)) {
                 switch ($request['imageview']) {
                     case 'specific':
                         unset($request['imageviewhidden']);
                         break;
                     case 'private':
                         unset($request['imageviewhidden']);
                         unset($request['imageviewspecific']);
                         break;
                     default:
                         unset($request['imageviewspecific']);
                 }
                 $privacy['albumvisi'] = $request['imageview'];
             }
             if (!empty($request['imageviewspecific'])) {
                 $privacy['albumspeci'] = serialize(explode(',', $request['imageviewspecific']));
             }
             if (!empty($request['imageviewhidden'])) {
                 $privacy['albumhidden'] = serialize(explode(',', $request['imageviewhidden']));
             }
             if (!empty($request['imagecomment']) && in_array($request['imagecomment'], $privacy_types)) {
                 switch ($request['imagecomment']) {
                     case 'specific':
                         unset($request['imagecommentignore']);
                         break;
                     case 'private':
                         unset($request['imagecommentignore']);
                         unset($request['imagecommentspecific']);
                         break;
                     default:
                         unset($request['imagecommentspecific']);
                 }
                 $privacy['album'] = $request['imagecomment'];
             }
             if (!empty($request['imagecommentspecific'])) {
                 $privacy['albumspecificpeople'] = serialize(explode(',', $request['imagecommentspecific']));
             }
             if (!empty($request['imagecommentignore'])) {
                 $privacy['albumignore'] = serialize(explode(',', $request['imagecommentignore']));
             }
         }
         if (in_array('messages', $privacy_parameters)) {
             if (!empty($request['message']) && in_array($request['message'], $privacy_types)) {
                 switch ($request['message']) {
                     case 'specific':
                         unset($request['messageignore']);
                         break;
                     case 'private':
                         unset($request['messageignore']);
                         unset($request['messagespecific']);
                         break;
                     default:
                         unset($request['messagespecific']);
                 }
                 $privacy['message'] = $request['message'];
             }
             if (!empty($request['messagespecific'])) {
                 $privacy['messagespecificpeople'] = serialize(explode(',', $request['messagespecific']));
             }
             if (!empty($request['messageignore'])) {
                 $privacy['messageignore'] = serialize(explode(',', $request['messageignore']));
             }
         }
         //print_r($privacy);
         $privacymodel = new Application_Model_Privacy($this->registry->DB);
         $privacymodel->updatePrivacy($privacy);
         echo json_encode(array('status' => 'success'));
     } else {
         echo json_encode(array('status' => 'error'));
     }
 }