Jump to content

KirCMS

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

0

Followers

55

Content count

Country

Genre

Zodiac

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Enable
  1. Я этому научился как только вии в руки взял
  2. Немного изменений Зайти в файл \system\inc\system.php Найти там $for_select_video_mod_add = installationSelected($config['video_mod_add'], '<option value="yes">Да</option><option value="no">Нет</option>'); Добавить после $for_select_video_mod_add_pub = installationSelected($config['video_mod_add_pub'], '<option value="yes">Да</option><option value="no">Нет</option>'); Найти <div class="fllogall">Разрешить добавление видео:</div><select name="save[video_mod_add]" class="inpu" style="width:auto">{$for_select_video_mod_add}</select><div class="mgcler"></div> Добавить после <div class="fllogall">Разрешить добавление видео в группы:</div><select name="save[video_mod_add_pub]" class="inpu" style="width:auto">{$for_select_video_mod_add_pub}</select><div class="mgcler"></div> Зайти в файл\system\data\config.php найти 'video_mod_add' => "yes", и добавить после 'video_mod_add_pub' => "yes", И если кто уже успел поставить модуль, то в файл \system\modules\public_videos.php найти if($config['video_mod_add'] == 'yes'){ и заменить на if($config['video_mod_add_pub'] == 'yes'){
  3. Всем доброго времени суток. Решил написать модуль для публичного доступа. Модуль позволяет добавлять видеозаписи администраторам группы. Сделана поддержка подавления через https:// Скрины под сполером Установка Создать файл add.tpl по пути templates\Default\public_videos Добавить в него <script type="text/javascript">$('#box_but').css('display', 'none');</script> <div class="videos_pad"> <div class="videos_text">Ссылка на видеоролик</div> <input type="text" class="videos_input" id="video_lnk" onKeyUp="pub_videos.load()" style="margin-bottom:5px" /> <span id="vi_info"> <span id="no_serviece">Видеосервис не поддерживается либо ссылка является неправильной<br /></span> Поддерживаемые видеосервисы: <b>YouTube</b>, <b>RuTube.Ru</b>, <b>Vimeo.Com</b>, <b>Smotri.Com</b> </span> <div id="result_load" class="no_display"> <br /> <div class="videos_text">Изображение</div> <div id="photo" class="videos_res_photos"></div> <div class="clear"></div> <div class="videos_text">Название</div> <input type="text" class="videos_input" id="title" maxlength="65" /> <div class="videos_text">Описание</div> <textarea class="videos_input" id="descr" style="height:70px"></textarea> <input type="hidden" id="good_video_lnk" /> <input type="hidden" id="privacy" value="1" /> </div> </div> <div class="clear"></div> Зайти в файл \templates\Default\public_videos\top.tpl Найти там {videos-num}| добавить после этого [admin-group]<a href="/" onClick="pub_videos.add({pid}, {aid}); return false;" style="font-weight:normal">Добавить видео</a> | [/admin-group] Зайти в файл \system\modules\public_videos.php Найти там switch($act){ Добавить после //################### Страница добавления видео ###################// case "box_add": NoAjaxQuery(); $pid = intval($_POST['pid']); $aid = intval($_POST['aid']); //Проверка на админа $infoGroup = $db->super_query("SELECT videos_num, adres, admin FROM `".PREFIX."_communities` WHERE id = '{$pid}'"); //if(strpos($infoGroup['admin'], "u{$user_id}|") !== false){ $tpl->load_template('public_videos/add.tpl'); $tpl->compile('content'); //}else echo 'BAD'; AjaxTpl(); die(); break; //################### Парсер . Загрузка данных о видео ###################// case "load": NoAjaxQuery(); $video_lnk = $_POST['video_lnk']; if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i", $video_lnk)){ //Открываем ссылку //Если ссылка youtube, то формируем xml ссылку для получения данных if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/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'); } elseif(preg_match("/http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com/i", $video_lnk)){ $sock = fopen('http://vimeo.com/api/oembed.xml?url='.$video_lnk, 'r'); } else { $sock = fopen($video_lnk, 'r'); } if(!$sock){ echo 'no_serviece'; } else { $html = ''; //Если сервис youtube, rutube, smotri то просто выводи if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i", $video_lnk)){ while(!feof($sock)){ $html .= fgets($sock); } } //Если сервис Vimeo, то сразу применяем кодировку utf-8, win-1251 if(preg_match("/http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com/i", $video_lnk)){ while(!feof($sock)){ $html .= ajax_utf8(fgets($sock)); } } fclose($sock); //Если сервис Vimeo, то выводим без кодировки $data = str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html); //Если сервис youtube применяем кодировку utf-8, win-1251 $data_all = ajax_utf8(str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html)); //Если видеосервис youtube if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/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])); //Делаем фотку для youtube $parse_start = explode('v=', $video_lnk); $parse_end = explode('&', $parse_start[1]); $res_img = "http://img.youtube.com/vi/".$parse_end[0]."/0.jpg"; } //Если видеосервис rutube if(preg_match("/http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru/i", $video_lnk)){ $data_rutube = iconv('koi8-u', 'windows-1251', str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html)); preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:description")`si', $data_rutube, $parse_rutube); $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:description"', '" />'), '', $parse_rutube[1][0])); preg_match_all('`(<meta property="og:description" content="[^\[]+\<meta property="og:image")`si', $data_rutube, $parse_rutube_descr); $res_descr = rn_replace(str_replace(array('<meta property="og:description" content="', '<meta property="og:image"', '" />'), '', $parse_rutube_descr[1][0])); $exp_rutube_img = explode('v=', $video_lnk); $exp_img_dir = substr($exp_rutube_img[1], 0, 2); $exp_img_dir_2 = substr($exp_rutube_img[1], 2, 2); $res_img = "http://tub.rutube.ru/thumbs/{$exp_img_dir}/{$exp_img_dir_2}/{$exp_rutube_img[1]}-1.jpg"; } //Если видеосервис vimeo if(preg_match("/http:\/\/www.vimeo.com|http:\/\/vimeo.com/i", $video_lnk)){ preg_match_all('`(<title>[^\[]+\</title>)`si', $data, $parse); $res_title = str_replace(array('<title>', '</title>'), '', $parse[1][0]); preg_match_all('`(<thumbnail_url>[^\[]+\</thumbnail_url>)`si', $data, $parse_img); $res_img = str_replace(array('<thumbnail_url>', '</thumbnail_url>'), '', $parse_img[1][0]); preg_match_all('`(<description>[^\[]+\</description>)`si', $data, $parse_descr); $res_descr = myBrRn(rn_replace($parse_descr[1][0])); } //Если видеосервис smotri if(preg_match("/http:\/\/smotri.com|http:\/\/www.smotri.com/i", $video_lnk)){ $html = iconv('utf-8', 'windows-1251', $html); preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:image")`si', $html, $parse_title); $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:image"', '" />'), '', $parse_title[1][0])); preg_match_all('`(<link rel="image_src" href="[^\[]+\<!-- Open Graf Protocol. Facebook/Yandex -->)`si', $html, $parse_img); $res_img = rn_replace(str_replace(array('<link rel="image_src" href="', '<!-- Open Graf Protocol. Facebook/Yandex -->', '" />'), '', $parse_img[1][0])); } $result_img = $res_img; $result_title = trim(strip_tags(strtr($res_title, array(''' => "'", '"' => '"', '&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; //################### Добавление видео в БД ###################// case "sends": NoAjaxQuery(); if($config['video_mod_add_pub'] == 'yes'){ $good_video_lnk = ajax_utf8(textFilter($_POST['good_video_lnk'])); $title = ajax_utf8(textFilter($_POST['title'], false, true)); $descr = ajax_utf8(textFilter($_POST['descr'], 3000)); $privacy = intval($_POST['privacy']); $pid = intval($_POST['pid']); //Проверка на админа $infoGroup = $db->super_query("SELECT videos_num, adres, admin FROM `".PREFIX."_communities` WHERE id = '{$pid}'"); if(strpos($infoGroup['admin'], "u{$user_id}|") !== false){ //Если youtube то добавляем префикс src=" и составляем ответ для скрипта, для вставки в БД if(preg_match("/src=\"http(?:s)?:\/\/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 = '<iframe width="770" height="420" src="http://www.youtube.com/embed/'.$exp_x[0].'" frameborder="0" allowfullscreen></iframe>'; } //Если rutube, То добавляем префикс value=" if(preg_match("/value=\"http(?:s)?:\/\/www.rutube.ru|value=\"http:\/\/rutube.ru/i", 'value="'.$good_video_lnk)){ $exp_frutube = explode('?v=', $good_video_lnk); $result_video_lnk = '<OBJECT width="770" height="420"><PARAM name="movie" value="http://video.rutube.ru/'.$exp_frutube[1].'"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/'.$exp_frutube[1].'" type="application/x-shockwave-flash" wmode="window" width="770" height="420" allowFullScreen="true" ></EMBED></OBJECT>'; } //Если vimeo, То добавляем префикс src=" if(preg_match("/src=\"http(?:s)?:\/\/www.vimeo.com|src=\"http:\/\/vimeo.com/i", 'src="'.$good_video_lnk)){ $exp_frutube = explode('com/', $good_video_lnk); $result_video_lnk = '<iframe src="http://player.vimeo.com/video/'.$exp_frutube[1].'" width="770" height="420" frameborder="0"></iframe>'; } //Если smotri, То добавляем префикс src=" if(preg_match("/src=\"http(?:s)?:\/\/www.smotri.com|src=\"http:\/\/smotri.com/i", 'src="'.$good_video_lnk)){ $exp = explode('id=', str_replace('#', '', $good_video_lnk)); $result_video_lnk = '<object id="smotriComVideoPlayer'.$exp[1].'_1314557535.5897_7726" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="770" height="420"><param name="movie" value="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="opaque" width="770" height="420" type="application/x-shockwave-flash"></embed></object>'; } //Формируем данные о фото $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 public_id = '{$pid}', owner_user_id = '{$user_id}', video = '{$result_video_lnk}', photo = '{$photo}', title = '{$title}', descr = '{$descr}', add_date = NOW(), privacy = 1"); $db->query("UPDATE `".PREFIX."_communities` SET videos_num = videos_num + 1 WHERE id = '{$pid}'"); $dbid = $db->insert_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"); mozg_clear_cache_file("groups/video{$pid}"); } } else echo 'BAD'; } else echo 'error'; die(); break; Зайти в файл \templates\Default\js\profile.js Найти там //VIDEOS var videos = { Добавить выше //PUBLIC VIDEOS var pub_videos = { add: function(pid, aid) { $.post('/index.php?go=public_videos&act=box_add', {pid: pid, aid: aid}, function(data){ Box.Close(); if(data == 'BAD') Box.Info('paybad', 'Ошибка', 'Вы не админ группы', 200, 2000); else Box.Page('/index.php?go=public_videos&act=box_add', 'pid=' + pid + '&aid=' + aid, 'add_video', 510, lang_video_new, lang_box_canсel, lang_album_create, 'pub_videos.send(' + pid + '); return false', 0, 0, 1, 1, 'video_lnk'); }); }, load: function() { video_lnk = $('#video_lnk').val(); good_video_lnk = $('#good_video_lnk').val(); if (pub_videos.serviece(video_lnk)) { if (video_lnk != 0) { if (video_lnk != good_video_lnk) { $('#box_loading').show(); $.post('/index.php?go=public_videos&act=load', { video_lnk: video_lnk }, function(data) { if (data == 'no_serviece') { $('#no_serviece').show(); } else { row = data.split(':|:'); $('#result_load').show(); $('#photo').html('<img src="' + row[0] + '" alt="" id="res_photo_ok" />'); $('#title').val(row[1]); $('#descr').val(row[2]); $('#good_video_lnk').val(video_lnk); $('#no_serviece').hide(); } $('#box_but').show(); $('#box_loading').hide(); }); } else $('#no_serviece').hide(); } else $('#result_load').hide(); } else $('#no_serviece').show(); }, serviece: function(request) { var pattern = new RegExp(/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i); return pattern.test(request); }, send: function(pid) { title = $('#title').val(); good_video_lnk = $('#good_video_lnk').val(); descr = $('#descr').val(); photo = $('#res_photo_ok').attr('src'); if (good_video_lnk != 0) { if (title != 0) { $('#box_loading').show(); $('#box_but').hide(); $.post('/index.php?go=public_videos&act=sends', { pid: pid, title: title, good_video_lnk: good_video_lnk, descr: descr, photo: photo }, function(d) { if(d == 'BAD') Box.Info('paybad', 'Ошибка', 'Вы не админ группы', 200, 2000); else $('#box_loading').hide(); Box.Close('add_video'); d = d.split('|'); if (notes == 1) wysiwyg.boxVideo('http://' + location.host + d[0], d[1], d[2]); else Page.Go('/public/videos'+ pid +''); }); } else Box.Info('msg_videos', lang_dd2f_no, lang_videos_no_url, 300); } else Box.Info('msg_videos', lang_dd2f_no, lang_videos_no_url, 300); }, } Вот и установка закончена. По запросам, могу сделать модуль Видеоальбомы для групп. БУДУ ОЧЕНЬ БЛАГОДАРЕН ТЕМ КТО ПОСТАВИТ + В РЕПУТАЦИЮ. Так же можно заказать любой модуль у меня писать в лс или вк https://vk.com/izya_sakh До новых встреч
  4. Через админку ёпте.Статические страницы.Самый просто вариант
  5. KirCMS

    BootPay для Vii Engine

    Могу написать такой, но гораздо дешевле.Обращайтесь
  6. На вкус и цвет, дизайна нет!!!
  7. Я вон доработал парсер и граббер из вк.Это куда лучше и аватарки грузит
  8. Рылся у себя на старом харде и нашел сбороку.Она так и не попала не кому в руки. На сколько помню, сам автор вручил её мне для доработки. Косяков много, но это дело поправимое. Цена 500р Писать в Лс или вк https://vk.com/izya_sakh Остальные Скрыны под спойлером
  9. Продам модуль промо коды.Идеально подойдёт для привлечения пользователей на сайт. На данный момент есть 2 типа кодов.Это зачисление голосов и % при пополнении. Стоимость 300р. Каждое обновление бесплатное Обращаться в вк https://vk.com/izya_sakh Или в Лс
  10. На dle встанет, но очень много править надо будет
  11. Работает нормально.Ставить нужно уметь
  12. Тогда красава.Извини за наезд

The recent visitors block is disabled and is not being shown to other users.

Enable
×