Vii Engine - загрузка видео с компьютера

Описание: Различные движки на PHP
Модератор: Aleksandr

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 15 января 2016, 1:24

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=;


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 НАЗВАНИЕ ИНАЧЕ МОЖЕТ НЕ ЗАРАБОТАТЬ!
Вложения
zakgruzka-video-s-pk.rar
(166.97 КБ) 397 скачиваний
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Другие движки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость