Beispiel #1
0
 /**
  * Transforme un texte SkrivML en HTML
  * @param  string $str Texte SkrivML
  * @return string      Texte HTML
  */
 public static function SkrivToHTML($str)
 {
     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;
 }
Beispiel #2
0
 /**
  * Callback utilisé pour l'extension <<image>> 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
  */
 public static function SkrivImage($args, $content, $skriv)
 {
     $_args = [];
     $_align_values = ['droite', 'gauche', 'centre'];
     foreach ($args as $value) {
         if (preg_match('/^\\d+$/', $value)) {
             $_args['id'] = (int) $value;
         } else {
             if (in_array($value, $_align_values)) {
                 $_args['align'] = $value;
             } else {
                 $_args['caption'] = $value;
             }
         }
     }
     if (empty($_args['id'])) {
         return $skriv->parseError('/!\\ Tag image : aucun numéro de fichier indiqué.');
     }
     try {
         $file = new Fichiers($_args['id']);
     } catch (\InvalidArgumentException $e) {
         return $skriv->parseError('/!\\ Tag image : ' . $e->getMessage());
     }
     if (!$file->image) {
         return $skriv->parseError('/!\\ Tag image : ce fichier n\'est pas une image.');
     }
     if (empty($_args['caption'])) {
         $_args['caption'] = false;
     }
     $out = '<a href="' . $file->getURL() . '" class="internal-image">';
     $out .= '<img src="' . $file->getURL($_args['align'] == 'centre' ? 500 : 200) . '" alt="';
     if ($_args['caption']) {
         $out .= htmlspecialchars($_args['caption'], ENT_QUOTES, 'UTF-8');
     }
     $out .= '" /></a>';
     if (!empty($_args['align'])) {
         $out = '<figure class="image ' . $_args['align'] . '">' . $out;
         if ($_args['caption']) {
             $out .= '<figcaption>' . htmlspecialchars($_args['caption'], ENT_QUOTES, 'UTF-8') . '</figcaption>';
         }
         $out .= '</figure>';
     }
     return $out;
 }