Layout system
This commit is contained in:
parent
ba719e45b2
commit
dde4185ad7
22 changed files with 228 additions and 274 deletions
|
|
@ -1,20 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'About'}
|
||||
{block header}
|
||||
<p class="title">About</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<p class="title">About</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="section">
|
||||
<p>TODO</p>
|
||||
</section>
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
<p>TODO</p>
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,53 +0,0 @@
|
|||
<link rel="stylesheet" href="{assets('feed.css', 'styles')}">
|
||||
<section class="section">
|
||||
<div class="columns is-multiline is-vcentered">
|
||||
{foreach $feed->items as $item}
|
||||
<div class="column is-one-quarter">
|
||||
<a class="clickable-img" id="{$item->id}" href="#{$item->id}"
|
||||
data-video_url="{path('stream?url=' . urlencode($item->video->playAddr))}"
|
||||
data-video_download="{path('stream?url=' . urlencode($item->video->playAddr) . '&download=1')}"
|
||||
data-desc="{$item->desc}"
|
||||
data-music_title="{$item->music->title}"
|
||||
data-music_url="{path('stream?url=' . urlencode($item->music->playUrl))}">
|
||||
<img loading="lazy" src="{path('stream?url=' . urlencode($item->video->originCover))}" />
|
||||
<img class="hidden" loading="lazy" data-src="{path('stream?url=' . urlencode($item->video->dynamicCover))}" />
|
||||
</a>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
<div n:ifset="$feed->info" class="buttons">
|
||||
<a n:ifset="$_GET['cursor']" class="button is-danger" href="?cursor=0">First</a>
|
||||
<a class="button is-danger" href="?cursor={$feed->minCursor}">Back</a>
|
||||
{if $feed->hasMore}
|
||||
<a n-if="$feed->hasMore" class="button is-success" href="?cursor={$feed->maxCursor}">Next</a>
|
||||
{else}
|
||||
<a class="button is-success" disabled title="No more videos available">Next</a>
|
||||
{/if}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- MODAL -->
|
||||
<div id="modal" class="modal">
|
||||
<div id="modal-background" class="modal-background"></div>
|
||||
<div class="modal-card">
|
||||
<header class="modal-card-head">
|
||||
<button id="modal-close" class="delete" aria-label="close"></button>
|
||||
<p class="modal-card-title" id="item_title"></p>
|
||||
</header>
|
||||
<section class="modal-card-body has-text-centered" style="overflow: hidden;">
|
||||
<video id="video" controls preload="none"></video>
|
||||
</section>
|
||||
<footer class="modal-card-foot has-text-centered">
|
||||
<div class="container">
|
||||
<a id="download_button" target="_blank" class="button is-info" download>Download</a>
|
||||
<p id="audio_title"></p>
|
||||
<audio id="audio" controls preload="none"></audio>
|
||||
<div class="buttons is-centered">
|
||||
<button id="back-button" class="button is-danger">Back</button>
|
||||
<button id="next-button" class="button is-success">Next</button>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{assets('feed.js', 'scripts')}"></script>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<div class="tags">
|
||||
{if !empty($following)}
|
||||
{foreach $following as $user}
|
||||
<span class="tag">{$user}</span>
|
||||
{/foreach}
|
||||
{else}
|
||||
<p>None</p>
|
||||
{/if}
|
||||
</div>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<footer class="footer">
|
||||
<div class="content">
|
||||
<p class="has-text-centered">
|
||||
Made with <span style="color: #e25555;">♥</span> in <a href="https://github.com/pablouser1/ProxiTok">Github</a>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="{assets('bulma.min.css', 'styles')}">
|
||||
<title>{$title} - ProxiTok</title>
|
||||
</head>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
<nav class="navbar" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a role="button" id="navbar-burger" class="navbar-burger" aria-label="menu" aria-expanded="false">
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar-menu" class="navbar-menu">
|
||||
<div class="navbar-start">
|
||||
<a href="{path('')}" class="navbar-item">Home</a>
|
||||
<a href="{path('following')}" class="navbar-item">Following</a>
|
||||
<a href="{path('settings')}" class="navbar-item">Settings</a>
|
||||
<a href="{path('about')}" class="navbar-item">About</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<script src="{assets('navbar.js', 'scripts')}"></script>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{include '../following_tags.latte'}
|
||||
<form action="./settings/following" method="POST">
|
||||
<div class="field">
|
||||
<label class="label">Add / Remove user</label>
|
||||
<div class="control">
|
||||
<input name="account" class="input" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<label class="radio">
|
||||
<input type="radio" name="mode" value="add">Add
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input type="radio" name="mode" value="remove">Remove
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<button class="button is-primary" type="submit">Send</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<form action="./settings/proxy" method="POST">
|
||||
{foreach $proxy_elements as $proxy_element}
|
||||
<div class="field">
|
||||
<label class="label">{$proxy_element}</label>
|
||||
<div class="control">
|
||||
<input name="{$proxy_element}" class="input" value="{isset($_COOKIE[$proxy_element]) ? $_COOKIE[$proxy_element] : ''}" required />
|
||||
</div>
|
||||
</div>
|
||||
{/foreach}
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -1,25 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/hero.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'ERROR'}
|
||||
|
||||
<body>
|
||||
<section class="hero is-danger is-fullheight">
|
||||
<div class="hero-head">
|
||||
{include 'components/navbar.latte'}
|
||||
</div>
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<p class="title">There was an error processing your request!</p>
|
||||
<p class="subtitle">HTTP Code: {$error->http_code}</p>
|
||||
{if $error->tiktok_code}
|
||||
<p class="subtitle">API error code {$error->tiktok_code} ({$error->tiktok_msg})</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-foot is-danger">
|
||||
{include 'components/footer.latte'}
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
<p class="title">There was an error processing your request!</p>
|
||||
<p class="subtitle">HTTP Code: {$error->http_code}</p>
|
||||
{if $error->tiktok_code}
|
||||
<p class="subtitle">API error code {$error->tiktok_code} ({$error->tiktok_msg})</p>
|
||||
{/if}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Following'}
|
||||
{block header}
|
||||
<p class="title">Following</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">Following</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="section">
|
||||
<p class="title">Following:</p>
|
||||
{include 'components/following_tags.latte'}
|
||||
<p>You can add/remove follows on settings</p>
|
||||
</section>
|
||||
{block content}
|
||||
<p class="title">Following:</p>
|
||||
{include '../components/following_tags.latte'}
|
||||
<p>You can add/remove follows on settings</p>
|
||||
<hr />
|
||||
{include 'components/feed.latte'}
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{include '../components/feed.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
128
views/home.latte
128
views/home.latte
|
|
@ -1,74 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/hero.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Home'}
|
||||
{block content}
|
||||
<p class="title">Welcome to ProxiTok!</p>
|
||||
<p class="subtitle">An alternative open source frontend for TikTok</p>
|
||||
<p>Search user:</p>
|
||||
<form id="username_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="username" class="input" type="text" placeholder="Type username" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search video by id:</p>
|
||||
<form id="video_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="video_id" class="input" type="text" placeholder="Type video ID" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search tag:</p>
|
||||
<form id="tag_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="tag" class="input" type="text" placeholder="Type tag" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search music videos by id:</p>
|
||||
<form id="music_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="music_id" class="input" type="text" placeholder="Type music id" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Trending:</p>
|
||||
<a class="button is-success" href="./trending">Go</a>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-head">
|
||||
{include 'components/navbar.latte'}
|
||||
</div>
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">Welcome to ProxiTok!</p>
|
||||
<p class="subtitle">An alternative open source frontend for TikTok</p>
|
||||
<p>Search user:</p>
|
||||
<form id="username_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="username" class="input" type="text" placeholder="Type username" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search video by id:</p>
|
||||
<form id="video_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="video_id" class="input" type="text" placeholder="Type video ID" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search tag:</p>
|
||||
<form id="tag_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="tag" class="input" type="text" placeholder="Type tag" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Search music videos by id:</p>
|
||||
<form id="music_form">
|
||||
<div class="field has-addons has-addons-centered">
|
||||
<div class="control">
|
||||
<input name="music_id" class="input" type="text" placeholder="Type music id" required />
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-success" type="submit">Go</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<hr />
|
||||
<p>Trending:</p>
|
||||
<a class="button is-success" href="./trending">Go</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-foot">
|
||||
{include 'components/footer.latte'}
|
||||
</div>
|
||||
</section>
|
||||
{block extra}
|
||||
<script src="{assets('home.js', 'scripts')}"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Music'}
|
||||
{block header}
|
||||
<p class="title">{$feed->info->detail->music->title}</p>
|
||||
<p class="subtitle">{$feed->info->detail->music->desc}</p>
|
||||
<p>Videos: {number($feed->info->detail->stats->videoCount)}</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">{$feed->info->detail->music->title}</p>
|
||||
<p class="subtitle">{$feed->info->detail->music->desc}</p>
|
||||
<p>Videos: {number($feed->info->detail->stats->videoCount)}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{include 'components/feed.latte'}
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
{include '../components/feed.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Settings'}
|
||||
{block header}
|
||||
<p class="title">Settings</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<p class="title">Settings</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="section">
|
||||
<!-- Proxy settings -->
|
||||
<p class="title">Proxy</p>
|
||||
{include 'components/settings/proxy.latte'}
|
||||
<hr />
|
||||
<!-- Following -->
|
||||
<p class="title">Following</p>
|
||||
{include 'components/settings/following.latte'}
|
||||
</section>
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
<!-- Proxy settings -->
|
||||
<p class="title">Proxy</p>
|
||||
{include '../components/settings/proxy.latte'}
|
||||
<hr />
|
||||
<!-- Following -->
|
||||
<p class="title">Following</p>
|
||||
{include '../components/settings/following.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Tag'}
|
||||
{block header}
|
||||
<p class="title">{$feed->info->detail->challenge->title}</p>
|
||||
<p class="subtitle">{$feed->info->detail->challenge->desc}</p>
|
||||
<p>Videos: {number($feed->info->detail->stats->videoCount)} / Views: {number($feed->info->detail->stats->viewCount)}</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">{$feed->info->detail->challenge->title}</p>
|
||||
<p class="subtitle">{$feed->info->detail->challenge->desc}</p>
|
||||
<p>Videos: {number($feed->info->detail->stats->videoCount)} / Views: {number($feed->info->detail->stats->viewCount)}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{include 'components/feed.latte'}
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
{include '../components/feed.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,18 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: 'Trending'}
|
||||
{block header}
|
||||
<p class="title">Trending</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<p class="title">Trending</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{include 'components/feed.latte'}
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
{include '../components/feed.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/default.latte'}
|
||||
|
||||
{include 'components/head.latte', title: $feed->info->detail->user->nickname}
|
||||
{block header}
|
||||
<figure class="figure is-96x96">
|
||||
<img src="{path('stream?url=' . urlencode($feed->info->detail->user->avatarThumb))}" />
|
||||
</figure>
|
||||
<p class="title">{$feed->info->detail->user->uniqueId}'s profile</p>
|
||||
<p class="subtitle">{$feed->info->detail->user->signature}</p>
|
||||
<p>Following: {number($feed->info->detail->stats->followingCount)} / Followers: {number($feed->info->detail->stats->followerCount)}</p>
|
||||
<p>Hearts: {number($feed->info->detail->stats->heartCount)} / Videos: {$feed->info->detail->stats->videoCount}</p>
|
||||
{/block}
|
||||
|
||||
<body>
|
||||
{include 'components/navbar.latte'}
|
||||
<section class="hero is-primary">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<figure class="figure is-96x96">
|
||||
<img src="{path('stream?url=' . urlencode($feed->info->detail->user->avatarThumb))}" />
|
||||
</figure>
|
||||
<p class="title">{$feed->info->detail->user->uniqueId}'s profile</p>
|
||||
<p class="subtitle">{$feed->info->detail->user->signature}</p>
|
||||
<p>Following: {number($feed->info->detail->stats->followingCount)} / Followers: {number($feed->info->detail->stats->followerCount)}</p>
|
||||
<p>Hearts: {number($feed->info->detail->stats->heartCount)} / Videos: {$feed->info->detail->stats->videoCount}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{include 'components/feed.latte'}
|
||||
{include 'components/footer.latte'}
|
||||
</body>
|
||||
</html>
|
||||
{block content}
|
||||
{include '../components/feed.latte'}
|
||||
{/block}
|
||||
|
|
|
|||
|
|
@ -1,35 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{layout '../layouts/hero.latte'}
|
||||
|
||||
{include 'components/head.latte', title: $item->info->detail->user->nickname}
|
||||
|
||||
<body>
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-head">
|
||||
{include 'components/navbar.latte'}
|
||||
{block content}
|
||||
<div class="columns is-centered is-vcentered">
|
||||
<div class="column">
|
||||
<video autoplay controls src="{path('stream?url=' . urlencode($item->items[0]->video->playAddr))}"></video>
|
||||
</div>
|
||||
<div class="column has-text-centered">
|
||||
<div class="box">
|
||||
<p class="title">Video by <a href="{path('@'.$item->info->detail->user->uniqueId)}">{$item->info->detail->user->uniqueId}</a></p>
|
||||
<p class="subtitle">{$item->items[0]->desc}</p>
|
||||
<p>Played {number($item->info->detail->stats->playCount)} times</p>
|
||||
<p>Shared {number($item->info->detail->stats->shareCount)} times / {number($item->info->detail->stats->commentCount)} comments</p>
|
||||
<hr />
|
||||
<a href="{path('stream?url=' . urlencode($item->items[0]->video->playAddr) . '&download=1')}" class="button is-info">Download video</a>
|
||||
<p>{$item->items[0]->music->title}</p>
|
||||
<audio src="{path('stream?url=' . urlencode($item->items[0]->music->playUrl))}" controls preload="none"></audio>
|
||||
</div>
|
||||
<div class="hero-body">
|
||||
<div class="columns">
|
||||
<div class="column has-text-centered">
|
||||
<video autoplay controls src="{path('stream?url=' . urlencode($item->items[0]->video->playAddr))}"></video>
|
||||
</div>
|
||||
<div class="column is-one-quarter">
|
||||
<div class="box container">
|
||||
<p class="title">Video by <a href="{path('@'.$item->info->detail->user->uniqueId)}">{$item->info->detail->user->uniqueId}</a></p>
|
||||
<p class="subtitle">{$item->items[0]->desc}</p>
|
||||
<p>Played {number($item->info->detail->stats->playCount)} times</p>
|
||||
<p>Shared {number($item->info->detail->stats->shareCount)} times / {number($item->info->detail->stats->commentCount)} comments</p>
|
||||
<hr />
|
||||
<a href="{path('stream?url=' . urlencode($item->items[0]->video->playAddr) . '&download=1')}" class="button is-info">Download video</a>
|
||||
<p>{$item->items[0]->music->title}</p>
|
||||
<audio src="{path('stream?url=' . urlencode($item->items[0]->music->playUrl))}" controls preload="none"></audio>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-foot">
|
||||
{include 'components/footer.latte'}
|
||||
</div>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue