- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
117 lines
5.9 KiB
PHP
117 lines
5.9 KiB
PHP
<?php
|
|
/*******************************************************************************************************************
|
|
| Software Name : EasyStream
|
|
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
|
|
| Software Author : (c) Sami Ahmed
|
|
|*******************************************************************************************************************
|
|
|
|
|
|*******************************************************************************************************************
|
|
| This source file is subject to the EasyStream Proprietary License Agreement.
|
|
|
|
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|
|
|*******************************************************************************************************************
|
|
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|
|
|*******************************************************************************************************************/
|
|
|
|
define('_ISVALID', true);
|
|
|
|
include_once 'f_core/config.core.php';
|
|
|
|
$type = 'blog';
|
|
$file_key = $class_filter->clr_str($_GET[$type[0]]);
|
|
$cfg[] = $class_database->getConfigurations('image_player,affiliate_tracking_id');
|
|
$u = $db->execute(sprintf("SELECT
|
|
A.`usr_key`,
|
|
B.`usr_id`,
|
|
B.`file_title`, B.`thumb_cache`
|
|
FROM
|
|
`db_accountuser` A, `db_%sfiles` B
|
|
WHERE
|
|
A.`usr_id`=B.`usr_id` AND
|
|
B.`file_key`='%s'
|
|
LIMIT 1;", $type, $file_key));
|
|
$usr_key = $u->fields["usr_key"];
|
|
$title = $u->fields["file_title"];
|
|
$thumb_cache = $u->fields["thumb_cache"];
|
|
$thumb_cache = $thumb_cache > 1 ? $thumb_cache : null;
|
|
$tmb = $cfg["media_files_url"] . '/' . $usr_key . '/t/' . $file_key . '/0' . $thumb_cache . '.jpg';
|
|
|
|
$href_key = 'blogs';
|
|
$blog_tpl = $cfg["media_files_dir"] . '/' . $usr_key . '/b/' . $file_key . '.tplb';
|
|
$blog_html = null;
|
|
|
|
if (file_exists($blog_tpl)) {
|
|
$blog_html = file_get_contents($blog_tpl);
|
|
$parse = preg_match_all("/\[([^]].*?)\]/", $blog_html, $matches);
|
|
$media = $matches[1];
|
|
|
|
if ($media[0]) {
|
|
foreach ($media as $media_entry) {
|
|
$a = explode("_", $media_entry);
|
|
|
|
$mtype = $a[1];
|
|
$mkey = $a[2];
|
|
|
|
/* embed code player sizes */
|
|
$ps = array();
|
|
$ps[0]["w"] = '100%';
|
|
$ps[0]["h"] = 500;
|
|
|
|
switch ($mtype[0]) {
|
|
case "l":
|
|
case "v": //embed code for video and audio is generated from within player cfg after initialization (class.players.php)
|
|
$vi = sprintf("SELECT A.`file_type`, A.`embed_src`, A.`embed_key`, A.`embed_url`, B.`usr_key` FROM `db_videofiles` A, `db_accountuser` B WHERE A.`usr_id`=B.`usr_id` AND A.`file_key`='%s' LIMIT 1;", $mkey);
|
|
$mrs = $db->execute($vi);
|
|
$msrc = $mrs->fields["file_type"];
|
|
$membed_src = $mrs->fields["embed_src"];
|
|
$membed_key = $mrs->fields["embed_key"];
|
|
$membed_url = $mrs->fields["embed_url"];
|
|
$mukey = $mrs->fields["usr_key"];
|
|
|
|
if ($msrc == 'embed') {
|
|
$mec = VPlayers::playerEmbedCodes($membed_src, array("key" => $membed_key, "url" => $membed_url), $ps[0]["w"], $ps[0]["h"]);
|
|
} else {
|
|
$mec = '<iframe id="file-embed-' . md5($mkey) . '" type="text/html" width="' . $ps[0]["w"] . '" height="' . $ps[0]["h"] . '" src="' . $cfg["main_url"] . '/embed?v=' . $mkey . '" frameborder="0" allowfullscreen></iframe>';
|
|
}
|
|
break;
|
|
case "a": //embed code for video and audio is generated from within player cfg after initialization (class.players.php)
|
|
$mec = '<iframe id="file-embed-' . md5($mkey) . '" type="text/html" width="' . $ps[0]["w"] . '" height="' . $ps[0]["h"] . '" src="' . $cfg["main_url"] . '/embed?a=' . $mkey . '" frameborder="0" allowfullscreen></iframe>';
|
|
break;
|
|
case "d": //embed code for documents is generated from within player cfg after page load (class.players.php)
|
|
$mdoc = VGenerate::thumbSigned(array("type" => "doc", "server" => "upload", "key" => '/' . $mukey . '/d/' . $mkey . '.pdf'), $mkey, $mukey, 0, 1);
|
|
$mec = '<embed src="' . $mdoc . '" width="' . $ps[0]["w"] . '" height="' . $ps[0]["h"] . '">';
|
|
break;
|
|
case "i":
|
|
switch ($cfg["image_player"]) {
|
|
case "jq":
|
|
$_js = null;
|
|
//$thumb_link = VGenerate::thumbSigned($mtype, $mkey, $mukey, 0, 1, 1);
|
|
$image_link = VGenerate::thumbSigned($mtype, $mkey, $mukey, 0, 1, 0);
|
|
|
|
//$mec = '[url=' . $image_link . '][img=320x240]' . $thumb_link . '[/img][/url]';
|
|
$mec = '<img src="' . $image_link . '">';
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
|
|
$blog_html = str_replace("[" . $media_entry . "]", $mec, $blog_html);
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title><?php echo $title; ?></title>
|
|
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
|
|
</head>
|
|
<body style="">
|
|
<div id="view-player-<?php echo $file_key; ?>"><?php echo $blog_html; ?></div>
|
|
</body>
|
|
<?php if ($cfg["google_analytics"] != ''): ?>
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=<?=$cfg["google_analytics"]?>"></script>
|
|
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','<?=$cfg["google_analytics"]?>');</script>
|
|
<?php endif;?>
|
|
</html>
|