video.form.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. $data = fichier::getByHash($_GET["edit"]);
  3. if(empty($data["md5"])){
  4. header("Location: /");
  5. exit();
  6. }
  7. if($data["duration"] == NULL){
  8. $durationInSeconds = fichier::getVideoDuration("../video/" . $data["md5"]);
  9. fichier::updateTime($data["id"], $durationInSeconds);
  10. }
  11. fichier::generatePreview($data["md5"]);
  12. ?>
  13. <nav aria-label="breadcrumb" class="ariane">
  14. <ol class="breadcrumb" style="border-radius: 0 0 5px 5px; padding:5px 10px;">
  15. <li class="breadcrumb-item"><a href="/">Toutes les vidéos</a></li>
  16. <li class="breadcrumb-item active" aria-current="page"><?php echo isset($data["title"]) ? $data["title"] : "Ajouter une vidéo"; ?></li>
  17. </ol>
  18. </nav>
  19. <div class='container' style="position: relative;">
  20. <div class="btn-group" style="position: absolute; top: 10px; right: 10px; z-index: 10;">
  21. <button type="button" class="btn btn-secondary" onclick="window.open('/cut/<?php echo $data["hash"] ?>', '_self')">
  22. <i class="bi bi-scissors"></i>
  23. </button>
  24. <button type="button" class="btn btn-danger" onclick="confirmAction('<?php echo $data["md5"] ?>')">
  25. <i class="bi bi-trash"></i>
  26. </button>
  27. </div>
  28. <form method="post">
  29. <input type="hidden" name="from" value="video.form">
  30. <input type="hidden" name="id" value="<?php echo $data["id"] ?>">
  31. <input type="hidden" name="hash" value="<?php echo $data["hash"] ?>">
  32. <video id="videoStream" style="width:100%; margin-bottom: 20px;" controls>
  33. <source id="videoSource" src="" type='video/mp4'>
  34. Votre navigateur ne supporte pas la balise vidéo.
  35. </video>
  36. <div class="form-group">
  37. <label for='videoLink'>Lien de la vidéo</label>
  38. <input type="text" class="form-control" id='videoLink' value="https://<?php echo DOMAIN_MEDIAS . "/video/" . $data["hash"] ?>" readonly>
  39. </div>
  40. <div class='form-group' id="previewFileName" style="display:none;">
  41. <label for='selectedFileName'>Nom de la vidéo sélectionnée</label>
  42. <input type='text' class='form-control' id='selectedFileName' readonly>
  43. </div>
  44. <div class='form-group SubmitElement'>
  45. <label>Statut de la vidéo</label>
  46. <div class='custom-control custom-radio'>
  47. <input type='radio' id='activeStatus' name='videoStatus' class='custom-control-input' value='1' <?php echo ((isset($data["active"]) and $data["active"] == 1) or !isset($data["active"])) ? "checked" : NULL; ?>>
  48. <label class='custom-control-label' for='activeStatus'>Accessible à tous</label>
  49. </div>
  50. <div class='custom-control custom-radio'>
  51. <input type='radio' id='inactiveStatus' name='videoStatus' class='custom-control-input' value='0' <?php echo (isset($data["active"]) and $data["active"] == 0) ? "checked" : NULL; ?>>
  52. <label class='custom-control-label' for='inactiveStatus'>Non accessible</label>
  53. </div>
  54. </div>
  55. <div class='form-group'>
  56. <label for='videoName'>Titre de la vidéo</label>
  57. <input type='text' class='form-control' id='videoName' name="videoName" value="<?php echo isset($data["title"]) ? $data["title"] : NULL; ?>" required>
  58. </div>
  59. <div class='form-group'>
  60. <label for='dateEvent'>Jour de l'évènement</label>
  61. <input class='form-control' type="date" id="dateEvent" name="dateEvent" value="<?php echo isset($data["dateEvent"]) ? $data["dateEvent"] : NULL; ?>" required>
  62. </div>
  63. <div class="form-group">
  64. <label for='add'>Chargée le</label>
  65. <input type="text" class="form-control" id='add' value="<?php echo $data["add"] ?>" readonly>
  66. </div>
  67. <div class="form-group">
  68. <label for='add'>Durée de la vidéo</label>
  69. <input type="text" class="form-control" value="<?php echo isset($data["duration"]) ? core::formatDuration($data["duration"]) : NULL; ?>" readonly>
  70. </div>
  71. <div class='form-group SubmitElement'>
  72. <button type='submit' class='btn btn-primary btn-lg'>Enregistrer la vidéo</button>
  73. </div>
  74. </form>
  75. </div>
  76. <script>
  77. function confirmAction(md5) {
  78. if (confirm("Êtes-vous sûr de vouloir supprimer cette vidéo ?")) {
  79. window.open('/delete/' + md5, '_self');
  80. }
  81. }
  82. window.onload = function() {
  83. const video = document.getElementById('videoStream');
  84. const source = document.getElementById('videoSource');
  85. // Ajouter un timestamp à l'URL pour éviter le cache
  86. const videoUrl = 'https://<?php echo DOMAIN_MEDIAS . "/video/" . $data["hash"] ?>';
  87. const newSrc = videoUrl + '?t=' + new Date().getTime();
  88. // Mettre à jour la source de la vidéo avec l'URL modifiée
  89. source.src = newSrc;
  90. // Recharger et lire la vidéo
  91. video.load();
  92. };
  93. </script>