Overview
Comment: | Correction suppression fichier + lien vers des fichiers dans le wiki-texte |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
38e88e8e4374f4f7512de619874a76ce |
User & Date: | bohwaz on 2015-04-14 16:50:54 |
Other Links: | manifest | tags |
Context
2015-04-14
| ||
16:52 | Ces règles sont déplacées dans wiki.css check-in: f623c0af44 user: bohwaz tags: trunk | |
16:50 | Correction suppression fichier + lien vers des fichiers dans le wiki-texte check-in: 38e88e8e43 user: bohwaz tags: trunk | |
16:26 | Modif pour pouvoir utiliser la galerie en dehors de l'admin check-in: 85814d3876 user: bohwaz tags: trunk | |
Changes
Modified src/include/lib/Garradin/Fichiers.php from [5f508c4d76] to [90ac58cb7c].
︙ | ︙ | |||
208 209 210 211 212 213 214 215 | { $db = DB::getInstance(); $db->exec('BEGIN;'); $db->simpleExec('DELETE FROM fichiers_compta_journal WHERE fichier = ?;', (int)$this->id); $db->simpleExec('DELETE FROM fichiers_wiki_pages WHERE fichier = ?;', (int)$this->id); $db->simpleExec('DELETE FROM fichiers_membres WHERE fichier = ?;', (int)$this->id); // Suppression du contenu s'il n'est pas utilisé par un autre fichier | > > | | | < < | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | { $db = DB::getInstance(); $db->exec('BEGIN;'); $db->simpleExec('DELETE FROM fichiers_compta_journal WHERE fichier = ?;', (int)$this->id); $db->simpleExec('DELETE FROM fichiers_wiki_pages WHERE fichier = ?;', (int)$this->id); $db->simpleExec('DELETE FROM fichiers_membres WHERE fichier = ?;', (int)$this->id); $db->simpleExec('DELETE FROM fichiers WHERE id = ?;', (int)$this->id); // Suppression du contenu s'il n'est pas utilisé par un autre fichier if (!$db->simpleQuerySingle('SELECT 1 FROM fichiers WHERE id_contenu = ? AND id != ? LIMIT 1;', false, (int)$this->id_contenu, (int)$this->id)) { $db->simpleExec('DELETE FROM fichiers_contenu WHERE id = ?;', (int)$this->id_contenu); } $cache_id = 'fichiers.' . $this->id_contenu; Static_Cache::remove($cache_id); foreach (self::$allowed_thumb_sizes as $size) { Static_Cache::remove($cache_id . '.thumb.' . (int)$size); |
︙ | ︙ | |||
429 430 431 432 433 434 435 | } if (!is_uploaded_file($file['tmp_name'])) { throw new \RuntimeException('Le fichier n\'a pas été envoyé de manière conventionnelle.'); } | | | | 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 | } if (!is_uploaded_file($file['tmp_name'])) { throw new \RuntimeException('Le fichier n\'a pas été envoyé de manière conventionnelle.'); } $name = preg_replace('/\s+/', '_', $file['name']); $name = preg_replace('/[^\d\w._-]/ui', '', $name); $bytes = file_get_contents($file['tmp_name'], false, null, -1, 1024); $type = \KD2\FileInfo::guessMimeType($bytes); if (!$type) { $ext = substr($name, strrpos($name, '.')+1); |
︙ | ︙ | |||
559 560 561 562 563 564 565 566 | * Renvoie une liste d'ID de fichiers mentionnées dans un texte wiki * @param string $text Texte wiki * @return array Liste des IDs de fichiers mentionnés */ static public function listFilesUsedInText($text) { preg_match_all('/<<?(?:fichier|image)\s*(?:\|\s*)?(\d+)/', $text, $match, PREG_PATTERN_ORDER); | > | | 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 | * Renvoie une liste d'ID de fichiers mentionnées dans un texte wiki * @param string $text Texte wiki * @return array Liste des IDs de fichiers mentionnés */ static public function listFilesUsedInText($text) { preg_match_all('/<<?(?:fichier|image)\s*(?:\|\s*)?(\d+)/', $text, $match, PREG_PATTERN_ORDER); preg_match_all('/(?:fichier|image):\/\/(\d+)/', $text, $match2, PREG_PATTERN_ORDER); return array_merge($match[1], $match2[1]); } /** * Callback utilisé pour l'extension <<fichier>> dans le wiki-texte * @param array $args Arguments passés à l'extension * @param string $content Contenu éventuel (en mode bloc) * @param object $skriv Objet SkrivLite |
︙ | ︙ |
Modified src/include/lib/Garradin/Utils.php from [54935bb596] to [807f34b831].
︙ | ︙ | |||
389 390 391 392 393 394 395 396 397 398 399 400 401 402 | { if (!self::$skriv) { self::$skriv = new \KD2\SkrivLite; self::$skriv->registerExtension('fichier', ['\\Garradin\\Fichiers', 'SkrivFichier']); self::$skriv->registerExtension('image', ['\\Garradin\\Fichiers', 'SkrivImage']); } $str = self::$skriv->render($str); return $str; } /** | > > > > > > > > > > > > > > | 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 | { if (!self::$skriv) { self::$skriv = new \KD2\SkrivLite; self::$skriv->registerExtension('fichier', ['\\Garradin\\Fichiers', 'SkrivFichier']); self::$skriv->registerExtension('image', ['\\Garradin\\Fichiers', 'SkrivImage']); } $skriv =& self::$skriv; $str = preg_replace_callback('/(fichier|image):\/\/(\d+)/', function ($match) use ($skriv) { try { $file = new Fichiers((int)$match[2]); } catch (\InvalidArgumentException $e) { return $skriv->parseError('/!\ Lien fichier : ' . $e->getMessage()); } return $file->getURL(); }, $str); $str = self::$skriv->render($str); return $str; } /** |
︙ | ︙ |