/** * Global setter method * * @param string $name name of the property we want to assign a value to * @param object $value a relevant value for the property * * @return void */ public function __set($name, $value) { if (in_array($name, $this->pagination_fields)) { parent::__set($name, $value); } else { Analog::log('[MembersList] Setting property `' . $name . '`', Analog::DEBUG); switch ($name) { case 'selected': case 'unreachable': if (is_array($value)) { $name = '_' . $name; $this->{$name} = $value; } else { if ($value !== null) { Analog::log('[MembersList] Value for property `' . $name . '` should be an array (' . gettype($value) . ' given)', Analog::WARNING); } } break; case 'filter_str': $name = '_' . $name; $this->{$name} = $value; break; case 'field_filter': case 'membership_filter': case 'account_status_filter': if (is_numeric($value)) { $name = '_' . $name; $this->{$name} = $value; } else { if ($value !== null) { Analog::log('[MembersList] Value for property `' . $name . '` should be an integer (' . gettype($value) . ' given)', Analog::WARNING); } } break; case 'email_filter': switch ($value) { case Members::FILTER_DC_EMAIL: case Members::FILTER_W_EMAIL: case Members::FILTER_WO_EMAIL: $this->_email_filter = $value; break; default: Analog::log('[MembersList] Value for email filter should be either ' . Members::FILTER_DC_EMAIL . ', ' . Members::FILTER_W_EMAIL . ' or ' . Members::FILTER_WO_EMAIL . ' (' . $value . ' given)', Analog::WARNING); break; } break; case 'group_filter': if (is_numeric($value) && $value > 0) { //check group existence $g = new Group(); $res = $g->load($value); if ($res === true) { $this->_group_filter = $value; } else { Analog::log('Group #' . $value . ' does not exists!', Analog::WARNING); } } else { if ($value !== null && $value !== '0') { Analog::log('[MembersList] Value for group filter should be an ' . 'integer (' . gettype($value) . ' given)', Analog::WARNING); } } break; case 'query': $this->{$name} = $value; break; default: Analog::log('[MembersList] Unable to set proprety `' . $name . '`', Analog::WARNING); break; } } }
$selected_members = $mailing->recipients; $unreachables_members = $mailing->unreachables; } else { $m = new Members(); $selected_members = $m->getArrayList($_POST['members']); } } else { switch ($_POST['from']) { case 'groups': if (!isset($_POST['gid'])) { Analog::log('Trying to list group members with no group id provided', Analog::ERROR); throw new Exception('A group id is required.'); exit(0); } if (!isset($_POST['members'])) { $group = new Group((int) $_POST['gid']); $selected_members = array(); if (!isset($_POST['mode']) || $_POST['mode'] == 'members') { $selected_members = $group->getMembers(); } else { if ($_POST['mode'] == 'managers') { $selected_members = $group->getManagers(); } else { Analog::log('Trying to list group members with unknown mode', Analog::ERROR); throw new Exception('Unknown mode.'); exit(0); } } } else { $m = new Members(); $selected_members = $m->getArrayList($_POST['members']);
$members = $m->getArrayList($members_id); $group->setManagers($managers); $group->setMembers($members); if (count($error_detected) == 0) { $store = $group->store(); if ($store === true) { $success_detected[] = preg_replace('/%groupname/', $group->getName(), _T("Group `%groupname` has been successfully saved.")); } else { //something went wrong :'( $error_detected[] = _T("An error occured while storing the group."); } } } } if (isset($_GET['new'])) { $group = new Group(); $group->setName($_GET['group_name']); if (!$login->isSuperAdmin()) { $group->setManagers(new Adherent($login->id)); } $group->store(); $id = $group->getId(); } $groups_root = $groups->getList(false); $groups_list = $groups->getList(); if (count($error_detected) > 0) { $tpl->assign('error_detected', $error_detected); } if (count($success_detected) > 0) { $tpl->assign('success_detected', $success_detected); }