Exemple #1
0
 /**
  * Check if input file meet requirements
  *
  * @param string $filename File name
  *
  * @return boolean
  */
 private function _check($filename)
 {
     //deal with mac e-o-l encoding -- see if needed
     //@ini_set('auto_detect_line_endings', true);
     $handle = fopen(self::DEFAULT_DIRECTORY . '/' . $filename, 'r');
     if (!$handle) {
         Analog::log('File ' . $filename . ' cannot be open!', Analog::ERROR);
         $this->addError(str_replace('%filename', $filename, _T('File %filename cannot be open!')));
         return false;
     }
     if ($handle !== false) {
         $cnt_fields = count($this->_fields);
         //check required fields
         $fc = new FieldsConfig(Adherent::TABLE, $this->_members_fields, $members_fields_cats);
         $config_required = $fc->getRequired();
         $this->_required = array();
         foreach (array_keys($config_required) as $field) {
             if (in_array($field, $this->_fields)) {
                 $this->_required[$field] = $field;
             }
         }
         $row = 0;
         while (($data = fgetcsv($handle, 1000, self::DEFAULT_SEPARATOR, self::DEFAULT_QUOTE)) !== false) {
             //check fields count
             $count = count($data);
             if ($count != $cnt_fields) {
                 $this->addError(str_replace(array('%should_count', '%count', '%row'), array($cnt_fields, $count, $row), _T("Fields count mismatch... There should be %should_count fields and there are %count (row %row)")));
                 return false;
             }
             //check required fields
             if ($row > 0) {
                 //header line is the first one. Here comes data
                 $col = 0;
                 foreach ($data as $column) {
                     if (in_array($this->_fields[$col], $this->_required) && trim($column) == '') {
                         $this->addError(str_replace(array('%field', '%row'), array($this->_fields[$col], $row), _T("Field %field is required, but missing in row %row")));
                         return false;
                     }
                     $col++;
                 }
             }
             $row++;
         }
         fclose($handle);
         if (!($row > 1)) {
             //no data in file, just headers line
             $this->addError(_T("File is empty!"));
             return false;
         } else {
             return true;
         }
     }
     return false;
 }
Exemple #2
0
/** @ignore */
require_once 'includes/galette.inc.php';
if (!$preferences->pref_bool_selfsubscribe) {
    header('location:index.php');
    die;
}
$dyn_fields = new DynamicFields();
$member = new Adherent();
//mark as self membership
$member->setSelfMembership();
// flagging required fields
$fc = new FieldsConfig(Adherent::TABLE, $members_fields, $members_fields_cats);
// flagging required fields invisible to members
$fc->setNotRequired('activite_adh');
$fc->setNotRequired('id_statut');
$required = $fc->getRequired();
// flagging fields visibility
$visibles = $fc->getVisibilities();
// disable some fields
$disabled = $member->disabled_fields;
// DEBUT parametrage des champs
// 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);