Ставил для себя, решил поделиться.
Сразу отмечу, что в данном случае используется приватный трекер, поэтому как вы будете выдавать торрент-файл плееру решайте/делайте сами. В данном примере подразумевается наличие на хостинге папки TorrentTube в которой находятся торренты с пасскеями кого-либо из пользователей.
Ищем подобную строку в details.php:
tr("Описание", format_comment($row["descr"]), 1);
Если у вас движок от Yuna, то ищем
tr($tracker_lang['description'], format_comment($row["descr"]), 1, 1);
и вставляем ниже (можно выше, перед "if (!empty($row["descr"]))" ) следующее:
if ($row["cat_id"] == "AAAAAAA") {
require_once('ts_client.php');
define('API_KEY', 'XXXXXXXXX');
define('ZONE_ID', YYYYYYYYY);
$client = new TS_Client(API_KEY);
$path = "./TorrentTube/$row[filename].torrent"; //путь к торрентам
$torrent_data = file_get_contents($path);
$content_name = 'Test content';
$duration = 6738; //можно было бы брать из БД конкретно под каждый торрент, но не увидел где это вообще используется.
$content_uid = $client->add_content(ZONE_ID, base64_encode($torrent_data), $content_name, $duration);
$on = "<div id=\"content\" style=\"position: relative; width: 720px; height: 304px; margin: 0 auto; background: #000 url('pic/bg_player.png') no-repeat 0 0;\">
<div id=\"ts_player\" style=\"width: 100%; height: 100%; color: #fff; text-align: center;\">Подождите, идет загрузка плеера...</div>
<script type=\"text/javascript\">
var tsHost = ((\"https:\" == document.location.protocol) ? \"https://\" : \"http://\");
document.write(unescape(\"%3Cscript src='\" + tsHost + \"torrentstream.net/p/" . $content_uid . "' type='text/javascript'%3E%3C/script%3E\"));
</script>
<script type=\"text/javascript\">
tsplayer(\"ts_player\", {width: \"720px\", height: \"304px\"});
</script>
</div>";
tr(Онлайн, $on, 1);
}
меняя XXXXXXXXX на свой "Код партнера", а YYYYYYYYY на ID вашей площадки (если не понимаете о чём речь читайте этот форум, всё доходчиво написано).
Так же в условии if, замените AAAAAAA на id вашей категории фильмов (если их несколько, то можно так: if ($row["cat_id"] == "AAAAAAA" || $row["cat_id"] == "BBBBBBB" и т.д.) { )
ts_client.php - брать тут:
http://torrentstream.net/download/?product=tsclient&version=latest и загрузить в корень.
Картинку в прикреплении залить в папку pic, но это не обязательно.
Полноценный мод для модификации движка TBDev от Yuna.Особенности:
- в настройках категорий функционально указывается использовать в категории плеер или нет
- в торрент файл добавляется пасскей смотрящего
SQL:
ALTER TABLE `categories` ADD `tstream` enum('yes','no') NOT NULL default 'no';
в category.php
ищем
if($edited == 1) {
после вставляем
$tstream = $_GET['tstream'];
ищем ниже на пару строк
image = ".sqlesc($cat_img).",
после вставляем
tstream = ".sqlesc($tstream).",
ищем
$img = htmlspecialchars_uni($_GET['img']);
после вставляем
$tstream = htmlspecialchars_uni($_GET['tstream']);
if ($tstream == "yes")
$checked = "checked";
else
$checked2 = "checked";
ищем
echo("<tr><td>Сортировка: </td><td align='right'><input type='text' size=50 name='cat_sort' value='$sort'></td></tr>");
после вставляем
echo("<tr><td>TorrentTube: </td><td align='right'><input type='radio' name='tstream' value='yes' $checked>Да <input type='radio' name='tstream' value='no' $checked2>Нет</td></tr>");
ищем
$img = $row['image'];
после вставляем
$tstream = $row['tstream'];
ищем
<a href='category.php?editid=$id&name=$name&img=$img&sort=$sort>
заменяем на:
<a href='category.php?editid=$id&name=$name&img=$img&sort=$sort&tstream=$tstream'>
в config.php добавляем перед "?>"
//Конфигурация TorrentTube
$ttube_key = "***"; // Код партнера
$ttube_id = "***"; // id площадки
// [END] Конфигурация TorrentTube
Заменяя *** на код партнера и id площадки соответственно
в details.php ищем
categories.id AS cat_id,
добавляем
categories.tstream AS cat_tstream,
ищем:
tr($tracker_lang['description'], format_comment($row["descr"]), 1, 1);
после вставляем:
// [START] TorrentTube
if ($row["cat_tstream"] == "yes") {
require_once('ts_client.php');
define('API_KEY', $ttube_key);
define('ZONE_ID', $ttube_id);
sql_query("UPDATE torrents SET hits = hits + 1 WHERE id = ".sqlesc($id));
require_once "include/benc.php";
$fn = "$torrent_dir/$id.torrent";
if (!$row || !is_file($fn) || !is_readable($fn))
stderr($tracker_lang['error'], $tracker_lang['unable_to_read_torrent']);
if (strlen($CURUSER['passkey']) != 32) {
$CURUSER['passkey'] = md5($CURUSER['username'].get_date_time().$CURUSER['passhash']);
sql_query("UPDATE users SET passkey=".sqlesc($CURUSER[passkey])." WHERE id=".sqlesc($CURUSER[id]));
}
$dict = bdec_file($fn, (1024*1024));
$dict['value']['announce']['value'] = $announce_urls[0]."?passkey=$CURUSER[passkey]";
$dict['value']['announce']['string'] = strlen($dict['value']['announce']['value']).":".$dict['value']['announce']['value'];
$dict['value']['announce']['strlen'] = strlen($dict['value']['announce']['string']);
$torrent_data = benc($dict);
$client = new TS_Client(API_KEY);
$content_name = $row['save_as'];
$duration = 6738;
$content_uid = $client->add_content(ZONE_ID, base64_encode($torrent_data), $content_name, $duration);
$on = "<div id=\"content\" style=\"position: relative; width: 720px; height: 304px; margin: 0 auto; background: #000 url('pic/bg_player.png') no-repeat 0 0;\">
<div id=\"ts_player\" style=\"width: 100%; height: 100%; color: #fff; text-align: center;\">Подождите, идет загрузка плеера...</div>
<script type=\"text/javascript\">
var tsHost = ((\"https:\" == document.location.protocol) ? \"https://\" : \"http://\");
document.write(unescape(\"%3Cscript src='\" + tsHost + \"torrentstream.net/p/" . $content_uid . "' type='text/javascript'%3E%3C/script%3E\"));
</script>
<script type=\"text/javascript\">
tsplayer(\"ts_player\", {width: \"720px\", height: \"304px\"});
</script>
</div>";
tr(Онлайн, $on, 1);
}
// [END] TorrentTube