next()) { if (array_shift($subs) == "$sub@$domain") { if ($domain != $current_domain) { $current_domain = $domain; } $client = new MMList(S::user(), $domain); $client->subscribe($sub); } } $this->UpdateOnYes(); pl_redirect('lists'); break; case 'dismiss': $this->UpdateOnDismiss(); break; case 'no': $this->UpdateOnNo(); break; } } public function Prepare(&$page) { parent::Prepare($page); $res = XDB::iterRow("SELECT sub, domain FROM register_subs WHERE uid = {?} AND type = 'list' ORDER BY domain", S::i('uid')); $current_domain = null; $lists = array(); while (list($sub, $domain) = $res->next()) { if ($current_domain != $domain) { $current_domain = $domain; $client = new MMList(S::user(), $domain); } list($details, ) = $client->get_members($sub); $lists["$sub@$domain"] = $details; } $page->assign_by_ref('lists', $lists); } public function template() { return 'reminder/ml.tpl'; } public function title() { return "Inscription aux listes de diffusion"; } public static function IsCandidate(User &$user, $candidate) { $res = XDB::query("SELECT COUNT(*) AS lists FROM register_subs WHERE uid = {?} AND type = 'list'", $user->id()); $mlCount = $res->fetchOneCell(); if (!$mlCount) { Reminder::MarkCandidateAsAccepted($user->id(), $candidate); } return ($mlCount > 0); } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>