Beispiel #1
0
use Galette\Entity\Group;
use Galette\Filters\MembersList;
use Galette\Repository\Members;
use Analog\Analog;
require_once 'includes/galette.inc.php';
if (!$login->isLogged() || !$login->isAdmin() && !$login->isStaff()) {
    Analog::log('Trying to display ajax_members.php without appropriate permissions', Analog::INFO);
    die;
}
// check for ajax mode
$ajax = isset($_POST['ajax']) && $_POST['ajax'] == 'true' ? true : false;
$multiple = isset($_POST['multiple']) && $_POST['multiple'] == 'false' ? false : true;
if (isset($session['ajax_members_filters']['members'])) {
    $filters = unserialize($session['ajax_members_filters']['members']);
} else {
    $filters = new MembersList();
}
if (isset($_GET['page'])) {
    $filters->current_page = (int) $_GET['page'];
}
if (isset($_POST['page'])) {
    $filters->current_page = (int) $_POST['page'];
}
//numbers of rows to display
if (isset($_GET['nbshow']) && is_numeric($_GET['nbshow'])) {
    $filters->show = $_GET['nbshow'];
}
$members = new Members($filters);
$members_list = $members->getMembersList(true);
//assign pagination variables to the template and add pagination links
$filters->setSmartyPagination($tpl);
 /**
  * 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) || in_array($name, $this->memberslist_fields)) {
         parent::__set($name, $value);
     } else {
         Analog::log('[AdvancedMembersList] Setting property `' . $name . '`', Analog::DEBUG);
         $prop = '_' . $name;
         switch ($name) {
             case 'creation_date_begin':
             case 'creation_date_end':
             case 'modif_date_begin':
             case 'modif_date_end':
             case 'due_date_begin':
             case 'due_date_end':
             case 'birth_date_begin':
             case 'birth_date_end':
             case 'contrib_creation_date_begin':
             case 'contrib_creation_date_end':
             case 'contrib_begin_date_begin':
             case 'contrib_begin_date_end':
             case 'contrib_end_date_begin':
             case 'contrib_end_date_end':
                 if ($value !== null && trim($value) !== '') {
                     try {
                         $d = \DateTime::createFromFormat(_T("Y-m-d"), $value);
                         if ($d === false) {
                             throw new \Exception('Incorrect format');
                         }
                         $this->{$prop} = $d->format('Y-m-d');
                     } catch (\Exception $e) {
                         Analog::log('Incorrect date format for ' . $name . '! was: ' . $value, Analog::WARNING);
                     }
                 }
                 break;
             case 'contrib_min_amount':
             case 'contrib_max_amount':
                 if (is_float($value)) {
                     $this->{$prop} = $value;
                 } else {
                     if ($value !== null) {
                         Analog::log('Incorrect amount for ' . $name . '! ' . 'Should be a float (' . gettype($value) . ' given)', Analog::WARNING);
                     }
                 }
                 break;
             case 'show_public_infos':
                 if (is_numeric($value)) {
                     $this->{$prop} = $value;
                 } else {
                     Analog::log('[AdvancedMembersList] Value for property `' . $name . '` should be an integer (' . gettype($value) . ' given)', Analog::WARNING);
                 }
                 break;
             case 'status':
                 if (!is_array($value)) {
                     $value = array($value);
                 }
                 $this->_status = array();
                 foreach ($value as $v) {
                     if (is_numeric($v)) {
                         //check status existence
                         $s = new Status();
                         $res = $s->get($v);
                         if ($res !== false) {
                             $this->_status[] = $v;
                         } else {
                             Analog::log('Status #' . $v . ' does not exists!', Analog::WARNING);
                         }
                     } else {
                         Analog::log('[AdvancedMembersList] Value for status filter should be an ' . 'integer (' . gettype($v) . ' given', Analog::WARNING);
                     }
                 }
                 break;
             case 'contributions_types':
                 if (!is_array($value)) {
                     $value = array($value);
                 }
                 $this->_contributions_types = array();
                 foreach ($value as $v) {
                     if (is_numeric($v)) {
                         //check type existence
                         $s = new ContributionsTypes();
                         $res = $s->get($v);
                         if ($res !== false) {
                             $this->_contributions_types[] = $v;
                         } else {
                             Analog::log('Contribution type #' . $v . ' does not exists!', Analog::WARNING);
                         }
                     } else {
                         Analog::log('[AdvancedMembersList] Value for contribution type ' . 'filter should be an integer (' . gettype($v) . ' given', Analog::WARNING);
                     }
                 }
                 break;
             case 'payments_types':
                 if (!is_array($value)) {
                     $value = array($value);
                 }
                 $this->_payments_types = array();
                 foreach ($value as $v) {
                     if (is_numeric($v)) {
                         if ($v == Contribution::PAYMENT_OTHER || $v == Contribution::PAYMENT_CASH || $v == Contribution::PAYMENT_CREDITCARD || $v == Contribution::PAYMENT_CHECK || $v == Contribution::PAYMENT_TRANSFER || $v == Contribution::PAYMENT_PAYPAL) {
                             $this->_payments_types[] = $v;
                         } else {
                             Analog::log('Payment type #' . $v . ' does not exists!', Analog::WARNING);
                         }
                     } else {
                         Analog::log('[AdvancedMembersList] Value for payment type filter should be an ' . 'integer (' . gettype($v) . ' given', Analog::WARNING);
                     }
                 }
                 break;
             case 'free_search':
                 if (isset($this->_free_search['empty'])) {
                     unset($this->_free_search['empty']);
                 }
                 if (is_array($value)) {
                     if (isset($value['field']) && isset($value['search']) && isset($value['log_op']) && isset($value['qry_op']) && isset($value['idx'])) {
                         $id = $value['idx'];
                         unset($value['idx']);
                         $this->_free_search[$id] = $value;
                     } else {
                         Analog::log('[AdvancedMembersList] bad construct for free filter', Analog::WARNING);
                     }
                 } else {
                     Analog::log('[AdvancedMembersList] Value for free filter should be an ' . 'array (' . gettype($value) . ' given', Analog::WARNING);
                 }
                 break;
             default:
                 if (substr($name, 0, 4) === 'cds_' || substr($name, 0, 5) === 'cdsc_') {
                     if (is_array($value) || trim($value) !== '') {
                         if (isset($this->_contrib_dynamic['empty'])) {
                             unset($this->_contrib_dynamic['empty']);
                         }
                         $id = null;
                         if (substr($name, 0, 5) === 'cdsc_') {
                             $id = substr($name, 5, strlen($name));
                         } else {
                             $id = substr($name, 4, strlen($name));
                         }
                         $this->_contrib_dynamic[$id] = $value;
                     }
                 } else {
                     Analog::log('[AdvancedMembersList] Unable to set proprety `' . $name . '`', Analog::WARNING);
                 }
                 break;
         }
     }
 }
Beispiel #3
0
 * @version   SVN: $Id$
 * @link      http://galette.tuxfamily.org
 * @since     Available since 0.62
 */
