feat: Add comprehensive documentation suite and reorganize project structure
- 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
This commit is contained in:
59
f_templates/tpl_frontend/tpl_acct/tpl_activity.tpl
Normal file
59
f_templates/tpl_frontend/tpl_acct/tpl_activity.tpl
Normal file
@@ -0,0 +1,59 @@
|
||||
<style>#cb-response{ldelim}margin-top:-15px{rdelim}</style>
|
||||
<div id="ct-wrapper">
|
||||
<form id="ct-set-form" action="" method="post">
|
||||
<article class="no-display">
|
||||
<h3 class="content-title"><i class="icon-share"></i>{lang_entry key="account.entry.act.share"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
<div class="swiper-ph swiper-ph-tnav"></div>
|
||||
<div class="swiper-top swiper-top-tnav" style="display:{$ssd}">
|
||||
<div class="swiper-button-prev swiper-button-prev-tnav"{$sso}></div>
|
||||
<div class="swiper-button-next swiper-button-next-tnav"{$sso}></div>
|
||||
<div class="swiper swiper-tnav">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry1" or $smarty.get.s eq ""} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry1" rel="nofollow"><span><i class="icon-user"></i> {lang_entry key="account.entry.overview"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry2"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry2" rel="nofollow"><span><i class="icon-profile"></i> {lang_entry key="account.entry.profile.setup"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry4"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry4" rel="nofollow"><span><i class="icon-envelope"></i> {lang_entry key="account.entry.mail.opts"}</span></a></div>
|
||||
{if $activity_logging eq 1}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry5"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry5" rel="nofollow"><span><i class="icon-share"></i> {lang_entry key="account.entry.act.share"}</span></a></div>
|
||||
{/if}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry6"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry6" rel="nofollow"><span><i class="icon-key"></i> {lang_entry key="account.entry.act.manage"}</span></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="no-display">
|
||||
<div class="sortings"><div class="no-display">{include file="tpl_backend/tpl_settings/ct-save-top.tpl"}</div></div>
|
||||
<div class="page-actions">{include file="tpl_backend/tpl_settings/ct-save-open-close.tpl"}</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="vs-column full">
|
||||
{generate_html bullet_id="ct-bullet1" input_type="activity_sharing" entry_title="account.activity.sharing" entry_id="ct-entry-details1" input_name="" input_value="" bb=0 section="fe"}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<input type="hidden" name="ct_entry" id="ct_entry" value="">
|
||||
</form>
|
||||
</div>
|
||||
{include file="tpl_backend/tpl_settings/ct-switch-js.tpl"}
|
||||
<script type="text/javascript">{include file="f_scripts/be/js/settings-accordion.js"}</script>
|
||||
<script type="text/javascript">
|
||||
{include file="tpl_frontend/tpl_acct/tpl_profilejs.tpl"}
|
||||
$(document).ready(function() {ldelim}
|
||||
$('.icheck-box input').each(function () {ldelim}
|
||||
var self = $(this);
|
||||
self.iCheck({ldelim}
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%'
|
||||
//insert: '<div class="icheck_line-icon"></div><label>' + label_text + '</label>'
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
$(document).ready(function () {ldelim}
|
||||
var nma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id');
|
||||
var ma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id').slice(0,19);
|
||||
$('.tpl_account #siteContent nav>ul>li>a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$('.tpl_account #siteContent .swiper-tnav .swiper-slide >a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
168
f_templates/tpl_frontend/tpl_acct/tpl_channel.tpl
Normal file
168
f_templates/tpl_frontend/tpl_acct/tpl_channel.tpl
Normal file
@@ -0,0 +1,168 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{if $ch_title}{$ch_title}{elseif $usr_dname}{$usr_dname}{else}{$usr_user}{/if} - EasyStream</title>
|
||||
<link rel="stylesheet" href="{$main_url}/f_templates/tpl_frontend/css/channel.css">
|
||||
<style>
|
||||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; margin: 0; background: #f8f9fa; }
|
||||
.header { background: #fff; border-bottom: 1px solid #e1e5e9; padding: 1rem 0; }
|
||||
.header-content { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; }
|
||||
.logo { font-size: 1.5rem; font-weight: bold; color: #007bff; text-decoration: none; }
|
||||
.nav { display: flex; gap: 2rem; }
|
||||
.nav a { color: #495057; text-decoration: none; padding: 0.5rem 1rem; border-radius: 4px; transition: all 0.2s; }
|
||||
.nav a:hover { background: #f8f9fa; }
|
||||
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
|
||||
.channel-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 3rem 0; margin-bottom: 2rem; }
|
||||
.channel-info { display: flex; align-items: center; gap: 2rem; }
|
||||
.channel-avatar { width: 120px; height: 120px; border-radius: 50%; border: 4px solid white; object-fit: cover; }
|
||||
.channel-details h1 { margin: 0 0 0.5rem 0; font-size: 2rem; }
|
||||
.channel-details p { margin: 0 0 1rem 0; opacity: 0.9; }
|
||||
.channel-stats { display: flex; gap: 2rem; margin-bottom: 1rem; }
|
||||
.stat { text-align: center; }
|
||||
.stat-number { font-size: 1.5rem; font-weight: bold; }
|
||||
.stat-label { font-size: 0.875rem; opacity: 0.8; }
|
||||
.subscribe-btn { background: #cc0000; color: white; border: none; padding: 0.75rem 2rem; border-radius: 25px; cursor: pointer; font-weight: 500; }
|
||||
.subscribe-btn:hover { background: #aa0000; }
|
||||
.channel-nav { background: white; border-radius: 8px; padding: 1rem; margin-bottom: 2rem; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
|
||||
.nav-tabs { display: flex; gap: 2rem; }
|
||||
.nav-tab { padding: 0.5rem 1rem; border-radius: 20px; text-decoration: none; color: #495057; transition: all 0.2s; }
|
||||
.nav-tab:hover, .nav-tab.active { background: #007bff; color: white; }
|
||||
.channel-content { background: white; border-radius: 8px; padding: 2rem; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header class="header">
|
||||
<div class="header-content">
|
||||
<a href="{$main_url}" class="logo">🎬 EasyStream</a>
|
||||
<nav class="nav">
|
||||
<a href="{$main_url}">Home</a>
|
||||
<a href="{$main_url}/videos">Videos</a>
|
||||
<a href="{$main_url}/upload">Upload</a>
|
||||
<a href="{$main_url}/search">Search</a>
|
||||
{if $smarty.session.USER_ID}
|
||||
<a href="{$main_url}/account">Account</a>
|
||||
{else}
|
||||
<a href="{$main_url}/signin">Sign In</a>
|
||||
{/if}
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="channel-header">
|
||||
<div class="container">
|
||||
<div class="channel-info">
|
||||
<img src="{if $usr_photo}{$usr_photo}{else}{$main_url}/f_templates/tpl_frontend/img/default-avatar.png{/if}"
|
||||
alt="{if $ch_title}{$ch_title}{else}{$usr_user}{/if}" class="channel-avatar">
|
||||
|
||||
<div class="channel-details">
|
||||
<h1>{if $ch_title}{$ch_title}{elseif $usr_dname}{$usr_dname}{else}{$usr_user}{/if}</h1>
|
||||
<p>@{$usr_user}</p>
|
||||
|
||||
<div class="channel-stats">
|
||||
<div class="stat">
|
||||
<div class="stat-number">{if $usr_subscribers}{$usr_subscribers|number_format}{else}0{/if}</div>
|
||||
<div class="stat-label">Subscribers</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-number">{if $total_videos}{$total_videos|number_format}{else}0{/if}</div>
|
||||
<div class="stat-label">Videos</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-number">{if $total_views}{$total_views|number_format}{else}0{/if}</div>
|
||||
<div class="stat-label">Views</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $smarty.session.USER_ID and $smarty.session.USER_ID neq $usr_id}
|
||||
<button class="subscribe-btn" data-user-id="{$usr_id}">
|
||||
{if $user_issub}Subscribed{else}Subscribe{/if}
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="channel-nav">
|
||||
<div class="nav-tabs">
|
||||
<a href="?tab=home" class="nav-tab {if !$smarty.get.tab or $smarty.get.tab eq 'home'}active{/if}">
|
||||
🏠 Home
|
||||
</a>
|
||||
{if $video_module}
|
||||
<a href="?tab=videos" class="nav-tab {if $smarty.get.tab eq 'videos'}active{/if}">
|
||||
📹 Videos
|
||||
</a>
|
||||
{/if}
|
||||
{if $short_module}
|
||||
<a href="?tab=shorts" class="nav-tab {if $smarty.get.tab eq 'shorts'}active{/if}">
|
||||
🎬 Shorts
|
||||
</a>
|
||||
{/if}
|
||||
{if $live_module}
|
||||
<a href="?tab=live" class="nav-tab {if $smarty.get.tab eq 'live'}active{/if}">
|
||||
📺 Live
|
||||
</a>
|
||||
{/if}
|
||||
{if $image_module}
|
||||
<a href="?tab=images" class="nav-tab {if $smarty.get.tab eq 'images'}active{/if}">
|
||||
🖼️ Images
|
||||
</a>
|
||||
{/if}
|
||||
{if $audio_module}
|
||||
<a href="?tab=audio" class="nav-tab {if $smarty.get.tab eq 'audio'}active{/if}">
|
||||
🎵 Audio
|
||||
</a>
|
||||
{/if}
|
||||
<a href="?tab=about" class="nav-tab {if $smarty.get.tab eq 'about'}active{/if}">
|
||||
ℹ️ About
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="channel-content">
|
||||
{generate_html type="channel_layout" bullet_id="ct-bullet1" entry_id="ct-entry-details1" section="files" bb="1"}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var current_url = '{$main_url}/';
|
||||
var menu_section = '{href_entry key="channel"}';
|
||||
var fe_mask = 'on';
|
||||
|
||||
// Enhanced channel interactions
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Subscribe functionality
|
||||
const subscribeBtn = document.querySelector('.subscribe-btn');
|
||||
if (subscribeBtn) {
|
||||
subscribeBtn.addEventListener('click', function() {
|
||||
const userId = this.dataset.userId;
|
||||
// Integration with existing EasyStream subscription system
|
||||
console.log('Subscribe to user:', userId);
|
||||
});
|
||||
}
|
||||
|
||||
// Tab interactions
|
||||
document.querySelectorAll('.nav-tab').forEach(tab => {
|
||||
tab.addEventListener('mouseenter', function() {
|
||||
this.style.transform = 'translateY(-1px)';
|
||||
});
|
||||
tab.addEventListener('mouseleave', function() {
|
||||
this.style.transform = 'translateY(0)';
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
{if $video_module}{insert name="swiperJS" for="video"}{/if}
|
||||
{if $short_module}{insert name="swiperJS" for="short"}{/if}
|
||||
{if $live_module}{insert name="swiperJS" for="live"}{/if}
|
||||
{if $image_module}{insert name="swiperJS" for="image"}{/if}
|
||||
{if $audio_module}{insert name="swiperJS" for="audio"}{/if}
|
||||
{if $document_module}{insert name="swiperJS" for="doc"}{/if}
|
||||
{if $blog_module}{insert name="swiperJS" for="blog"}{/if}
|
||||
</body>
|
||||
</html>
|
||||
9
f_templates/tpl_frontend/tpl_acct/tpl_channels.tpl
Normal file
9
f_templates/tpl_frontend/tpl_acct/tpl_channels.tpl
Normal file
@@ -0,0 +1,9 @@
|
||||
<script type="text/javascript">
|
||||
var current_url = '{$main_url}/';
|
||||
var menu_section = '{href_entry key="channels"}';
|
||||
var fe_mask = 'on';
|
||||
</script>
|
||||
<div class="" id="ct-wrapper">
|
||||
{generate_html type="channels_layout" bullet_id="ct-bullet1" entry_id="ct-entry-details1" section="files" bb="1"}
|
||||
</div>
|
||||
|
||||
74
f_templates/tpl_frontend/tpl_acct/tpl_email_opts.tpl
Normal file
74
f_templates/tpl_frontend/tpl_acct/tpl_email_opts.tpl
Normal file
@@ -0,0 +1,74 @@
|
||||
<style>#cb-response{ldelim}margin-top:-15px{rdelim}</style>
|
||||
<div id="ct-wrapper">
|
||||
<form id="ct-set-form" action="" method="post">
|
||||
<article class="no-display">
|
||||
<h3 class="content-title"><i class="icon-envelope"></i>{lang_entry key="account.entry.mail.opts"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
<div class="swiper-ph swiper-ph-tnav"></div>
|
||||
<div class="swiper-top swiper-top-tnav" style="display:{$ssd}">
|
||||
<div class="swiper-button-prev swiper-button-prev-tnav"{$sso}></div>
|
||||
<div class="swiper-button-next swiper-button-next-tnav"{$sso}></div>
|
||||
<div class="swiper swiper-tnav">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry1" or $smarty.get.s eq ""} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry1" rel="nofollow"><span><i class="icon-user"></i> {lang_entry key="account.entry.overview"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry2"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry2" rel="nofollow"><span><i class="icon-profile"></i> {lang_entry key="account.entry.profile.setup"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry4"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry4" rel="nofollow"><span><i class="icon-envelope"></i> {lang_entry key="account.entry.mail.opts"}</span></a></div>
|
||||
{if $activity_logging eq 1}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry5"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry5" rel="nofollow"><span><i class="icon-share"></i> {lang_entry key="account.entry.act.share"}</span></a></div>
|
||||
{/if}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry6"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry6" rel="nofollow"><span><i class="icon-key"></i> {lang_entry key="account.entry.act.manage"}</span></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="no-display">
|
||||
<div class="sortings"><div class="no-display">{include file="tpl_backend/tpl_settings/ct-save-top.tpl"}</div></div>
|
||||
<div class="page-actions">{include file="tpl_backend/tpl_settings/ct-save-open-close.tpl"}</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="vs-column half">
|
||||
{generate_html bullet_id="ct-bullet1" input_type="email_opts" entry_title="account.email.address" entry_id="ct-entry-details1" input_name="" input_value="" bb=1 section="fe"}
|
||||
{if $affiliate_module eq 1 or $user_subscriptions eq 1}{generate_html bullet_id="ct-bullet4" input_type="payout_opts" entry_title="account.payout.address" entry_id="ct-entry-details4" input_name="" input_value="" bb=1 section="fe"}{/if}
|
||||
</div>
|
||||
<div class="vs-column half fit">
|
||||
{generate_html bullet_id="ct-bullet2" input_type="email_notif" entry_title="account.email.notif.site" entry_id="ct-entry-details2" input_name="" input_value="" bb=1 section="fe"}
|
||||
{generate_html bullet_id="ct-bullet3" input_type="email_subs" entry_title="account.email.notif.subs" entry_id="ct-entry-details3" input_name="" input_value="" bb=0 section="fe"}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<input type="hidden" name="ct_entry" id="ct_entry" value="">
|
||||
</form>
|
||||
</div>
|
||||
{include file="tpl_backend/tpl_settings/ct-switch-js.tpl"}
|
||||
<script type="text/javascript">{include file="f_scripts/be/js/settings-accordion.js"}</script>
|
||||
<script type="text/javascript">
|
||||
{include file="tpl_frontend/tpl_acct/tpl_profilejs.tpl"}
|
||||
$(document).ready(function() {ldelim}
|
||||
$('.icheck-box input').each(function () {ldelim}
|
||||
var self = $(this);
|
||||
self.iCheck({ldelim}
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%'
|
||||
//insert: '<div class="icheck_line-icon"></div><label>' + label_text + '</label>'
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
$(".email-change-button").click(function(){ldelim}
|
||||
$("#cb-response-wrap").detach();
|
||||
$("#ct-wrapper").mask(" ");
|
||||
$.post(current_url + menu_section + "?s={$smarty.get.s|sanitize}&do=emchange", $("#ct-set-form").serialize(), function(data) {ldelim}
|
||||
$(data).insertAfter($(".swiper-top").next());
|
||||
$("#ct-wrapper").unmask();
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
$(document).ready(function () {ldelim}
|
||||
var nma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id');
|
||||
var ma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id').slice(0,19);
|
||||
$('.tpl_account #siteContent nav>ul>li>a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$('.tpl_account #siteContent .swiper-tnav .swiper-slide a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$("a.showp").on("click",function(e){ldelim}e.preventDefault();$(this).prev().attr("type", "text");$(this).addClass("no-display");$(this).next().removeClass("no-display"){rdelim});$("a.hidep").on("click",function(e){ldelim}e.preventDefault();$(this).prev().prev().attr("type", "password");$(this).addClass("no-display");$(this).prev().removeClass("no-display"){rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
68
f_templates/tpl_frontend/tpl_acct/tpl_manage_acct.tpl
Normal file
68
f_templates/tpl_frontend/tpl_acct/tpl_manage_acct.tpl
Normal file
@@ -0,0 +1,68 @@
|
||||
<style>#cb-response{ldelim}margin-top:-15px{rdelim}</style>
|
||||
<div id="ct-wrapper">
|
||||
<form id="ct-set-form" action="" method="post" class="">
|
||||
<article class="no-display">
|
||||
<h3 class="content-title"><i class="icon-key"></i>{lang_entry key="account.entry.act.manage"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
<div class="swiper-ph swiper-ph-tnav"></div>
|
||||
<div class="swiper-top swiper-top-tnav" style="display:{$ssd}">
|
||||
<div class="swiper-button-prev swiper-button-prev-tnav"{$sso}></div>
|
||||
<div class="swiper-button-next swiper-button-next-tnav"{$sso}></div>
|
||||
<div class="swiper swiper-tnav">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry1" or $smarty.get.s eq ""} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry1" rel="nofollow"><span><i class="icon-user"></i> {lang_entry key="account.entry.overview"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry2"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry2" rel="nofollow"><span><i class="icon-profile"></i> {lang_entry key="account.entry.profile.setup"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry4"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry4" rel="nofollow"><span><i class="icon-envelope"></i> {lang_entry key="account.entry.mail.opts"}</span></a></div>
|
||||
{if $activity_logging eq 1}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry5"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry5" rel="nofollow"><span><i class="icon-share"></i> {lang_entry key="account.entry.act.share"}</span></a></div>
|
||||
{/if}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry6"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry6" rel="nofollow"><span><i class="icon-key"></i> {lang_entry key="account.entry.act.manage"}</span></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="no-display">
|
||||
<div class="sortings"><div class="no-display">{include file="tpl_backend/tpl_settings/ct-save-top.tpl"}</div></div>
|
||||
<div class="page-actions">{include file="tpl_backend/tpl_settings/ct-save-open-close.tpl"}</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="vs-column half">
|
||||
{generate_html bullet_id="ct-bullet1" input_type="manage_account_pass" entry_title="account.manage.change.pass" entry_id="ct-entry-details1" input_name="" input_value="" bb=1 section="fe"}
|
||||
</div>
|
||||
<div class="vs-column half fit">
|
||||
{generate_html bullet_id="ct-bullet2" input_type="manage_account_delete" entry_title="account.manage.delete" entry_id="ct-entry-details2" input_name="" input_value="" bb=0 section="fe"}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<input type="hidden" name="ct_entry" id="ct_entry" value="">
|
||||
</form>
|
||||
</div>
|
||||
{include file="tpl_backend/tpl_settings/ct-switch-js.tpl"}
|
||||
<script type="text/javascript">{include file="f_scripts/be/js/settings-accordion.js"}</script>
|
||||
<script type="text/javascript">
|
||||
{include file="tpl_frontend/tpl_acct/tpl_profilejs.tpl"}
|
||||
$(".change-button").click(function(){ldelim}
|
||||
$("#cb-response-wrap").detach();
|
||||
$("#ct-wrapper").mask(" ");
|
||||
$.post(current_url + menu_section + "?s={$smarty.get.s|sanitize}&do=cpass", $("#ct-set-form").serialize(), function(data) {ldelim}
|
||||
$(data).insertAfter($(".swiper-top").next());
|
||||
$("#ct-wrapper").unmask();
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
$(".purge-button").click(function(){ldelim}
|
||||
$("#cb-response-wrap").detach();
|
||||
$("#ct-wrapper").mask(" ");
|
||||
$.post(current_url + menu_section + "?s={$smarty.get.s|sanitize}&do=purge", $("#ct-set-form").serialize(), function(data) {ldelim}
|
||||
$(data).insertAfter($(".swiper-top").next());
|
||||
$("#ct-wrapper").unmask();
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
$(document).ready(function () {ldelim}
|
||||
var nma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id');
|
||||
var ma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id').slice(0,19);
|
||||
$('.tpl_account #siteContent nav>ul>li>a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$('.tpl_account #siteContent .swiper-tnav .swiper-slide >a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$("a.showp").on("click",function(e){ldelim}e.preventDefault();$(this).prev().attr("type", "text");$(this).addClass("no-display");$(this).next().removeClass("no-display"){rdelim});$("a.hidep").on("click",function(e){ldelim}e.preventDefault();$(this).prev().prev().attr("type", "password");$(this).addClass("no-display");$(this).prev().removeClass("no-display"){rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
9
f_templates/tpl_frontend/tpl_acct/tpl_manage_channel.tpl
Normal file
9
f_templates/tpl_frontend/tpl_acct/tpl_manage_channel.tpl
Normal file
@@ -0,0 +1,9 @@
|
||||
<script type="text/javascript">
|
||||
var current_url = '{$main_url}/';
|
||||
var menu_section = '{href_entry key="manage_channel"}';
|
||||
var fe_mask = 'on';
|
||||
</script>
|
||||
<div class="wdmax" id="ct-wrapper">
|
||||
{generate_html type="my_channels_layout" bullet_id="ct-bullet1" entry_id="ct-entry-details1" section="files" bb="1"}
|
||||
</div>
|
||||
|
||||
58
f_templates/tpl_frontend/tpl_acct/tpl_overview.tpl
Normal file
58
f_templates/tpl_frontend/tpl_acct/tpl_overview.tpl
Normal file
@@ -0,0 +1,58 @@
|
||||
<link rel="stylesheet" type="text/css" href="{$styles_url}/view.min.css">
|
||||
<div class="left-float wdmax">
|
||||
<div id="overview-userinfo">
|
||||
<div class="statsBox">
|
||||
<article class="no-display">
|
||||
<h3 class="content-title"><i class="icon-user"></i>{lang_entry key="account.entry.account.overview"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
<div class="swiper-ph swiper-ph-tnav"></div>
|
||||
<div class="swiper-top swiper-top-tnav" style="display:{$ssd}">
|
||||
<div class="swiper-button-prev swiper-button-prev-tnav"{$sso}></div>
|
||||
<div class="swiper-button-next swiper-button-next-tnav"{$sso}></div>
|
||||
<div class="swiper swiper-tnav">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry1" or $smarty.get.s eq ""} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry1" rel="nofollow"><span><i class="icon-user"></i> {lang_entry key="account.entry.overview"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry2"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry2" rel="nofollow"><span><i class="icon-profile"></i> {lang_entry key="account.entry.profile.setup"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry4"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry4" rel="nofollow"><span><i class="icon-envelope"></i> {lang_entry key="account.entry.mail.opts"}</span></a></div>
|
||||
{if $activity_logging eq 1}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry5"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry5" rel="nofollow"><span><i class="icon-share"></i> {lang_entry key="account.entry.act.share"}</span></a></div>
|
||||
{/if}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry6"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry6" rel="nofollow"><span><i class="icon-key"></i> {lang_entry key="account.entry.act.manage"}</span></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="vs-column fourths mt-15">
|
||||
<div class="user-thumb-xlarge">
|
||||
<div><center><a href="{$main_url}/@{$smarty.session.USER_NAME}"><img id="own-profile-image" title="{$smarty.session.USER_NAME}" alt="{$smarty.session.USER_NAME}" src="{insert name="getProfileImage" assign="profileImage" for="{$smarty.session.USER_ID}"}{$profileImage}"></a></center></div>
|
||||
</div>
|
||||
<div class="imageChange">
|
||||
<form method="post" action="" class="entry-form-class overview-form">
|
||||
<center>
|
||||
<button class="save-entry-button button-grey search-button form-button new-image" type="button" onclick="$('.thumb-popup').trigger('click');"><span>{lang_entry key="account.image.change"}</span></button>
|
||||
<a href="javascript:;" rel="popuprel" class="thumb-popup hidden">{lang_entry key="frontend.global.change"}</a>
|
||||
</center>
|
||||
</form>
|
||||
</div>
|
||||
<div class="popupbox" id="popuprel"></div>
|
||||
<div id="fade"></div>
|
||||
</div>
|
||||
|
||||
<div class="vs-column three_fourths fit mt-15">
|
||||
{insert name="getUserStats" type="sub"}
|
||||
</div>
|
||||
{insert name="getUserStats" type="stats"}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {ldelim}
|
||||
var nma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id');
|
||||
var ma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id').slice(0,19);
|
||||
$('.tpl_account #siteContent nav>ul>li>a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$('.tpl_account #siteContent .swiper-tnav .swiper-slide a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
92
f_templates/tpl_frontend/tpl_acct/tpl_overview_image.tpl
Normal file
92
f_templates/tpl_frontend/tpl_acct/tpl_overview_image.tpl
Normal file
@@ -0,0 +1,92 @@
|
||||
<form id="profile-image-form" class="entry-form-class" method="post" action="" enctype="multipart/form-data">
|
||||
<article>
|
||||
<h3 class="content-title"><i class="icon-user"></i> {lang_entry key="account.image.change"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
|
||||
<div id="intabdiv">
|
||||
<div class="left-float left-align wdmax row" id="overview-userinfo-response"></div>
|
||||
<div class="left-float left-align wdmax">
|
||||
<div class="row">
|
||||
<div class="icheck-box up"><input type="radio" name="profile_image_action" id="profile-image-upload" value="new" /><label>{lang_entry key="account.image.upload"}</label></div>
|
||||
</div>
|
||||
<div class="row" id="overview-userinfo-file">
|
||||
<div class="left-float left-padding25 hiddenfile">
|
||||
<input type="file" name="profile_image" id="profile-image" size="30" onchange="$('#profile-image-form').submit();" />
|
||||
</div>
|
||||
<center>
|
||||
<button onclick="$('.icheck-box.up input').iCheck('check');$('#profile-image').trigger('click');" class="save-entry-button button-grey search-button form-button new-image" type="button"><span>{lang_entry key="frontend.global.upload.image"}</span></button>
|
||||
</center>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="icheck-box"><input type="radio" name="profile_image_action" id="profile-image-default" value="default" /><label>{lang_entry key="account.image.upload.default"}</label></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row" id="save-button-row">
|
||||
<button name="save_changes_btn" id="save-image-btn" class="save-entry-button button-grey search-button form-button" type="button" value="1"><span>{lang_entry key="frontend.global.savechanges"}</span></button>
|
||||
<a class="link cancel-trigger" href="#"><span>{lang_entry key="frontend.global.cancel"}</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {ldelim}
|
||||
var options = {ldelim}
|
||||
target: "#overview-userinfo-response",
|
||||
beforeSubmit: showRequest,
|
||||
success: showResponse,
|
||||
url: current_url + menu_section + "?s=account-menu-entry1&do=upload"
|
||||
{rdelim}
|
||||
|
||||
function showRequest() {ldelim} $('#intabdiv').mask(' '); $("#save-button-row").addClass("hidden"); {rdelim}
|
||||
function showResponse() {ldelim} $('#intabdiv').unmask(); $("#save-button-row").removeClass("hidden"); $(".fancybox-inner").css("height", "auto"); $(".fancybox-opened").css("top", "25%"); {rdelim}
|
||||
|
||||
$(document).on("submit", "#profile-image-form", function() {ldelim}
|
||||
$(this).ajaxSubmit(options);
|
||||
return false;
|
||||
{rdelim});
|
||||
|
||||
$("#save-image-btn").click(function() {ldelim}
|
||||
$("#intabdiv").mask(" ");
|
||||
$.post(current_url + menu_section + '?s=account-menu-entry1&do=save', $("#profile-image-form").serialize(), function(data) {
|
||||
$("#overview-userinfo-response").html(data);
|
||||
$("#intabdiv").unmask();
|
||||
});
|
||||
{rdelim});
|
||||
|
||||
$("#profile-image").click(function() {ldelim}
|
||||
$("#profile-image-upload").prop("checked", true);
|
||||
{rdelim});
|
||||
|
||||
$(document).one("click", ".link", function() {ldelim}
|
||||
$("#profile-image").replaceWith('<input type="file" name="profile_image" id="profile-image" size="30" />');
|
||||
$("#intabdiv").mask(" ");
|
||||
$.post(current_url + menu_section + '?s=account-menu-entry1&do=cancel', $("#profile-image-form").serialize(), function(data) {
|
||||
$("#intabdiv").unmask();
|
||||
$.fancybox.close(true);
|
||||
$(".fancybox-overlay.fancybox-overlay-fixed").hide().detach();
|
||||
});
|
||||
|
||||
// $("#fade , #popuprel").hide();
|
||||
return false;
|
||||
{rdelim});
|
||||
|
||||
$('.icheck-box input').each(function () {ldelim}
|
||||
var self = $(this);
|
||||
self.iCheck({ldelim}
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%'
|
||||
//insert: '<div class="icheck_line-icon"></div><label>' + label_text + '</label>'
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
|
||||
{rdelim});
|
||||
$(document).keyup(function(e){ldelim}
|
||||
if (e.keyCode == 27) { $(".link").click(); }
|
||||
{rdelim});
|
||||
</script>
|
||||
74
f_templates/tpl_frontend/tpl_acct/tpl_profile_setup.tpl
Normal file
74
f_templates/tpl_frontend/tpl_acct/tpl_profile_setup.tpl
Normal file
@@ -0,0 +1,74 @@
|
||||
<style>#cb-response{ldelim}margin-top:-15px{rdelim}</style>
|
||||
<div id="ct-wrapper" class="">
|
||||
<form id="ct-set-form" action="" method="post">
|
||||
<article class="no-display">
|
||||
<h3 class="content-title"><i class="icon-profile"></i>{lang_entry key="account.entry.profile.setup"}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
<div class="swiper-ph swiper-ph-tnav"></div>
|
||||
<div class="swiper-top swiper-top-tnav" style="display:{$ssd}">
|
||||
<div class="swiper-button-prev swiper-button-prev-tnav"{$sso}></div>
|
||||
<div class="swiper-button-next swiper-button-next-tnav"{$sso}></div>
|
||||
<div class="swiper swiper-tnav">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry1" or $smarty.get.s eq ""} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry1" rel="nofollow"><span><i class="icon-user"></i> {lang_entry key="account.entry.overview"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry2"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry2" rel="nofollow"><span><i class="icon-profile"></i> {lang_entry key="account.entry.profile.setup"}</span></a></div>
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry4"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry4" rel="nofollow"><span><i class="icon-envelope"></i> {lang_entry key="account.entry.mail.opts"}</span></a></div>
|
||||
{if $activity_logging eq 1}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry5"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry5" rel="nofollow"><span><i class="icon-share"></i> {lang_entry key="account.entry.act.share"}</span></a></div>
|
||||
{/if}
|
||||
<div class="swiper-slide{if $smarty.get.s eq "account-menu-entry6"} swiper-slide-current{/if}" rel-m="{href_entry key="account"}"><a href="" rel-s="#account-menu-entry6" rel="nofollow"><span><i class="icon-key"></i> {lang_entry key="account.entry.act.manage"}</span></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="no-display">
|
||||
<div class="sortings"><div class="no-display">{include file="tpl_backend/tpl_settings/ct-save-top.tpl"}</div></div>
|
||||
<div class="page-actions">{include file="tpl_backend/tpl_settings/ct-save-open-close.tpl"}</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="vs-column half">
|
||||
{generate_html bullet_id="ct-bullet1" input_type="profile_about" entry_title="account.profile.about.display" entry_id="ct-entry-details1" input_name="" input_value="" bb=1 section="fe"}
|
||||
{generate_html bullet_id="ct-bullet2" input_type="profile_details" entry_title="account.profile.personal" entry_id="ct-entry-details2" input_name="" input_value="" bb=1 section="fe"}
|
||||
{generate_html bullet_id="ct-bullet3" input_type="profile_location" entry_title="account.profile.location" entry_id="ct-entry-details3" input_name="" input_value="" bb=1 section="fe"}
|
||||
</div>
|
||||
<div class="vs-column half fit">
|
||||
{generate_html bullet_id="ct-bullet4" input_type="profile_job" entry_title="account.profile.job" entry_id="ct-entry-details4" input_name="" input_value="" bb=1 section="fe"}
|
||||
{generate_html bullet_id="ct-bullet5" input_type="profile_education" entry_title="account.profile.education" entry_id="ct-entry-details5" input_name="" input_value="" bb=1 section="fe"}
|
||||
{generate_html bullet_id="ct-bullet6" input_type="profile_interests" entry_title="account.profile.interests" entry_id="ct-entry-details6" input_name="" input_value="" bb=0 section="fe"}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<input type="hidden" name="ct_entry" id="ct_entry" value="">
|
||||
</form>
|
||||
</div>
|
||||
{include file="tpl_backend/tpl_settings/ct-switch-js.tpl"}
|
||||
<script type="text/javascript">{include file="f_scripts/be/js/settings-accordion.js"}</script>
|
||||
<script type="text/javascript">
|
||||
{include file="tpl_frontend/tpl_acct/tpl_profilejs.tpl"}
|
||||
$(function() {ldelim}
|
||||
SelectList.init("account_profile_bdate_m_sel");
|
||||
SelectList.init("account_profile_bdate_d_sel");
|
||||
SelectList.init("account_profile_bdate_y_sel");
|
||||
SelectList.init("account_profile_personal_gender_sel");
|
||||
SelectList.init("account_profile_personal_rel_sel");
|
||||
SelectList.init("account_profile_personal_age_sel");
|
||||
SelectList.init("account_profile_location_country_sel");
|
||||
{rdelim});
|
||||
$(document).ready(function(){ldelim}
|
||||
$('.icheck-box input').each(function(){ldelim}
|
||||
var self = $(this);
|
||||
self.iCheck({ldelim}
|
||||
checkboxClass: 'icheckbox_square-blue',
|
||||
radioClass: 'iradio_square-blue',
|
||||
increaseArea: '20%'
|
||||
//insert: '<div class="icheck_line-icon"></div><label>' + label_text + '</label>'
|
||||
{rdelim});
|
||||
{rdelim});
|
||||
var nma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id');
|
||||
var ma=$('.sidebar-container .menu-panel-entry.menu-panel-entry-active').attr('id').slice(0,19);
|
||||
$('.tpl_account #siteContent nav>ul>li>a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
$('.tpl_account #siteContent .swiper-tnav .swiper-slide a').on('click',function(e){ldelim}e.preventDefault();var s=$(this).attr('rel-s');if(s=='#account-menu-entry1'){ldelim}location.reload();return false;{rdelim}$('.sidebar-container li.menu-panel-entry'+s+' a').click();{rdelim});
|
||||
{rdelim});
|
||||
</script>
|
||||
{insert name="swiperJS" for="tnav"}
|
||||
5
f_templates/tpl_frontend/tpl_acct/tpl_profilejs.tpl
Normal file
5
f_templates/tpl_frontend/tpl_acct/tpl_profilejs.tpl
Normal file
@@ -0,0 +1,5 @@
|
||||
$(document).ready(function() {ldelim}
|
||||
a = $(".sortings").parent().clone(true);
|
||||
$(".sortings").parent().detach();
|
||||
$(a).insertAfter(".swiper-top-tnav").removeClass("no-display").css({ldelim}{rdelim});
|
||||
{rdelim});
|
||||
3
f_templates/tpl_frontend/tpl_acct/tpl_verify.tpl
Normal file
3
f_templates/tpl_frontend/tpl_acct/tpl_verify.tpl
Normal file
@@ -0,0 +1,3 @@
|
||||
<div id="ct-wrapper">
|
||||
{if $error_message ne ""}{$error_message}{elseif $notice_message ne ""}{$notice_message}{/if}
|
||||
</div>
|
||||
Reference in New Issue
Block a user