Overview
SHA1:e9ab0666a3f6f34c6596b569b8ff1cd375978cad
Date: 2018-08-02 22:58:47
User: bohwaz
Comment:Merge avec trunk
Timelines: family | ancestors | descendants | both | dev
Downloads: Tarball | ZIP archive
Other Links: files | file ages | folders | manifest
Tags And Properties
Context
2018-08-02
23:49
[b267668fe4] Affichage du statut de l'adresse email si invalide dans la fiche de membre (user: bohwaz, tags: dev)
22:58
[e9ab0666a3] Merge avec trunk (user: bohwaz, tags: dev)
22:52
[a0c15d9d73] Erreur plus explicite quand on essaye de modifier une écriture qui n'existe pas (user: bohwaz, tags: trunk, stable)
2018-07-30
03:15
[a92458a4b5] Possibilité de définir une condition d'affichage (en SQL) du plugin dans le menu, permettant de ne pas l'afficher à tous les membres (user: bohwaz, tags: dev)
Changes

Modified src/include/lib/Garradin/Config.php from [14cb7536d2] to [868d015351].

     1      1   <?php
     2      2   
     3      3   namespace Garradin;
     4      4   
            5  +use KD2\SMTP;
            6  +
     5      7   class Config
     6      8   {
     7      9       protected $fields_types = null;
     8     10       protected $config = null;
     9     11       protected $modified = [];
    10     12   
    11     13       static protected $_instance = null;
................................................................................
   248    250                       $key = str_replace('accueil_', '', $key);
   249    251                       throw new UserException('Le nom de la page d\'accueil ' . $key . ' ne peut rester vide.');
   250    252                   }
   251    253                   break;
   252    254               }
   253    255               case 'email_asso':
   254    256               {
   255         -                if (!filter_var($value, FILTER_VALIDATE_EMAIL))
          257  +                if (!SMTP::checkEmailIsValid($value, false))
   256    258                   {
   257    259                       throw new UserException('Adresse e-mail invalide.');
   258    260                   }
   259    261                   break;
   260    262               }
   261    263               case 'champs_membres':
   262    264               {

Modified src/include/lib/Garradin/Install.php from [3900ff2e28] to [e286e959c9].

   127    127   		// Vérifier que les répertoires vides existent, sinon les créer
   128    128   		$paths = [DATA_ROOT, PLUGINS_ROOT, CACHE_ROOT, CACHE_ROOT . '/static', CACHE_ROOT . '/compiled'];
   129    129   
   130    130   		foreach ($paths as $path)
   131    131   		{
   132    132   		    if (!file_exists($path))
   133    133   		    {
   134         -		        mkdir($path);
          134  +		        mkdir($path, 0777, true);
   135    135   		    }
   136    136   
   137    137   		    if (!is_dir($path))
   138    138   		    {
   139    139   		    	throw new UserException('Le répertoire '.$path.' n\'existe pas ou n\'est pas un répertoire.');
   140    140   		    }
   141    141   

Modified src/include/lib/Garradin/Membres/Cotisations.php from [7d3964d0a7] to [05dee5b004].

   275    275   		}
   276    276   
   277    277   		$desc = $desc ? 'DESC' : 'ASC';
   278    278   
   279    279   		return $db->get('SELECT cm.id_membre, cm.date, cm.id, m.numero,
   280    280   			m.'.$champ_id.' AS nom, c.montant,
   281    281   			CASE WHEN c.duree IS NOT NULL THEN date(cm.date, \'+\'||c.duree||\' days\') >= date()
   282         -			WHEN c.fin IS NOT NULL THEN c.fin <= date() ELSE 1 END AS a_jour
          282  +			WHEN c.fin IS NOT NULL THEN (date() <= c.fin AND date() >= c.debut) ELSE 1 END AS a_jour
   283    283   			FROM cotisations_membres AS cm
   284    284   				INNER JOIN cotisations AS c ON c.id = cm.id_cotisation
   285    285   				INNER JOIN membres AS m ON m.id = cm.id_membre
   286    286   			WHERE
   287    287   				cm.id_cotisation = ?
   288    288   				AND m.id_categorie NOT IN (SELECT mc.id FROM membres_categories AS mc WHERE mc.cacher = 1)
   289    289   			GROUP BY cm.id_membre ORDER BY '.$order.' '.$desc.' LIMIT ?,?;',

Modified src/include/lib/Garradin/Sauvegarde.php from [b8d932eaa5] to [ba865c4dc1].

   396    396   		return $return;
   397    397   	}
   398    398   
   399    399   	/**
   400    400   	 * Taille de la base de données actuelle
   401    401   	 * @return integer Taille en octets du fichier SQLite
   402    402   	 */
   403         -	public function getDBSize()
          403  +	public function getDBSize($signed = false)
   404    404   	{
   405         -		return filesize(DB_FILE);
          405  +		return filesize(DB_FILE) + ($signed ? 40 : 0);
   406    406   	}
   407    407   
   408    408   	/**
   409    409   	 * Taille occupée par les fichiers dans la base de données
   410    410   	 * @return integer Taille en octets
   411    411   	 */
   412    412   	public function getDBFilesSize()
   413    413   	{
   414    414   		$db = DB::getInstance();
   415    415   		return (int) $db->firstColumn('SELECT SUM(taille) FROM fichiers_contenu;');
   416    416   	}
   417    417   }

Modified src/include/lib/Garradin/Squelette.php from [63f2767bad] to [a6a2b8cd25].

   878    878   
   879    879       static private function compile_store($tpl, $content)
   880    880       {
   881    881           $path = self::compile_get_path($tpl);
   882    882   
   883    883           if (!file_exists(dirname($path)))
   884    884           {
   885         -            mkdir(dirname($path));
          885  +            mkdir(dirname($path), 0777, true);
   886    886           }
   887    887   
   888    888           file_put_contents($path, $content);
   889    889           return true;
   890    890       }
   891    891   
   892    892       static public function compile_clear($tpl)

Modified src/include/lib/Garradin/Static_Cache.php from [29cb9a9906] to [453588f5aa].

     9      9   
    10     10   	protected static function _getCacheDir()
    11     11   	{
    12     12   		$dir = CACHE_ROOT . '/static';
    13     13   
    14     14   		if (!file_exists($dir))
    15     15   		{
    16         -			mkdir(CACHE_ROOT . '/static');
           16  +			mkdir(CACHE_ROOT . '/static', 0777, true);
    17     17   		}
    18     18   
    19     19   		return CACHE_ROOT . '/static';
    20     20   	}
    21     21   
    22     22   	protected static function _getCachePath($id)
    23     23   	{

Modified src/include/lib/Garradin/Template.php from [7c31943209] to [8050b58d78].

    17     17   	{
    18     18   	}
    19     19   
    20     20   	public function __construct()
    21     21   	{
    22     22   		if (!file_exists(CACHE_ROOT . '/compiled'))
    23     23   		{
    24         -			mkdir(CACHE_ROOT . '/compiled');
           24  +			mkdir(CACHE_ROOT . '/compiled', 0777, true);
    25     25   		}
    26     26   
    27     27   		self::setCompileDir(CACHE_ROOT . '/compiled');
    28     28   		self::setTemplateDir(ROOT . '/templates');
    29     29   
    30     30   		parent::__construct();
    31     31   

Modified src/include/lib/Garradin/Utils.php from [f5f31ae435] to [c92830dc0e].

   643    643           }
   644    644       }
   645    645   
   646    646       static public function row_to_csv($row)
   647    647       {
   648    648           $row = (array) $row;
   649    649   
   650         -        array_walk($row, function ($field) {
   651         -            return strtr($field, ['"' => '""', "\r\n" => "\n"]);
          650  +        array_walk($row, function (&$field) {
          651  +            $field = strtr($field, ['"' => '""', "\r\n" => "\n"]);
   652    652           });
   653    653   
   654    654           return sprintf("\"%s\"\r\n", implode('","', $row));
   655    655       }
   656    656   }

Modified src/templates/admin/membres/recherche.tpl from [a917988cc5] to [3886f956f8].

    60     60   
    61     61       <form method="post" action="{$admin_url}membres/action.php" class="memberList">
    62     62   
    63     63       {if !empty($liste)}
    64     64       <table class="list search">
    65     65           <thead>
    66     66               {if $session->canAccess('membres', Garradin\Membres::DROIT_ADMIN)}<td class="check"><input type="checkbox" value="Tout cocher / décocher" onclick="checkUncheck();" /></td>{/if}
    67         -            <td></td>
    68     67               {foreach from=$champs_entete key="c" item="cfg"}
    69     68                   {if $champ == $c}
    70     69                       <th><strong>{$cfg.title}</strong></th>
    71     70                   {else}
    72     71                       <td>{$cfg.title}</td>
    73     72                   {/if}
    74     73               {/foreach}
    75     74               <td></td>
    76     75           </thead>
    77     76           <tbody>
    78     77               {foreach from=$liste item="membre"}
    79     78                   <tr>
    80     79                       {if $session->canAccess('membres', Garradin\Membres::DROIT_ADMIN)}<td class="check"><input type="checkbox" name="selected[]" value="{$membre.id}" /></td>{/if}
    81         -                    <td class="num"><a href="{$admin_url}membres/fiche.php?id={$membre.id}">{$membre.id}</a></th>
    82     80                       {foreach from=$champs_entete key="c" item="cfg"}
    83     81                           {if $champ == $c}
    84     82                               <th><strong>{$membre->$c|raw|display_champ_membre:$cfg}</strong></th>
    85     83                           {else}
    86     84                               <td>{$membre->$c|raw|display_champ_membre:$cfg}</td>
    87     85                           {/if}
    88     86                       {/foreach}
    89     87                       <td class="actions">
    90         -                        {if !empty($membre.email)}<a class="icn" href="{$admin_url}membres/message.php?id={$membre.id}" title="Envoyer un message">✉</a> {/if}
    91         -                        <a class="icn" href="modifier.php?id={$membre.id}" title="Modifier la fiche membre">✎</a>
           88  +                    	<a class="icn" href="{$admin_url}membres/fiche.php?id={$membre.id}" title="Fiche membre">👤</a>
           89  +                        <a class="icn" href="{$admin_url}membres/modifier.php?id={$membre.id}" title="Modifier la fiche membre">✎</a>
    92     90                       </td>
    93     91                   </tr>
    94     92               {/foreach}
    95     93           </tbody>
    96     94       </table>
    97     95   
    98     96       {if $session->canAccess('membres', Garradin\Membres::DROIT_ADMIN)}

Modified src/www/admin/config/donnees.php from [7a456875f0] to [37588fe983].

    44     44   {
    45     45       $form->check('backup_download');
    46     46   
    47     47       if (!$form->hasErrors())
    48     48       {
    49     49           header('Content-type: application/octet-stream');
    50     50           header('Content-Disposition: attachment; filename="' . $config->get('nom_asso') . ' - Sauvegarde données - ' . date('Y-m-d') . '.sqlite"');
    51         -        header('Content-Length: ' . $s->getDBSize());
           51  +        header('Content-Length: ' . $s->getDBSize(true));
    52     52   
    53     53           $s->dump();
    54     54           exit;
    55     55       }
    56     56   }
    57     57   elseif (f('restore'))
    58     58   {