use Galette\Filters\MembersList;
define('GALETTE_BASE_PATH', '../');
require_once GALETTE_BASE_PATH . 'includes/galette.inc.php';
if (!$preferences->showPublicPages($login)) {
    //public pages are not actives
    header('location:' . GALETTE_BASE_PATH . 'index.php');
    die;
}
if (isset($session['public_filters']['members'])) {
    $filters = unserialize($session['public_filters']['members']);
} else {
    $filters = new MembersList();
}
// Filters
if (isset($_GET['page'])) {
    $filters->current_page = (int) $_GET['page'];
}
if (isset($_GET['clear_filter'])) {
    $filters->reinit();
}
//numbers of rows to display
if (isset($_GET['nbshow']) && is_numeric($_GET['nbshow'])) {
    $filters->show = $_GET['nbshow'];
}
// Sorting
if (isset($_GET['tri'])) {
    $filters->orderby = $_GET['tri'];
    }
    $session['mailing'] = null;
    unset($session['mailing']);
    if (!isset($_GET['mailing_new']) && !isset($_GET['reminder'])) {
        header('location: gestion_adherents.php');
        exit(0);
    }
}
$data = array();
if ($preferences->pref_mail_method == Core\Mailing::METHOD_DISABLED && !GALETTE_MODE === 'DEMO') {
    $hist->add(_T("Trying to load mailing while mail is disabled in preferences."));
} else {
    if (isset($session['filters']['members'])) {
        $filters = unserialize($session['filters']['members']);
    } else {
        $filters = new MembersList();
    }
    if (isset($session['mailing']) && !isset($_POST['mailing_cancel']) && !isset($_GET['from']) && !isset($_GET['reset'])) {
        $mailing = unserialize($session['mailing']);
    } else {
        if (isset($_GET['from']) && is_numeric($_GET['from'])) {
            $mailing = new Core\Mailing(null, $_GET['from']);
            Core\MailingHistory::loadFrom((int) $_GET['from'], $mailing);
        } else {
            if (isset($_GET['reminder'])) {
                //FIXME: use a constant!
                $filters->reinit();
                $filters->membership_filter = Members::MEMBERSHIP_LATE;
                $filters->account_status_filter = Members::ACTIVE_ACCOUNT;
                $m = new Members($filters);
                $members = $m->getList(true);