1. Делаем запрос к нашей базе
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `vii_videos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`owner_user_id` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`descr` text NOT NULL,
`video` text NOT NULL,
`video_unlink` text NOT NULL,
`comm_num` mediumint(50) NOT NULL,
`add_date` varchar(50) NOT NULL,
`views` int(11) NOT NULL,
`user_name` varchar(50) NOT NULL,
`photo_num` mediumint(11) NOT NULL,
`photo_original` text NOT NULL,
`photo` text NOT NULL,
`privacy` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
2. Открываем файл videos.php
который лежит у нас в -> system/modules/videos.php
Ищем
Код: Выделить всё
//################### Добавление видео в БД ###################//
case "send":
NoAjaxQuery();
//Код..............
die();
break;
Ниже вставляем следующий код
Код: Выделить всё
//################### Страница добавления видео ###################//
case "upload_add":
$tpl->load_template('videos/upload.tpl');
$tpl->compile('content');
AjaxTpl();
die();
break;
//################### Загрузка с компьютера ###################//
case "upload":
// Получаем данные о файле
$file_tmp = $_FILES['uploadfile']['tmp_name'];
// Оригинальное название для оприделения формата
$file_name = totranslit($_FILES['uploadfile']['name']);
// Получаем уникальное имя для файла
$file_rename = substr(md5($server_time+rand(1,100000)), 0, 15);
// Размер файла
$file_size = $_FILES['uploadfile']['size'];
// Формат файла
$type = strtolower(end(explode(".", $file_name)));
// Поддержка форматов, конфигурацыя модуля.
if($type == 'mp4'||'mpeg'||'avi'||'ogg'||'flv' AND $config['video_mod_add'] == 'yes' AND $file_size < 500000000){
// Формирование текста и запись.
$title = ajax_utf8(textFilter($_POST['title'], false, true));
$descr = ajax_utf8(textFilter($_POST['descr'], 3000));
// Если нету названия и описания то автоматически записываем в таблицу об этом.
if(isset($title) AND empty($title)) $title = 'Видео без названия.';
if(isset($descr) AND empty($descr)) $descr = 'Информация о видео отсутствует.';
// Приватность просмотра видеоматериала.
$privacy = intval($_POST['privacy']);
if($privacy <= 0 OR $privacy > 3) $privacy = 1;
// Создаем или ищем созданый рание путь загрузки видеоматериала.
$video_dir = ROOT_DIR.'/uploads/videos/'.$user_id.'/';
if(!is_dir($video_dir)){
@mkdir($video_dir, 0777);
@chmod($video_dir, 0777);
}
//Подключаем библиотеку ffmpeg.
if( stristr($_SERVER['HTTP_USER_AGENT'], 'Windows NT 6.1') ) {
$path_to_mpeg = module_root .'/usr/bin/ffmpeg/ffmpeg.exe';
}else {
$path_to_mpeg = module_root .'/usr/bin/ffmpeg';
}
// Получаем росширение файла.
$res_type = '.'.$type;
// Генерируем путь куда будет загружено видео материалы.
if(move_uploaded_file($file_tmp, $video_dir.$file_rename.$res_type)){
// URL Самого видео обекта.
$result_video = $config['home_url'].'uploads/videos/'.$user_id.'/'.$file_rename.$res_type;
// Конвертируем видео материал в flv. exec
//$convert = $video_dir.$file_rename.'.flv';
//$formating = exec(''.$result_video.' -i '.$file_tmp.' -f flv -b 200000 '.$convert.'');
// Создаем обьект из видео файла
$mov = new ffmpeg_movie($result_video, false);
// Получаем высоту и ширину
$w = $mov->GetFrameWidth();
$h = $mov->GetFrameHeight();
// Берем третий кадр
$frame = $mov->getFrame(400);
// Создаем ресурс кадра
$gd = $frame->toGDImage();
// Создаем картинку с размерами
$image_stat = imageCreateTrueColor(180, 130);
$image_orig = imageCreateTrueColor(640, 480);
// Заносим на нее наш кадр и изменяем его размеры
imageCopyResampled($image_stat, $gd, 0, 0, 0, 0, 180, 130, $w, $h);
imageCopyResampled($image_orig, $gd, 0, 0, 0, 0, 640, 480, $w, $h);
// Выводим JPEG картинку
@imagejpeg($image_stat, 'uploads/videos/'.$user_id.'/'.$file_rename.'.jpg', 100);
@imagejpeg($image_orig, 'uploads/videos/'.$user_id.'/original_'.$file_rename.'.jpg', 100);
// Чистим toGDImage
imagedestroy($image_stat, $image_orig);
// Получаем сылку к нашому обекту.
$result_img = $config['home_url'].'uploads/videos/'.$user_id.'/'.$file_rename.'.jpg';
$result_img_original = $config['home_url'].'uploads/videos/'.$user_id.'/original_'.$file_rename.'.jpg';
// Компилируем сам код для прогрователя.
$frame_video = '<object width="770" height="420" id="sonetticFLVPlayer" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0">
<param name="movie" value="'.$config['home_url'].'swf/cinemaplayer.swf"/>
<param name="allowFullScreen" value="true"/>
<param name="allowScriptAccess" value="sameDomain" />
<param name="bgcolor" value="#161616"/>
<param name="flashvars" value="'.$result_video.'"/>
<embed src="'.$config['home_url'].'swf/cinemaplayer.swf" name="sonetticFLVPlayer" type="application/x-shockwave-flash" width="770" height="420" bgcolor="#161616" allowFullScreen="true" allowScriptAccess="sameDomain" flashvars="poster='.$result_img_original.'&content='.$result_video.'"> </embed>
</object>';
// Вносим запись о видео материале.
$db->query("INSERT INTO `".PREFIX."_videos` SET owner_user_id = '{$user_id}', video = '{$frame_video}', video_unlink = '{$result_video}', photo_original = '{$result_img_original}', photo = '{$result_img}', title = '{$title}', descr = '{$descr}', add_date = NOW(), privacy = '{$privacy}'");
// Получаем ID
$dbid = $db->insert_id();
// Перезаписываем запись о количестве видео Usera.
$db->query("UPDATE `".PREFIX."_users` SET user_videos_num = user_videos_num+1 WHERE user_id = '{$user_id}'");
// Регенирируем сылку обекта (фотографии).
$photo = str_replace($config['home_url'], '/', $result_img);
//Добавляем действия в ленту новостей
$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");
} else
echo 1;
} else
echo 1;
die();
break;
Тут же ищем
Код: Выделить всё
//################### Удаление видео ###################//
и полностю меняем код на
Код: Выделить всё
//################### Удаление видео ###################//
case "delet":
NoAjaxQuery();
$vid = intval($_POST['vid']);
if($vid){
$row = $db->super_query("SELECT owner_user_id, photo, video_unlink FROM `".PREFIX."_videos` WHERE id = '{$vid}'");
if($row['owner_user_id'] == $user_id){
$db->query("DELETE FROM `".PREFIX."_videos` WHERE id = '{$vid}'");
$db->query("DELETE FROM `".PREFIX."_videos_comments` WHERE video_id = '{$vid}'");
$db->query("UPDATE `".PREFIX."_users` SET user_videos_num = user_videos_num-1 WHERE user_id = '{$row['owner_user_id']}'");
// Удаляем фотку
$exp_photo = explode('/', $row['photo']);
$photo_name = end($exp_photo);
@unlink(ROOT_DIR.'/uploads/videos/'.$row['owner_user_id'].'/'.$photo_name);
// Удаляем видео, если было оно загруженое с компютера..
$exp_unlink = explode('/', $row['video_unlink']);
$video_name = end($exp_unlink);
@unlink(ROOT_DIR.'/uploads/videos/'.$row['owner_user_id'].'/'.$video_name);
// Удаляем видео, если было оно загруженое с компютера..
$exp_photo_original = explode('/', $row['photo']);
$photo_original_name = end($exp_photo_original);
@unlink(ROOT_DIR.'/uploads/videos/'.$row['owner_user_id'].'/original_'.$photo_original_name);
// Чистим кеш
mozg_mass_clear_cache_file("user_{$row['owner_user_id']}/page_videos_user|user_{$row['owner_user_id']}/page_videos_user_friends|user_{$row['owner_user_id']}/page_videos_user_all|user_{$row['owner_user_id']}/profile_{$row['owner_user_id']}|user_{$row['owner_user_id']}/videos_num_all|user_{$row['owner_user_id']}/videos_num_friends");
}
}
die();
break;
3. Из архива файл upload.tpl
заливаем в папку templates/Default/videos/
4. Открываем head.tpl
который находится в папке templates/Default/videos/.
После:
Код: Выделить всё
[admin-video-add][owner]<a href="/" onClick="videos.add(); return false;">Добавить видеоролик</a>[/owner][/admin-video-add]
Добавить:
Код: Выделить всё
[admin-video-add][owner]<a href="/" onClick="videos.addbox(); return false;">С компьютера</a>[/owner][/admin-video-add]
5. Открываем нашу стилевую таблицу
templates/Default/style/style.css и добавляем стиль
Код: Выделить всё
/* FACEMY VIDEO */
.fm_item_info{line-height: 27px;margin-bottom: 10px;border: 1px solid gainsboro;padding: 15px;background: white;-moz-transition: all 0.5s linear;-o-transition: all 0.5s linear;-webkit-transition: all 0.5s linear;}
.fm_item_info:hover{line-height: 27px;margin-bottom: 10px;border: 1px solid #B49494;padding: 15px;background-color: #F7F3F3;}
.fmvideos_input_1,.fmvideos_input_2{border: 1px solid #DCC6C6;padding: 6px;width: 485px;background: white;margin-bottom: 10px;-moz-transition: all 0.4s linear;-o-transition: all 0.4s linear;-webkit-transition: all 0.4s linear;}
.fmvideos_input_1:hover,.fmvideos_input_2:hover{padding: 6px;width: 485px;margin-bottom: 10px;border: 1px solid #B49494;}
.fmv_add {float:left;border: 1px solid #DDD;font: bold 11px Sans-Serif;padding: 6px 10px;white-space: nowrap;vertical-align: middle;color: #666;background: transparent;cursor: pointer;}
.fmv_add:hover {border-color: #999;background: -webkit-linear-gradient(top, white, #E0E0E0);background:-moz-linear-gradient(top, white, #E0E0E0);background: -ms-linear-gradient(top, white, #E0E0E0);background:-o-linear-gradient(top, white, #E0E0E0);}
.fmv_hidden{display:none}
.fmv_hidden{cursor: pointer;font-weight: bold;color: #913030;}
.fmv_cle{margin:25px 192px 10px 192px;text-align:center;}
#fmv_loading{margin:20px 140px 20px 140px;}
#fmv_info{background:#f8f8f8;padding:10px;text-align:center;border:1px solid #E4BBBB;-moz-transition: all 0.4s linear;-o-transition: all 0.4s linear;-webkit-transition: all 0.4s linear;}
6. Папку swf закидываем в корень сайта
http://my.syty.com/swf/ - так должен выглядить путь к файлу (проигрыватель).
7. В templates/Default/js/profile.js
Ищем:
Код: Выделить всё
addmylist: function(vid){
$('#addok').html('Добавлено');
$.post('/index.php?go=videos&act=addmylist', {vid: vid});
},
после него вставляем
Код: Выделить всё
addbox: function(){
$('.js_titleRemove').remove();
viiBox.start();
$.post('/index.php?go=videos&act=upload_add', function(d){
viiBox.win('fmv_mouse', d);
});
},
reload_list: function(){
var title = $('#title').val();
var descr = $('#descr').val();
if(title != 0){
if(descr != 0){
$.post('/index.php?go=videos&act=upload', {title: title, descr: descr}, function(d){
Page.Go('/videos');
});
}
else
Box.Info('msg_videos', lang_dd2f_no, 'Опишите ваш видео ролик', 300);
} else
Box.Info('msg_videos', lang_dd2f_no, lang_videos_no_url, 300);
}
ВНИМАНИЕ! ШАБЛОН ДОЛЖЕН БЫТЬ DEFAULT НАЗВАНИЕ ИНАЧЕ МОЖЕТ НЕ ЗАРАБОТАТЬ!