/** * Store members in database * * @param string $filename CSV filename * * @return boolean */ private function _storeMembers($filename) { $handle = fopen(self::DEFAULT_DIRECTORY . '/' . $filename, 'r'); $row = 0; try { while (($data = fgetcsv($handle, 1000, self::DEFAULT_SEPARATOR, self::DEFAULT_QUOTE)) !== false) { if ($row > 0) { $col = 0; $values = array(); foreach ($data as $column) { $values[$this->_fields[$col]] = $column; if ($this->_fields[$col] === 'societe_adh') { $values['is_company'] = true; } $col++; } //import member itself $member = new Adherent(); //check for empty creation date if (isset($values['date_crea_adh']) && trim($values['date_crea_adh']) === '') { unset($values['date_crea_adh']); } $valid = $member->check($values, $this->_required, null); if ($valid === true) { if ($this->_dryrun === false) { $store = $member->store(); if ($store !== true) { $this->addError(str_replace(array('%row', '%name'), array($row, $member->sname), _T("An error occured storing member at row %row (%name):"))); return false; } } } else { $this->addError(str_replace(array('%row', '%name'), array($row, $member->sname), _T("An error occured storing member at row %row (%name):"))); if (is_array($valid)) { foreach ($valid as $e) { $this->addError($e); } } return false; } } $row++; } return true; } catch (\Exception $e) { $this->addError($e->getMessage()); } return false; }
$fields = Adherent::getDbFields(); if (isset($_POST["nom_adh"])) { // dynamic fields $adherent['dyn'] = $dyn_fields->extractPosted($_POST, $_FILES, $disabled, $member->id); $dyn_fields_errors = $dyn_fields->getErrors(); if (count($dyn_fields_errors) > 0) { $error_detected = array_merge($error_detected, $dyn_fields_errors); } // regular fields $valid = $member->check($_POST, $required, $disabled); if ($valid !== true) { $error_detected = array_merge($error_detected, $valid); } if (count($error_detected) == 0) { //all goes well, we can proceed $store = $member->store(); if ($store === true) { //member has been stored :) //Send email to admin if preference checked if ($preferences->pref_mail_method > GaletteMail::METHOD_DISABLED && $preferences->pref_bool_mailadh) { $texts = new Texts($texts_fields, $preferences, array('name_adh' => custom_html_entity_decode($member->sname), 'firstname_adh' => custom_html_entity_decode($member->surname), 'lastname_adh' => custom_html_entity_decode($member->name), 'mail_adh' => custom_html_entity_decode($member->email), 'login_adh' => custom_html_entity_decode($member->login))); $mtxt = $texts->getTexts('newselfadh', $preferences->pref_lang); $mail = new GaletteMail(); $mail->setSubject($texts->getSubject()); $mail->setRecipients(array($preferences->pref_email_newadh => 'Galette admin')); $mail->setMessage($texts->getBody()); $sent = $mail->send(); if ($sent == GaletteMail::MAIL_SENT) { $hist->add(str_replace('%s', $member->sname . ' (' . $member->email . ')', _T("New account mail sent to admin for '%s'."))); } else { $str = str_replace('%s', $member->sname . ' (' . $member->email . ')', _T("A problem happened while sending email to admin for account '%s'."));