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:
151
f_templates/tpl_backend/tpl_auth/tpl_recovery.tpl
Normal file
151
f_templates/tpl_backend/tpl_auth/tpl_recovery.tpl
Normal file
@@ -0,0 +1,151 @@
|
||||
{if $smarty.get.s ne "" and $smarty.get.id ne ""}
|
||||
<div class="login-page">
|
||||
<div class="outer-border-wrapper" style="border-top: 1px solid #d8dbdd;">
|
||||
<form id="password-recovery-form" class="recovery-form user-form" method="post" action="">
|
||||
<article>
|
||||
<h3 class="content-title">
|
||||
<i class="icon-user"></i> {lang_entry key="backend.recovery.recovery.password"}
|
||||
</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
{if $error_message ne ""}{$error_message}{elseif $notice_message ne ""}{$notice_message}{/if}
|
||||
{if $tpl_error_max eq ""}
|
||||
|
||||
<div class="">
|
||||
<span class="label-signin">{lang_entry key="frontend.global.username"}: </span>
|
||||
<span class="input-signin">{if $global_section eq "frontend"}{$recovery_username['uname']}{else}{$recovery_username}{/if}</span>
|
||||
</div>
|
||||
<div class="">
|
||||
<span class="label-signin">{lang_entry key="recovery.forgot.new.password"}: </span>
|
||||
<span class="input-signin"><input type="password" id="recover-password-input" name="recovery_forgot_new_password" class="text-input" /></span>
|
||||
</div>
|
||||
<div class="">
|
||||
<span class="label-signin">{lang_entry key="recovery.forgot.retype.password"}: </span>
|
||||
<span class="input-signin"><input type="password" id="reenter-password-input" name="recovery_forgot_retype_password" class="text-input" /></span>
|
||||
</div>
|
||||
<div class="form-buttons">
|
||||
<span class="input-signin"></span>
|
||||
<span class="input-signin">
|
||||
<button class="search-button form-button" name="reset_password" id="reset-password-button" type="submit" value="1">{lang_entry key="frontend.global.submit"}</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
{if ($password_recovery_captcha eq "1" and $global_section eq "frontend")} {assign var=extra_l value=1}
|
||||
{elseif ($backend_password_recovery_captcha eq "1" and $global_section eq "backend")}{assign var=extra_l value=3} {/if}
|
||||
{if ($username_recovery_captcha eq "1" and $global_section eq "frontend")} {assign var=extra_r value=2}
|
||||
{elseif ($backend_username_recovery_captcha eq "1" and $global_section eq "backend")}{assign var=extra_r value=4} {/if}
|
||||
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
|
||||
<script type="text/javascript">
|
||||
var recaptcha1;
|
||||
var recaptcha2;
|
||||
var myCallBack = function() {ldelim}
|
||||
{if ($allow_password_recovery eq "1" and $global_section eq "frontend") or ($backend_password_recovery eq "1" and $global_section eq "backend")}
|
||||
{if ($password_recovery_captcha eq "1" and $global_section eq "frontend") or ($backend_password_recovery_captcha eq "1" and $global_section eq "backend")}
|
||||
recaptcha1 = grecaptcha.render('recaptcha1', {ldelim}
|
||||
'sitekey' : '{$recaptcha_site_key}',
|
||||
'theme' : 'light'
|
||||
{rdelim});
|
||||
{/if}
|
||||
{/if}
|
||||
{if ($allow_username_recovery eq "1" and $global_section eq "frontend") or ($backend_username_recovery eq "1" and $global_section eq "backend")}
|
||||
{if ($username_recovery_captcha eq "1" and $global_section eq "frontend") or ($backend_username_recovery_captcha eq "1" and $global_section eq "backend")}
|
||||
recaptcha2 = grecaptcha.render('recaptcha2', {ldelim}
|
||||
'sitekey' : '{$recaptcha_site_key}',
|
||||
'theme' : 'light'
|
||||
{rdelim});
|
||||
{/if}
|
||||
{/if}
|
||||
{rdelim};
|
||||
</script>
|
||||
|
||||
|
||||
<div class="">
|
||||
<div class="outer-border-wrapper" id="recover-password-mask">
|
||||
<form id="password-recovery-form" class="user-form" action="" method="post">
|
||||
{if ($allow_password_recovery eq "1" and $global_section eq "frontend") or ($backend_password_recovery eq "1" and $global_section eq "backend")}
|
||||
<article>
|
||||
<h3 class="content-title">
|
||||
<i class="icon-user"></i> {if $global_section eq "frontend"}{lang_entry key="recovery.forgot.password"}{else}{lang_entry key="backend.recovery.forgot.password"}{/if}
|
||||
</h3>
|
||||
<div class="line"></div>
|
||||
<span class="label-signin" style="line-height:20px">{if $global_section eq "frontend"}{lang_entry key="recovery.forgot.pass.txt"}{else}{lang_entry key="backend.recovery.forgot.pass.txt"}{/if}{if $password_recovery_captcha eq "1"}{lang_entry key="recovery.verif.code.txt"}{/if}{lang_entry key="recovery.forgot.pass.txt1"}</span>
|
||||
</article>
|
||||
<div id="recover-password-response" class=""></div>
|
||||
<div class="inner-wrapper center">
|
||||
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.global.username"}: </span>
|
||||
<span class="input-signin"><input type="text" id="recover-password-input" name="rec_username" class="text-input" {$left_disabled} /></span>
|
||||
</div>
|
||||
{if ($password_recovery_captcha eq "1" and $global_section eq "frontend") or ($backend_password_recovery_captcha eq "1" and $global_section eq "backend")}
|
||||
<div class="row" style="margin-top: 10px;">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin"><div id="recaptcha1" style="margin-top: 10px; margin-bottom: 15px; transform:scale(0.99);-webkit-transform:scale(0.99);transform-origin:0 0;-webkit-transform-origin:0 0;"></div></span>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="clearfix"></div>
|
||||
<div class="">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin">
|
||||
<button class="search-button form-button" name="recover_password" id="recover-password-button" type="button" value="1" {$left_disabled}>{lang_entry key="frontend.global.submit"}</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{else}
|
||||
<article>
|
||||
<h3 class="content-title">
|
||||
<i class="icon-user"></i> {lang_entry key='recovery.disabled.password'}
|
||||
</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="outer-border-wrapper" id="recover-username-mask">
|
||||
<form id="username-recovery-form" class="user-form" action="" method="post">
|
||||
{if ($allow_username_recovery eq "1" and $global_section eq "frontend") or ($backend_username_recovery eq "1" and $global_section eq "backend")}
|
||||
<article>
|
||||
<h3 class="content-title"><i class="icon-user"></i> {if $global_section eq "frontend"}{lang_entry key="recovery.forgot.username"}{else}{lang_entry key="backend.recovery.forgot.username"}{/if}</h3>
|
||||
<div class="line"></div>
|
||||
<span class="label-signin" style="line-height:20px">{if $global_section eq "frontend"}{lang_entry key="recovery.forgot.user.txt"}{else}{lang_entry key="backend.recovery.forgot.user.txt"}{/if}{if $username_recovery_captcha eq "1"}{lang_entry key="recovery.verif.code.txt"}{/if}{lang_entry key="recovery.forgot.user.txt1"}</span>
|
||||
</article>
|
||||
<div id="recover-username-response" class=""></div>
|
||||
<div class="inner-wrapper center">
|
||||
<div class="">
|
||||
<span class="label-signin">{lang_entry key="frontend.global.email"}: </span>
|
||||
<span class="input-signin"><input type="text" id="recover-username-input" name="rec_email" class="text-input" {$right_disabled} /></span>
|
||||
</div>
|
||||
{if ($username_recovery_captcha eq "1" and $global_section eq "frontend") or ($backend_username_recovery_captcha eq "1" and $global_section eq "backend")}
|
||||
<div class="row" style="margin-top: 10px;">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin"><div id="recaptcha2" style="margin-top: 10px; margin-bottom: 15px; transform:scale(0.99);-webkit-transform:scale(0.99);transform-origin:0 0;-webkit-transform-origin:0 0;"></div></span>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="clearfix"></div>
|
||||
<div class="">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin">
|
||||
<button class="search-button form-button" name="recover_username" id="recover-username-button" type="button" value="1" {$right_disabled}>{lang_entry key="frontend.global.submit"}</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{else}
|
||||
<article>
|
||||
<h3 class="content-title">
|
||||
<i class="icon-user"></i> {lang_entry key='recovery.disabled.username'}
|
||||
</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
43
f_templates/tpl_backend/tpl_auth/tpl_register.tpl
Normal file
43
f_templates/tpl_backend/tpl_auth/tpl_register.tpl
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="outer-border-wrapper">
|
||||
<div class="inner-wrapper center">
|
||||
{if $global_signup eq "0" or $do_disable eq "yes"}
|
||||
<div class="">{$disabled_signup_message}</div>
|
||||
{else}
|
||||
<form id="register-form" class="user-form" method="post" action="{if $global_section eq "frontend"}{$main_url}/{href_entry key="signin"}{if $smarty.get.next ne ""}?next={$smarty.get.next|sanitize}{/if}{/if}">
|
||||
<div class="top-bottom-padding bold">{if $global_section eq "frontend"}{lang_entry key="frontend.signin.text8"}{else}{lang_entry key="frontend.signup.h1"}{/if}</div>
|
||||
<div><br /></div>
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signin.username"}: </span>{if $signup_username_availability eq "1"}<span id="check-response"></span>{/if}
|
||||
<span class="input-signin"><input type="text" id="signup-username" class="text-input login-input" name="frontend_signin_username"></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signup.emailadd"}: </span>
|
||||
<span class="input-signin"><input type="text" class="text-input login-input" name="frontend_signup_emailadd"></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signin.password"}: </span>
|
||||
<span class="input-signin"><input type="password" class="text-input" name="frontend_signup_setpass" onclick="this.select();" onfocus="if(this.value == '{lang_entry key="frontend.signin.password"}1') { this.value = ''; }" onblur="if(this.value == '') { this.value = '{lang_entry key="frontend.signin.password"}1'; }" value="{lang_entry key="frontend.signin.password"}1" {if $signup_password_meter eq "1"}onkeyup="updatePasswordStrength_new(this,'passwdRating',{ldelim} 'text':2 {rdelim});"{/if} /></span>
|
||||
{if $signup_password_meter eq "1"}
|
||||
<div class="row no-top-padding">
|
||||
<div class="label-signup"></div>
|
||||
<div class="input-signup">
|
||||
<div id="passwdRating">
|
||||
<div id="pass_meter" class="pass_meter"><div class="pass_meter_base"></div></div>
|
||||
<div id="ps-rating"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signup.setpassagain"}: </span>
|
||||
<span class="input-signin"><input type="password" class="text-input" name="frontend_signup_setpassagain" onclick="this.select();" /></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin"><button class="search-button form-button" value="1" name="frontend_global_submit"><span>{lang_entry key="frontend.signup.create"}</span></button></span>
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
44
f_templates/tpl_backend/tpl_auth/tpl_signin_loginbox.tpl
Normal file
44
f_templates/tpl_backend/tpl_auth/tpl_signin_loginbox.tpl
Normal file
@@ -0,0 +1,44 @@
|
||||
{if $signin_captcha_be eq "1"}<script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>{/if}
|
||||
<div class="outer-border-wrapper">
|
||||
<div class="inner-wrapper center">
|
||||
{if ($global_section eq "frontend" and $frontend_signin_section eq "1") or ($global_section eq "backend" and $backend_signin_section eq "1")}
|
||||
<form id="signin-form" class="user-form" method="post" action="{if $global_section eq "frontend"}{$main_url}/{href_entry key="signin"}{if $smarty.get.next ne ""}?next={$smarty.get.next|sanitize}{/if}{/if}">
|
||||
<article>
|
||||
<h3 class="content-title"><i class="icon-user"></i> {if $global_section eq "frontend"}{lang_entry key="frontend.signin.text8"}{else}{lang_entry key="backend.login.intro.text"}{/if}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
{$error_message}
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signin.username"}: </span>
|
||||
<span class="input-signin"><input {$disabled_input} type="text" class="text-input login-input" name="frontend_signin_username" /></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="label-signin">{lang_entry key="frontend.signin.password"}: </span>
|
||||
<span class="input-signin"><input {$disabled_input} type="password" class="text-input" name="frontend_signin_password" onclick="this.select();" /></span>
|
||||
</div>
|
||||
{if ($global_section eq "frontend" and $login_remember eq "1") or ($global_section eq "backend" and $backend_remember eq "1")}
|
||||
<div class="row">
|
||||
<span class="label-signin no-top-margin icheck-box"><input {$disabled_input} type="checkbox" name="signin_remember" value="1" {if $smarty.post.signin_remember}checked="checked"{/if} /></span>
|
||||
<span class="input-signin top-padding2">{lang_entry key="frontend.signin.remember"}</span>
|
||||
</div>
|
||||
{/if}
|
||||
{if $signin_captcha_be eq "1"}
|
||||
<div class="captcha-row">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin"><div class="g-recaptcha" data-sitekey="{$recaptcha_site_key}" style="transform:scale(0.99);-webkit-transform:scale(0.99);transf
|
||||
</div>
|
||||
{/if}
|
||||
<div class="clearfix"></div>
|
||||
<div class="row form-buttons">
|
||||
<span class="label-signin"></span>
|
||||
<span class="input-signin"><button {$disabled_input} class="search-button form-button" value="1" name="frontend_global_submit"><span>{lang_entry key="frontend.global.signin"}</span></button></span>
|
||||
</div>
|
||||
</form>
|
||||
{else}
|
||||
<article>
|
||||
<h3 class="content-title"><i class="icon-user"></i> {lang_entry key='frontend.signin.text11'}</h3>
|
||||
<div class="line"></div>
|
||||
</article>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user