/** * Handle a page that enables users to registers to various mailing lists. */ public function executeMailinglists() { $user_id = $this->getUser()->getId(); $this->user_private_data = UserPrivateData::find($user_id); $this->email = $this->user_private_data->get('email'); $lists = sfConfig::get('mod_users_mailinglists_values'); if ($this->getRequest()->getMethod() == sfRequest::POST) { $listname = $this->getRequestParameter('listname'); if ($this->getRequestParameter('reason') == 'sub') { Sympa::subscribe($listname, $this->email); $this->statsdIncrement("{$listname}.subscribe"); } else { Sympa::unsubscribe($listname, $this->email); $this->statsdIncrement("{$listname}.unsubscribe"); } } $subscribedLists = Sympa::getSubscribedLists($this->email); $ml_list_subscribed = array(); $ml_list_available = array(); foreach ($lists as $list) { if (in_array($list, $subscribedLists)) { $ml_list_subscribed[] = $list; } else { $ml_list_available[] = $list; } } $this->available_lists = $ml_list_available; $this->subscribed_lists = $ml_list_subscribed; $this->setPageTitle($this->__('mailing lists')); }