return $default;
}
-// http://doc.spip.org/@appliquer_filtre
-function appliquer_filtre($arg, $filtre) {
+/**
+ * Applique un filtre
+ *
+ * Fonction générique qui prend en argument l’objet (texte, etc) à modifier
+ * et le nom du filtre. Retrouve les arguments du filtre demandé dans les arguments
+ * transmis à cette fonction, via func_get_args().
+ *
+ * @see filtrer() Assez proche
+ *
+ * @param string $arg
+ * Texte sur lequel appliquer le filtre
+ * @param string $filtre
+ * Nom du filtre a appliquer
+ * @param string $force
+ * La fonction doit-elle retourner le texte ou rien ?
+ * @return string
+ * Texte avec le filtre appliqué s'il a été trouvé,
+ * Texte sans le filtre appliqué s'il n'a pas été trouvé et que $force n'a
+ * pas été fourni,
+ * Chaîne vide si le filtre n'a pas été trouvé et que $force a été fourni.
+**/
+function appliquer_filtre($arg, $filtre, $force=NULL) {
$f = chercher_filtre($filtre);
- if (!$f)
- return ''; // ou faut-il retourner $arg inchange == filtre_identite?
+ if (!$f) {
+ if (!$force) return '';
+ else return $arg;
+ }
$args = func_get_args();
array_shift($args); // enlever $arg
/**
* Un filtre pour determiner le nom du satut des inscrits
- * @param void $dummy
+ *
+ * @deprecated a virer en 3.1
+ *
+ * @param void|int $id
* @param string $mode
* @return string
*/
-function tester_config($dummy, $mode='') {
- include_spip('action/inscrire_auteur');
- return tester_statut_inscription($mode);
+function tester_config($id, $mode='') {
+ include_spip('inc/autoriser');
+ return autoriser('inscrireauteur', $mode, $id) ? $mode : '';
}
//
// mettre a jour le fichier si il n'existe pas
// ou trop ancien
+ // le dernier fichier produit est toujours suffixe par .last
+ // et recopie sur le fichier cible uniquement si il change
if (!file_exists($filename)
- OR (isset($cache['lastmodified']) AND $cache['lastmodified'] AND filemtime($filename)<$cache['lastmodified'])
- OR (defined('_VAR_MODE') AND _VAR_MODE=='recalcul'))
- {
+ OR !file_exists($filename.".last")
+ OR (isset($cache['lastmodified']) AND $cache['lastmodified'] AND filemtime($filename.".last")<$cache['lastmodified'])
+ OR (defined('_VAR_MODE') AND _VAR_MODE=='recalcul')) {
$contenu = $cache['texte'];
// passer les urls en absolu si c'est une css
if ($extension=="css")
$comment = "/* #PRODUIRE{fond=$fond";
foreach($contexte as $k=>$v)
$comment .= ",$k=$v";
- $comment .="} le ".date("Y-m-d H:i:s")." */\n";
+ // pas de date dans le commentaire car sinon ca invalide le md5 et force la maj
+ // mais on peut mettre un md5 du contenu, ce qui donne un aperu rapide si la feuille a change ou non
+ $comment .="}\n md5:".md5($contenu)." */\n";
}
// et ecrire le fichier
- ecrire_fichier($filename,$comment.$contenu);
+ ecrire_fichier($filename.".last",$comment.$contenu);
+ // regarder si on recopie
+ if (!file_exists($filename)
+ OR md5_file($filename)!==md5_file($filename.".last")){
+ @copy($filename.".last",$filename);
+ spip_clearstatcache(true,$filename); // eviter que PHP ne reserve le vieux timestamp
+ }
}
return $filename;