File size: 4.86Kb
<?php
require ($_SERVER['DOCUMENT_ROOT'].'/system/connections/core.php');
access('users');
get_check_valid();
if (ajax() == true){
$type = tabs(get('type'));
$url = tabs(get('url'));
$id = intval(get('id'));
?><div class="modal_bottom_title"><?
if (config('PRIVATE_PHOTOS')){
?>
<div id="modal_bottom_open_set" onclick="upload('/system/AJAX/php/attachments/photos.php?type=<?=$type?>&id=<?=$id?>&url=<?=$url?>&show=<?=intval(get('show'))?>&<?=TOKEN_URL?>', 'attachments_upload')" class="modal_bottom_icons_optimize"><span class="modal_bottom_icons_circle"><?=icons('image', 20)?></span><span class='modal_bottom_title_text'><?=lg('Фото')?></span></div>
<?
}
if (config('PRIVATE_VIDEOS')){
?>
<div id="modal_bottom_open_set" onclick="upload('/system/AJAX/php/attachments/videos.php?type=<?=$type?>&id=<?=$id?>&url=<?=$url?>&show=<?=intval(get('show'))?>&<?=TOKEN_URL?>', 'attachments_upload')" class="modal_bottom_icons_optimize"><span class="modal_bottom_icons_circle"><?=icons('film', 20)?></span><span class="modal_bottom_title_text"><?=lg('Видео')?></span></div>
<?
}
if (config('PRIVATE_MUSIC')){
?>
<div id="modal_bottom_open_set" onclick="upload('/system/AJAX/php/attachments/music.php?type=<?=$type?>&id=<?=$id?>&url=<?=$url?>&show=<?=intval(get('show'))?>&<?=TOKEN_URL?>', 'attachments_upload')" class="modal_bottom_icons_optimize"><span class="modal_bottom_icons_circle"><?=icons('music', 20)?></span><span class="modal_bottom_title_text"><?=lg('Музыка')?></span></div>
<?
}
if (config('PRIVATE_FILES')){
?>
<div id="modal_bottom_open_set" onclick="upload('/system/AJAX/php/attachments/files.php?type=<?=$type?>&id=<?=$id?>&url=<?=$url?>&show=<?=intval(get('show'))?>&<?=TOKEN_URL?>', 'attachments_upload')" class="modal_bottom_icons_optimize"><span class="modal_bottom_icons_circle"><?=icons('file', 20)?></span><span class="modal_bottom_title_text"><?=lg('Файлы')?></span></div>
<?
}
hooks::challenge('attachments_ajax', 'attachments_ajax');
hooks::run('attachments_ajax');
?>
</div>
<center>
<div class="modal-bottom-container">
<div class='vbody'>
<div id='vtime'>0:00</div>
<button onclick='vstart()' id='vstart'><?=icons('microphone', 20, 'fa-fw')?></button>
<button id='vstop' style='display: none'><?=icons('stop', 20, 'fa-fw')?></button>
<div id='vinfo' style='display: none'><?=lg('Идет запись')?></div>
</div>
</div>
<script>
function vstart(){
var vstop = document.getElementById('vstop');
var vstart = document.getElementById('vstart');
var vinfo = document.getElementById('vinfo');
navigator.mediaDevices.getUserMedia({audio: true}).then(stream => {
var mediaRecorder = new MediaRecorder(stream);
let voice = [];
mediaRecorder.start();
vstop.style.display = '';
vinfo.style.display = '';
vstart.style.display = 'none';
vtick(0);
mediaRecorder.addEventListener("dataavailable", function(event) {
voice.push(event.data);
});
document.querySelector('#vstop').addEventListener('click', function(){
mediaRecorder.stop();
});
mediaRecorder.addEventListener("stop", function() {
vstop.style.display = 'none';
vstart.style.display = '';
vinfo.style.display = 'none';
clearInterval(timer);
const audioBlob = new Blob(voice, {
type: 'audio/wav'
});
let fd = new FormData();
fd.append('voice', audioBlob);
sendVoice(fd);
voice = [];
});
}).catch(error => {
alert('Браузер отказал в разрешении. Проверьте настройки');
});
}
async function sendVoice(form) {
var promise = await fetch('/files/receiver/voice.php?type=<?=$type?>&id=<?=$id?>&url=<?=$url?>&duration='+document.getElementById('vtime').innerHTML, {
method: 'POST',
body: form
});
if (promise.ok) {
var data = "<?=base64_decode($url)?>";
var toLoad = data+' #upload-attachments-result';
$("#upload-attachments-result").load(toLoad);
modal_bottom_close();
}
}
//Таймер для длительности трека по возрастанию
function vtick(num) {
var sec = num;
timer = setInterval(function() {
sec++;
document.getElementById("vtime").childNodes[0].nodeValue = duration_format(sec);
}, 1000);
}
</script>
<span onclick='modal_bottom_close()' class='modal-bottom-button'><?=lg('Отменить')?></span></center>
<?
}else{
echo lg('Не удалось установить соединение');
}