Пример #1
0
 /**
  * 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;
         }
     }
 }
Пример #2
0
        $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']);
Пример #3
0
        $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);
}