Readme.class.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. class Readme {
  3. public static function manifest(){
  4. return array(
  5. 'uid' => 'readme',
  6. 'label' => 'README',
  7. 'description' => 'Fichier texte de type "lisez moi", utilise du markdown pour la mise en forme',
  8. 'fromExtension' => array('md'),
  9. 'toExtension' => 'md',
  10. 'codemirror' => array(
  11. 'mode'=>'markdown',
  12. //'theme'=>'monokai',
  13. 'lineNumbers' => true,
  14. 'readOnly' => false
  15. )
  16. );
  17. }
  18. //Import depuis un glisser déposé du fichier
  19. public static function fromFile($resource){
  20. $enc = mb_detect_encoding($resource->content,"UTF-8, ISO-8859-1, GBK");
  21. if($enc!='UTF-8')
  22. $resource->content = iconv($enc,"utf-8",$resource->content);
  23. return $resource;
  24. }
  25. //Import depuis un flux json compressé de la ressource
  26. public static function fromJson($resource){
  27. return $resource;
  28. }
  29. //export en fichier JSON compressé de la ressource
  30. public static function toJson($resource){
  31. $resource = $resource->toArray();
  32. $resource['content'] = htmlspecialchars($resource['content']);
  33. return $resource;
  34. }
  35. public static function toFile($resource){
  36. $infos = self::manifest();
  37. return array(
  38. 'name'=> slugify($resource->label).'.'.$infos['toExtension'],
  39. 'content' => html_entity_decode($resource->content)
  40. );
  41. }
  42. public static function toHtml($resource){
  43. $infos = self::manifest();
  44. return array(
  45. 'content'=>'<textarea>'.$resource->content.'</textarea>',
  46. 'codemirror' => $infos['codemirror']
  47. );
  48. }
  49. }
  50. ?>