================================================================================
+VERSION 1.1.13 XX XX XXXX
+
+================================================================================
VERSION 1.1.12 08 03 2014
* NL:
failure_hints = [
"insufficient system storage",
"mailbox full",
+ "mailbox recipient does not have a mailbox database",
+ "over quota",
"requested action aborted: local error in processing",
"user unknown",
]
return $this->short_name;
}
+ public function sortName()
+ {
+ return $this->sort_name;
+ }
+
public function firstName()
{
return $this->firstname_ordinary;
IF (ppn.firstname_ordinary = \'\', ppn.firstname_main, ppn.firstname_ordinary) AS firstname_ordinary,
IF (ppn.lastname_ordinary = \'\', ppn.lastname_main, ppn.lastname_ordinary) AS lastname_ordinary,
pd.yourself, pd.promo, pd.short_name, pd.public_name AS full_name,
- pd.directory_name, pd.public_name, pd.private_name,
+ pd.directory_name, pd.public_name, pd.private_name, pd.sort_name,
IF (pp.pub >= {?}, pp.display_tel, NULL) AS mobile,
(ph.pub >= {?} AND ph.attach IS NOT NULL) AS has_photo, ph.pub as photo_pub,
ph.x AS photo_width, ph.y AS photo_height,
IF(ef.email IS NULL, NULL, CONCAT(ef.email, \'@\', df.name)) AS forlife_alternate,
IF(eb.email IS NULL, NULL, CONCAT(eb.email, \'@\', mb.name)) AS bestalias,
(er.redirect IS NULL AND a.state = \'active\' AND FIND_IN_SET(\'mail\', at.perms)) AS lost,
- a.email, a.full_name, a.directory_name, a.display_name, a.sex = \'female\' AS gender,
+ a.email, a.full_name, a.directory_name, a.display_name, a.sort_name, a.sex = \'female\' AS gender,
IF(a.state = \'active\', CONCAT(at.perms, \',\', IF(a.user_perms IS NULL, \'\', a.user_perms)), \'\') AS perms,
a.user_perms, a.email_format, a.is_admin, a.state, a.type, at.description AS type_description, a.skin,
FIND_IN_SET(\'watch\', a.flags) AS watch, a.comment,
return $this->profile()->directory_name;
}
+ public function sortName()
+ {
+ if (!$this->hasProfile()) {
+ return $this->sort_name;
+ }
+ return $this->profile()->sort_name;
+ }
+
static public function compareDirectoryName($a, $b)
{
return strcasecmp(replace_accent($a->directoryName()), replace_accent($b->directoryName()));
-Subproject commit 75b5406387c0c362517dd905d561f7b616dddc96
+Subproject commit c16ab9ce3537fad8a05ecba1cdb25268440aec29
public $rib_id;
public $rib_nom;
- public $rules = "Vérifier que les balises <salutation>, <prenom>, <nom>, <montant> et <comment> n'ont pas été modifiées.
-Vérifier que le demandeur n'a pas laissé les crochets [].
-Si le télépaiement n'est pas lié à un groupe ou supérieur à 51 euros, laisser la validation à un trésorier";
+ public $rules = "Vérifier la présence d'un montant, de la balise <montant>, et associer le RIB du groupe. Si le groupe n'a pas de RIB "used" ou en a plusieurs, laisser au trésorier.";
// }}}
// {{{ constructor
sort($broken_list);
foreach ($broken_list as $email) {
+ $email = trim($email);
$userobj = null;
if ($user = mark_broken_email($email, true)) {
$userobj = User::getSilentWithUID($user['uid']);
WHERE flags = \'active\' AND broken_level = 1
AND DATE_ADD(last, INTERVAL 1 YEAR) < CURDATE()');
+ // Sort $broken_user_list with (promo, sortname, pid)
+ $sortable_array = array();
+ foreach ($broken_user_list as $pid => $mails) {
+ $profile = $broken_user_profiles[$pid];
+ $sortable_array[$pid] = array($profile->promo(), $profile->sortName(), $pid);
+ }
+ asort($sortable_array);
+
// Output the list of users with recently broken addresses,
// along with the count of valid redirections.
- pl_cached_content_headers('text/x-csv', 1);
+ pl_cached_content_headers('text/x-csv', null, 1, 'broken.csv');
$csv = fopen('php://output', 'w');
fputcsv($csv, array('nom', 'promo', 'bounces', 'nbmails', 'url', 'corps', 'job', 'networking'), ';');
$corpsList = DirEnum::getOptions(DirEnum::CURRENTCORPS);
- foreach ($broken_user_list as $pid => $mails) {
+ foreach (array_keys($sortable_array) as $pid) {
+ $mails = $broken_user_list[$pid];
$profile = $broken_user_profiles[$pid];
$current_corps = $profile->getCorpsName();
$jobs = $profile->getJobs();
/** Import de l'annuaire de l'AX depuis l'export situé dans le home de jacou */
function handler_import($page, $action = 'index', $file = '')
{
+ global $globals;
if ($action == 'index') {
$page->changeTpl('fusionax/import.tpl');
return;
if ($file != '') {
// récupère le contenu du fichier sql
$queries = explode(';', file_get_contents($modulepath . $filesSQL[$file]));
+ $db = mysqli_init();
+ $db->options(MYSQLI_OPT_LOCAL_INFILE, true);
+ $db->real_connect($globals->dbhost, $globals->dbuser, $globals->dbpwd, $globals->dbdb);
+ $db->autocommit(true);
+ $db->set_charset($globals->dbcharset);
foreach ($queries as $q) {
if (trim($q)) {
// coupe le fichier en requêtes individuelles
$report[] = addslashes($l);
}
// exécute la requête
- XDB::execute(str_replace('{?}', $spoolpath, $q));
+ $res = $db->query(str_replace('{?}', $spoolpath, $q));
+ if ($res === false) {
+ throw new XDBException($q, $db->error);
+ }
}
}
+ $db->close();
// trouve le prochain fichier à exécuter
$nextfile = $file + 1;
} else {
$name = $member['email'];
} else {
$category = $member['user']->category();
- $name = $member['user']->directoryName();
+ $name = $member['user']->sortName();
}
if (empty($category)) {
$category = "AAAAA";
// {{{ function checkSyntax() : checks syntax of the questions (currently the root only) before storing the survey in database
private static $errorMessages = array(
"datepassed" => "la date de fin de sondage est déjà dépassée : vous devez préciser une date future",
- "promoformat" => "les restrictions à certaines promotions sont mal formattées"
+ "promoformat" => "les restrictions à certaines promotions sont mal formatées"
);
public function checkSyntax()
FROM group_events as ge
WHERE eid = {?}',
$eid);
- if (!is_null($evt['deadline_inscription']) && strtotime($evt['deadline_inscription']) < time()) {
+ if (!is_null($evt['deadline_inscription']) && strtotime($evt['deadline_inscription']) <= time()) {
$evt['inscr_open'] = false;
} else {
$evt['inscr_open'] = true;
<dt>Autres adresses (**)</dt>
<dd>
{foreach from=$aliases_other item=a}
+ {if strpos($a.email, '@melix.org') === false}
<label>
<input type='radio' {if $a.bestalias}checked="checked"{/if} name='best' value='{$a.email}' />
<strong>{$a.email}</strong>
</label>
{if $a.expire}<span class='erreur'>(expire le {$a.expire|date_format})</span>{/if}
- {if $a.alias}<a href="emails/alias">(changer ou supprimer mon alias melix)</a>{/if}
+ {if $a.alias} et <strong>@melix.org</strong> <a href="emails/alias">(changer ou supprimer mon alias melix)</a>{/if}
<br />
+ {/if}
{/foreach}
</dd>
{/if}
</tr>
<tr class="pair">
<td colspan="2" class="center">
- <small>Bien remplir tous les champs, en particulier les <a href="http://societe.com/">codes NAF</a> et AX !</small>
+ <small>Remplir tous les champs possibles, en particulier le <a href="http://societe.com/">code NAF</a> et l'adresse du siège social si possible.</small>
</td>
</tr>
{if t($too_long)}
L'article est trop long.
{else}
- Il reste encore {$remaining} {if t($last_line)}caractères{else}lignes{/if}, une fois l'article formatté.
+ Il reste encore {$remaining} {if t($last_line)}caractères{else}lignes{/if}, une fois l'article formaté.
{/if}
</small>
<dt>Format des emails envoyés par le site</dt>
<dd>
Lorsque le site t'envoie des emails (lettre mensuelle, carnet, ...) ceux-ci peuvent
- être soit sous forme de texte brut, soit formattés à l'aide de html.<br />
+ être soit sous forme de texte brut, soit formatés à l'aide de html.<br />
texte brut <input type="radio" name="email_format" value="text" {if $smarty.session.user->email_format neq 'html'}checked="checked"{/if} />
<input type="radio" name="email_format" value="html" {if $smarty.session.user->email_format eq 'html'}checked="checked"{/if} /> HTML
</dd>
expiration</strong> et utiliser le certificat comme expliqué dans l'email pour changer votre mot de passe.
</p>
<p>
-Si vous n'accéder pas à cet email dans les 6 heures, sollicitez un nouveau certificat sur cette page.
+Si vous n'accédez pas à cet email dans les 6 heures, sollicitez un nouveau certificat sur cette page.
</p>
{else}
</td>
<td>
<label><input type="checkbox" name="membres[X]" value="1" {if $smarty.request.membres.X}checked="checked"{/if} />
- <em>écrire à tous les X de l'annuaire du groupe</em></label><br />
- <label><input type="checkbox" name="membres[ext]" value="1" {if $smarty.request.membres.ext}checked="checked"{/if} />
- <em>écrire à tous les extérieurs de l'annuaire du groupe</em></label><br />
- <label><input type="checkbox" name="membres[groupe]" value="1" {if $smarty.request.membres.groupe}checked="checked"{/if} />
- <em>écrire à toutes les personnes morales de l'annuaire du groupe</em></label>
+ <em>écrire à tous les membres du groupe</em></label><br />
<a href="{$platal->ns}annuaire" class='popup'>(voir annuaire)</a><br />
</td>
</tr>
--- /dev/null
+UPDATE profiles SET ax_id = 19560277 WHERE pid = 48088;
+UPDATE profiles SET ax_id = 19560276 WHERE pid = 48089;
+UPDATE profiles SET ax_id = 19730178 WHERE pid = 48100;
+UPDATE profiles SET ax_id = 19820322 WHERE pid = 48114;
+UPDATE profiles SET ax_id = '2003D045' WHERE pid = 46823;
+UPDATE profiles SET ax_id = '2004D001' WHERE pid = 46824;
+UPDATE profiles SET ax_id = '2007D007' WHERE pid = 46825;
+UPDATE profiles SET ax_id = '2007D016' WHERE pid = 46826;
+UPDATE profiles SET ax_id = '2007D017' WHERE pid = 46827;
+UPDATE profiles SET ax_id = '2007D025' WHERE pid = 46828;
+UPDATE profiles SET ax_id = '2007D030' WHERE pid = 46829;
+UPDATE profiles SET ax_id = '2007D045' WHERE pid = 46830;
+UPDATE profiles SET ax_id = '2007D050' WHERE pid = 46831;
+UPDATE profiles SET ax_id = '2008D063' WHERE pid = 46832;
+UPDATE profiles SET ax_id = '2008D023' WHERE pid = 46833;
+UPDATE profiles SET ax_id = '2008D055' WHERE pid = 46834;
+UPDATE profiles SET ax_id = '2009D506' WHERE pid = 46425;
+UPDATE profiles SET ax_id = '2009D050' WHERE pid = 46836;
+UPDATE profiles SET ax_id = '2009D202' WHERE pid = 46837;
+UPDATE profiles SET ax_id = '2009D378' WHERE pid = 46838;
+UPDATE profiles SET ax_id = '2009D500' WHERE pid = 45980;
+UPDATE profiles SET ax_id = '2009D504' WHERE pid = 46034;
+UPDATE profiles SET ax_id = '2009D503' WHERE pid = 46303;
+UPDATE profiles SET ax_id = '2010D009' WHERE pid = 46311;
+UPDATE profiles SET ax_id = '2012D098' WHERE pid = 46317;
+UPDATE profiles SET ax_id = '2012D099' WHERE pid = 46362;
+UPDATE profiles SET ax_id = '2012D100' WHERE pid = 46365;
+UPDATE profiles SET ax_id = '2010D089' WHERE pid = 46374;
+UPDATE profiles SET ax_id = '2009M142' WHERE pid = 44940;
+UPDATE profiles SET ax_id = '2009M143' WHERE pid = 44942;
+UPDATE profiles SET ax_id = '2009M144' WHERE pid = 44943;
--- /dev/null
+DELETE FROM profile_education WHERE pid = 41787 AND id = 101;
+DELETE FROM profile_education WHERE pid = 41976 AND id = 101;
+DELETE FROM profile_education WHERE pid = 42172 AND id = 101;
+DELETE FROM profile_education WHERE pid = 43002 AND id = 101;
+DELETE FROM profile_education WHERE pid = 42509 AND id = 101;