Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
// On recupere de la base la longueur et les flags des champs
// et on initialise des valeurs par defaut
$update_string = '';
$insert_string_fields = '';
$insert_string_values = '';
$has_register = 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'));