$headers = array(); foreach ($members_fields as $k => $f) { if ($k !== 'mdp_adh' && $export_fields === null || is_array($export_fields) && in_array($k, $export_fields)) { if ($visibles[$k] == FieldsConfig::VISIBLE) { $fields[] = $k; $labels[] = $f['label']; } else { if (($login->isAdmin() || $login->isStaff() || $login->isSuperAdmin()) && $visibles[$k] == FieldsConfig::ADMIN) { $fields[] = $k; $labels[] = $f['label']; } } } } $members = new Members($filters); $members_list = $members->getArrayList($filters->selected, null, false, false, $fields, true); $s = new Status(); $statuses = $s->getList(); $t = new Titles(); $titles = $t->getList($zdb); foreach ($members_list as &$member) { if (isset($member->id_statut)) { //add textual status $member->id_statut = $statuses[$member->id_statut]; } if (isset($member->titre_adh)) { //add textuel title $member->titre_adh = $titles[$member->titre_adh]->short; } //handle dates if (isset($member->date_crea_adh)) {
* @copyright 2011-2014 The Galette Team * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version * @version SVN: $Id$ * @link http://galette.tuxfamily.org * @since Available since 0.7dev - 2011-09-13 */ use Analog\Analog; use Galette\Repository\Members; require_once 'includes/galette.inc.php'; if (!$login->isLogged() || !$login->isAdmin() && !$login->isStaff()) { Analog::log('Trying to display ajax_recipients.php without appropriate permissions', Analog::INFO); die; } $mailing = unserialize($session['mailing']); $m = new Members(); $members = $m->getArrayList($_POST['recipients'], null, false, true, null, false, false, true); $mailing->setRecipients($members); $session['mailing'] = serialize($mailing); //let's generate html for return $html = ''; if (count($mailing->recipients) > 0) { $html = '<p id="recipients_count">' . preg_replace('/%s/', count($mailing->recipients), _T("You are about to send an e-mail to <strong>%s members</strong>")) . '</p>'; if (count($mailing->unreachables)) { $html .= '<p id="unreachables_count"><strong>' . count($mailing->unreachables) . ' ' . (count($mailing->unreachables) != 1 ? _T("unreachable members:") : _T("unreachable member:")) . '</strong><br/>' . _T("Some members you have selected have no e-mail address. However, you can generate envelope labels to contact them by snail mail.") . '<br/><a id="btnlabels" class="button" href="etiquettes_adherents.php?from=mailing">' . _T("Generate labels") . '</a></p>'; } } else { if (count($mailing->unreachables)) { $html .= '<p id="recipients_count"><strong>' . _T("None of the selected members has an email address.") . '</strong></p>'; } else { $html .= '<p id="recipients_count"><strong>' . _T("No member selected (yet).") . '</strong></p>'; }
* * You should have received a copy of the GNU General Public License * along with Galette. If not, see <http://www.gnu.org/licenses/>. * * @category Plugins * @package Galette * @author Johan Cwiklinski <*****@*****.**> * @copyright 2011-2014 The Galette Team * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version * @version SVN: $Id$ * @link http://galette.tuxfamily.org * @since Available since 0.7dev - 2011-10-29 */ use Analog\Analog; use Galette\Repository\Members; require_once 'includes/galette.inc.php'; $ids = $_POST['persons']; $mode = $_POST['person_mode']; if (!$ids || !$mode) { Analog::log('Trying to display ajax_group_members.php without persons or mode specified', Analog::INFO); die; } if (!$login->isLogged() || !$login->isAdmin() && !$login->isStaff()) { Analog::log('Trying to display ajax_group_members.php without appropriate permissions', Analog::INFO); die; } $m = new Members(); $persons = $m->getArrayList($ids); $tpl->assign('persons', $persons); $tpl->assign('person_mode', $mode); $tpl->display('group_persons.tpl');
$filters = unserialize($session['filters']['members']); } else { $filters = new MembersList(); } if (isset($_GET['from']) && $_GET['from'] === 'mailing') { //if we're from mailing, we have to retrieve its unreachables members for labels $mailing = unserialize($session['mailing']); $members = $mailing->unreachables; } else { if (count($filters->selected) == 0) { Analog::log('No member selected to generate labels', Analog::INFO); header('location:gestion_adherents.php'); die; } $m = new Members(); $members = $m->getArrayList($filters->selected, array('nom_adh', 'prenom_adh'), false, true, null, false, false, true); } if (!is_array($members) || count($members) < 1) { die; } $doc_title = _T("Member's Labels"); $doc_subject = _T("Generated by Galette"); $doc_keywords = _T("Labels"); // Create new PDF document $pdf = new Pdf($preferences); // Set document information $pdf->SetTitle($doc_title); $pdf->SetSubject($doc_subject); $pdf->SetKeywords($doc_keywords); // No hearders and footers $pdf->SetPrintHeader(false);
$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']); } break; case 'attach': if (!isset($_POST['id_adh'])) { throw new \RuntimeException('Current selected member must be excluded while attaching!'); exit(0); } else { $tpl->assign('excluded', $_POST['id_adh']); } break; } } $tpl->assign('ajax', $ajax); $tpl->assign('multiple', $multiple); $tpl->assign('members_list', $members_list);
/** * Get the list of reminders * * @param Db $zdb Database instance * @param boolean $nomail Get reminders for members who do not have email address * * @return array */ public function getList($zdb, $nomail = false) { $this->_types = array(); $this->_reminders = array(); $types = array(); foreach ($this->_selected as $s) { $this->_loadToRemind($zdb, $s); if (count($this->_toremind) > 0) { //and then get list $m = new Members(); $members = $m->getArrayList($this->_toremind, null, false, true, null, false, true); $this->_types[$s] = $members; } } if (is_array($this->_types)) { foreach ($this->_types as $type => $members) { //load message if (is_array($members)) { foreach ($members as $member) { $reminder = new Reminder(); $reminder->type = $type; $reminder->dest = $member; $this->_reminders[] = $reminder; } } } } return $this->_reminders; }
/** * Check for missing images in database * * @param Db $zdb Database instance * * @return void */ public function missingInDb(Db $zdb) { $existing_disk = array(); //retrieve files on disk if ($handle = opendir($this->store_path)) { while (false !== ($entry = readdir($handle))) { $reg = "/^(\\d+)\\.(" . implode('|', $this->allowed_extensions) . ")\$/i"; if (preg_match($reg, $entry, $matches)) { $id = $matches[1]; $extension = strtolower($matches[2]); if ($extension == 'jpeg') { //jpeg is an allowed extension, //but we change it to jpg to reduce further tests :) $extension = 'jpg'; } $existing_disk[$id] = array('name' => $entry, 'id' => $id, 'ext' => $extension); } } closedir($handle); if (count($existing_disk) === 0) { //no image on disk, nothing to do :) return; } //retrieve files in database $class = get_class($this); $select = $zdb->select($this->tbl_prefix . $class::TABLE); $select->columns(array(self::PK))->where->in(self::PK, array_keys($existing_disk)); $results = $zdb->execute($select); $existing_db = array(); foreach ($results as $result) { $existing_db[] = (int) $result[self::PK]; } $existing_diff = array_diff(array_keys($existing_disk), $existing_db); //retrieve valid members ids $members = new Members(); $valids = $members->getArrayList($existing_diff, null, false, false, array(self::PK)); foreach ($valids as $valid) { $file = $existing_disk[$valid->id_adh]; $this->_storeInDb($zdb, $file['id'], $this->store_path . $file['id'] . '.' . $file['ext'], $file['ext']); } } else { Analog::log('Something went wrong opening images directory ' . $this->store_path, Analog::ERROR); } }
} else { header('location:voir_adherent.php'); die; } die; } } // Fill array $mailing_adh with selected ids $mailing_adh = array(); if (isset($unique) && $unique) { $mailing_adh[] = $unique; } else { $mailing_adh = $filters->selected; } $m = new Members(); $members = $m->getArrayList($mailing_adh, array('nom_adh', 'prenom_adh'), true); if (!is_array($members) || count($members) < 1) { Analog::log('An error has occured, unable to get members list.', Analog::ERROR); die; } // Set PDF headings $doc_title = _T("Member's Cards"); $doc_subject = _T("Generated by Galette"); $doc_keywords = _T("Cards"); // Get fixed data from preferences // and convert strings to utf-8 for tcpdf $an_cot = '<strong>' . $preferences->pref_card_year . '</strong>'; $abrev = '<strong>' . $preferences->pref_card_abrev . '</strong>'; $print_logo = new Galette\Core\PrintLogo(); if ($logo->hasPicture()) { $logofile = $print_logo->getPath();
$filters->membership_filter = Members::MEMBERSHIP_LATE; $filters->account_status_filter = Members::ACTIVE_ACCOUNT; $m = new Members($filters); $members = $m->getList(true); $mailing = new Core\Mailing($members !== false ? $members : null); } else { if (count($filters->selected) == 0 && !isset($_GET['mailing_new']) && !isset($_GET['reminder'])) { Analog::log('[mailing_adherents.php] No member selected for mailing', Analog::WARNING); if (isset($profiler)) { $profiler->stop(); } header('location:gestion_adherents.php'); die; } $m = new Members(); $members = $m->getArrayList($filters->selected, null, false, true, null, false, false, true); $mailing = new Core\Mailing($members !== false ? $members : null); } } } if (isset($_POST['mailing_go']) || isset($_POST['mailing_reset']) || isset($_POST['mailing_confirm']) || isset($_POST['mailing_save'])) { if (trim($_POST['mailing_objet']) == '') { $error_detected[] = _T("Please type an object for the message."); } else { $mailing->subject = $_POST['mailing_objet']; } if (trim($_POST['mailing_corps']) == '') { $error_detected[] = _T("Please enter a message."); } else { $mailing->message = $_POST['mailing_corps']; }
$group->detach(); } } } catch (Exception $e) { $error_detected[] = $e->getMessage(); } $new = false; if ($group->getId() == '') { $new = true; } $managers_id = array(); if (isset($_POST['managers'])) { $managers_id = $_POST['managers']; } $m = new Members(); $managers = $m->getArrayList($managers_id); $members_id = array(); if (isset($_POST['members'])) { $members_id = $_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."); }