Перейти к содержанию
CMSTOOLS.org - форум поддержки и развития CMS

point

Пользователи
  • Постов

    46
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

point стал победителем дня 1 декабря 2018

point имел наиболее популярный контент!

Информация о point

Посетители профиля

677 просмотров профиля

Достижения point

  1. 1.В базу данных в таблицу vii_videos добавить поле: yid tynint (1) unsigned 2.В system/modules/functions.php вставить функцию: function getVideoUrl($id){ $formats = array(18,22,37,38,43,44,45); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.youtube.com/get_video_info?video_id=' . $id); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $links = curl_exec($ch); curl_close($ch); parse_str($links, $info); if($info["status"] == 'fail'){ $video_array[] = ''; return; } $res = explode(',', $info['url_encoded_fmt_stream_map']); foreach ($res as $k => $v){ parse_str($v, $rr); if(in_array($rr['itag'], $formats)) $video_array[] = urldecode($rr['url']); } return $video_array; } function getRemoteFileSize($url){ $parse = parse_url($url); $host = $parse['host']; $fp = @fsockopen ($host, 80, $errno, $errstr, 20); if(!$fp){ $ret = 0; }else{ $host = $parse['host']; fputs($fp, "HEAD ".$url." HTTP/1.1\r\n"); fputs($fp, "HOST: ".$host."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); $headers = ""; while (!feof($fp)){ $headers .= fgets ($fp, 128); } fclose ($fp); $headers = strtolower($headers); $array = preg_split("|[\s,]+|",$headers); $key = array_search('content-length:',$array); $ret = $array[$key+1]; } if($array[1]==200) return $ret; else return -1*$array[1]; } 2.В system/modules/video.php после $tpl->set('{vid}', $vid); вставить: if($row['yid']){ if($check_link){ $row['video'] = ''; foreach($a as $key => $value){ $b = parse_url($value); parse_str($b['query'], $c); if($c['itag'] == 18) $row['video'] .= '<source src="'.$a[$key].'" type="video/mp4" label="Medium" res="360"/>'; elseif($c['itag'] == 22) $row['video'] .= '<source src="'.$a[$key].'" type="video/mp4" label="720p" res="720"/>'; elseif($c['itag'] == 37) $row['video'] .= '<source src="'.$a[$key].'" type="video/mp4" label="1080p" res="1080"/>'; elseif($c['itag'] == 38) $row['video'] .= '<source src="'.$a[$key].'" type="video/mp4" label="4K" res="1714"/>'; elseif($c['itag'] == 43) $row['video'] .= '<source src="'.$a[$key].'" type="video/webm" codecs="vorbis" label="WEBM 360p" res="360"/>'; elseif($c['itag'] == 44) $row['video'] .= '<source src="'.$a[$key].'" type="video/webm" codecs="vorbis" label="WEBM 480p" res="480"/>'; elseif($c['itag'] == 45) $row['video'] .= '<source src="'.$a[$key].'" type="video/webm" codecs="vorbis" label="WEBM 720p" res="720"/>'; } } else $row['video'] = '<iframe type="ext/html" width="770" height="440" src="http://www.youtube.com/embed/'.$row['video'].'" frameborder="0"></iframe>'; } else $row['video'] = '<source src="'.$row['video'].'" type="video/mp4"/>'; if($check_link || !$row['yid']){ $row['video'] = '<link href="/vplayer/video-js.min.css" rel="stylesheet"> <link href="/vplayer/videojs-resolution-switcher.css" rel="stylesheet"> <video id="video_1" class="video-js vjs-default-skin" width="770" height="420" poster="'.$row['photo'].'" controls data-setup=\'{}\'>'.$row['video'].'</video> <script src="/vplayer/video.js"></script> <script src="/vplayer/videojs-resolution-switcher.js"></script> <script> videojs(\'#video_1\').videoJsResolutionSwitcher(); </script>'; } 3.В system/modules/video.php после $row = $db->super_query("SELECT tb1.video, вставить yid, 4.После строки, которая написана выше вставить: if($row['yid']){ $a = getVideoUrl($row['video']); $aaa = getRemoteFileSize($a[0]); if($aaa > 0) $check_link = true; else $check_link = false; } 5.В templates/Default/video/full.tpl заменить <div id="video_object">{video}</div> на: {video} 6.В templates/Default/js/profile.js заменить var pattern = new RegExp(/http:\/\/www.youtube.com|http:\/\/youtube.com|http:\/\/rutube.ru|http:\/\/www.rutube.ru|http:\/\/www.vimeo.com|http:\/\/vimeo.com|http:\/\/smotri.com|http:\/\/www.smotri.com/i); на: var pattern = new RegExp(/https:\/\/www.youtube.com|http:\/\/youtube.com|http:\/\/www.youtube.com|http:\/\/youtube.com/i); 7.В system/modules/videos.php заменить от case "send": до break; на: case 'send': NoAjaxQuery(); if($config['video_mod_add'] == 'yes'){ $good_video_lnk = ajax_utf8(textFilter($_POST['good_video_lnk'])); $good_video_lnk = str_replace("https", "http", $good_video_lnk); $title = ajax_utf8(textFilter($_POST['title'], false, true)); $descr = ajax_utf8(textFilter($_POST['descr'], 3000)); $privacy = intval($_POST['privacy']); if($privacy <= 0 OR $privacy > 3) $privacy = 1; $youtube_id = 0; if(preg_match("/src=\"http:\/\/www.youtube.com|src=\"http:\/\/youtube.com/i", 'src="'.$good_video_lnk)){ $good_video_lnk = str_replace(array('#', '!'), '', $good_video_lnk); $exp_y = explode('v=', $good_video_lnk); $exp_x = explode('&', $exp_y[1]); $result_video_lnk = $exp_x[0]; $youtube_id = 1; } $photo = $db->safesql(ajax_utf8(htmlspecialchars(trim($_POST['photo'])))); $photo = str_replace("\\", "/", $photo); $img_name_arr = explode(".", $photo); $img_format = totranslit(end($img_name_arr)); $image_name = substr(md5(time().md5($good_video_lnk)), 0, 15); $allowed_files = array('jpg', 'jpeg', 'jpe', 'png', 'gif'); if(in_array(strtolower($img_format), $allowed_files) && preg_match("/http:\/\//i", $photo) && $result_video_lnk){ $upload_dir = ROOT_DIR.'/uploads/videos/'.$user_id; if(!is_dir($upload_dir)){ @mkdir($upload_dir, 0777); @chmod($upload_dir, 0777); } include ENGINE_DIR.'/classes/images.php'; @copy($photo, $upload_dir.'/'.$image_name.'.'.$img_format); $tmb = new thumbnail($upload_dir.'/'.$image_name.'.'.$img_format); $tmb->size_auto('175x131'); $tmb->jpeg_quality(100); $tmb->save($upload_dir.'/'.$image_name.'.'.$img_format); } if($result_video_lnk AND $title){ $photo = $config['home_url'].'uploads/videos/'.$user_id.'/'.$image_name.'.'.$img_format; $db->query("INSERT INTO `".PREFIX."_videos` SET yid = '{$youtube_id}', owner_user_id = '{$user_id}', video = '{$result_video_lnk}', photo = '{$photo}', title = '{$title}', descr = '{$descr}', add_date = NOW(), privacy = '{$privacy}'"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_videos_num = user_videos_num+1 WHERE user_id = '{$user_id}'"); $photo = str_replace($config['home_url'], '/', $photo); $generateLastTime = $server_time-10800; $row = $db->super_query("SELECT ac_id, action_text FROM `".PREFIX."_news` WHERE action_time > '{$generateLastTime}' AND action_type = 2 AND ac_user_id = '{$user_id}'"); if($row) $db->query("UPDATE `".PREFIX."_news` SET action_text = '{$dbid}|{$photo}||{$row['action_text']}', action_time = '{$server_time}' WHERE ac_id = '{$row['ac_id']}'"); else $db->query("INSERT INTO `".PREFIX."_news` SET ac_user_id = '{$user_id}', action_type = 2, action_text = '{$dbid}|{$photo}', action_time = '{$server_time}'"); mozg_mass_clear_cache_file("user_{$user_id}/page_videos_user|user_{$user_id}/page_videos_user_friends|user_{$user_id}/page_videos_user_all|user_{$user_id}/profile_{$user_id}|user_{$user_id}/videos_num_all|user_{$user_id}/videos_num_friends"); if($_POST['notes'] == 1) echo "{$photo}|{$user_id}|{$dbid}"; } } else echo 'error'; die(); break; 8.В system/modules/videos.php заменить от case "load": до break; на: case 'load': NoAjaxQuery(); $video_lnk = $_POST['video_lnk']; $video_lnk = str_replace("https", "http", $video_lnk); if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){ if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){ $exp_y = explode('v=', $video_lnk); $exp_x = explode('&', $exp_y[1]); $sock = fopen('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$exp_x[0].'&format=xml', 'r'); } else $sock = fopen($video_lnk, 'r'); if(!$sock) echo 'no_serviece'; else { $html = ''; if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){ while(!feof($sock)) $html .= fgets($sock); } fclose($sock); $data = str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html); $data_all = ajax_utf8(str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html)); if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){ preg_match_all('`(<title>[^\[]+\</title>)`si', $data_all, $parse); $res_title = rn_replace(str_replace(array('<title>', '</title>'), '', $parse[1][0])); $parse_start = explode('v=', $video_lnk); $parse_end = explode('&', $parse_start[1]); $res_img = "http://img.youtube.com/vi/{$parse_end[0]}/0.jpg"; } $result_img = $res_img; $result_title = trim(strip_tags(strtr($res_title, array('&#39;' => "'", '&quot;' => '"', '&iqu;' => '[', '&iqu2;' => ']')))); $result_descr = trim(strip_tags($res_descr)); if($result_img && $result_title) echo "{$result_img}:|:{$result_title}:|:{$result_descr}"; else echo 'no_serviece'; } } else echo 'no_serviece'; die(); break; 9.В system/modules/videos.php заменить от case "addmylist": до break; на: case "addmylist": NoAjaxQuery(); $vid = intval($_POST['vid']); $row = $db->super_query("SELECT video, photo, title, descr, yid FROM `".PREFIX."_videos` WHERE id = '{$vid}'"); if($row AND $config['video_mod_add_my'] == 'yes'){ //Директория загрузки фото $upload_dir = ROOT_DIR.'/uploads/videos/'.$user_id; //Если нет папки юзера, то создаём её if(!is_dir($upload_dir)){ @mkdir($upload_dir, 0777); @chmod($upload_dir, 0777); } $expPhoto = end(explode('/', $row['photo'])); @copy($row['photo'], ROOT_DIR."/uploads/videos/{$user_id}/{$expPhoto}"); $newPhoto = "{$config['home_url']}uploads/videos/{$user_id}/{$expPhoto}"; $row['video'] = $db->safesql($row['video']); $row['descr'] = $db->safesql($row['descr']); $row['title'] = $db->safesql($row['title']); $db->query("INSERT INTO `".PREFIX."_videos` SET yid = '{$row['yid']}',owner_user_id = '{$user_id}', video = '{$row['video']}', photo = '{$newPhoto}', title = '{$row['title']}', descr = '{$row['descr']}', add_date = NOW(), privacy = 1"); $dbid = $db->insert_id(); $db->query("UPDATE `".PREFIX."_users` SET user_videos_num = user_videos_num+1 WHERE user_id = '{$user_id}'"); //Чистим кеш mozg_mass_clear_cache_file("user_{$user_id}/page_videos_user|user_{$user_id}/page_videos_user_friends|user_{$user_id}/page_videos_user_all|user_{$user_id}/profile_{$user_id}|user_{$user_id}/videos_num_all|user_{$user_id}/videos_num_friends"); } die(); break; 10.Залить в корень сайта папку vplayer HTML5 видеоплеер + YouTube.rar
×
×
  • Создать...