| 1 | {include file='header' __disableLoginLink=true __disableAds=true} |
| 2 | |
| 3 | {if !$errorField|empty && $errorField == 'cookie'} |
| 4 | <p class="error">{lang}wcf.user.login.error.cookieRequired{/lang}</p> |
| 5 | {else} |
| 6 | {include file='formError'} |
| 7 | {/if} |
| 8 | |
| 9 | <div id="loginForm" class="loginForm"> |
| 10 | <form method="post" action="{@$loginController}"> |
| 11 | <section class="section loginFormLogin"> |
| 12 | <h2 class="sectionTitle">{lang}wcf.user.login.login{/lang}</h2> |
| 13 | |
| 14 | <dl{if $errorField == 'username'} class="formError"{/if}> |
| 15 | <dt><label for="username">{lang}wcf.user.usernameOrEmail{/lang}</label></dt> |
| 16 | <dd> |
| 17 | <input type="text" id="username" name="username" value="{$username}" required="required" class="long" /> |
| 18 | {if $errorField == 'username'} |
| 19 | <small class="innerError"> |
| 20 | {if $errorType == 'empty'} |
| 21 | {lang}wcf.global.form.error.empty{/lang} |
| 22 | {else} |
| 23 | {lang}wcf.user.username.error.{@$errorType}{/lang} |
| 24 | {/if} |
| 25 | </small> |
| 26 | {/if} |
| 27 | </dd> |
| 28 | </dl> |
| 29 | |
| 30 | <dl{if $errorField == 'password'} class="formError"{/if}> |
| 31 | <dt><label for="password">{lang}wcf.user.password{/lang}</label></dt> |
| 32 | <dd> |
| 33 | <input type="password" id="password" name="password" value="{$password}" class="long" /> |
| 34 | {if $errorField == 'password'} |
| 35 | <small class="innerError"> |
| 36 | {if $errorType == 'empty'} |
| 37 | {lang}wcf.global.form.error.empty{/lang} |
| 38 | {else} |
| 39 | {lang}wcf.user.password.error.{@$errorType}{/lang} |
| 40 | {/if} |
| 41 | </small> |
| 42 | {/if} |
| 43 | <small><a href="{link controller='LostPassword'}{/link}">{lang}wcf.user.lostPassword{/lang}</a></small> |
| 44 | </dd> |
| 45 | </dl> |
| 46 | |
| 47 | {if $supportsPersistentLogins} |
| 48 | <dl> |
| 49 | <dt></dt> |
| 50 | <dd> |
| 51 | <label for="useCookies"><input type="checkbox" id="useCookies" name="useCookies" value="1"{if $useCookies} checked{/if}> {lang}wcf.user.useCookies{/lang}</label> |
| 52 | </dd> |
| 53 | </dl> |
| 54 | {/if} |
| 55 | |
| 56 | {event name='fields'} |
| 57 | |
| 58 | {include file='captcha'} |
| 59 | |
| 60 | <div class="userLoginButtons"> |
| 61 | <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s"> |
| 62 | <input type="hidden" name="url" value="{$url}"> |
| 63 | {@SECURITY_TOKEN_INPUT_TAG} |
| 64 | </div> |
| 65 | </section> |
| 66 | |
| 67 | {if !REGISTER_DISABLED} |
| 68 | <section class="section loginFormRegister"> |
| 69 | <h2 class="sectionTitle">{lang}wcf.user.login.register{/lang}</h2> |
| 70 | |
| 71 | <p>{lang}wcf.user.login.register.teaser{/lang}</p> |
| 72 | |
| 73 | <div class="userLoginButtons"> |
| 74 | <a href="{link controller='Register'}{/link}" class="button loginFormRegisterButton">{lang}wcf.user.login.register.registerNow{/lang}</a> |
| 75 | </div> |
| 76 | </section> |
| 77 | {/if} |
| 78 | |
| 79 | {hascontent} |
| 80 | <section class="section loginFormThirdPartyLogin"> |
| 81 | <h2 class="sectionTitle">{lang}wcf.user.login.3rdParty{/lang}</h2> |
| 82 | |
| 83 | <dl> |
| 84 | <dt></dt> |
| 85 | <dd> |
| 86 | <ul class="buttonList smallButtons"> |
| 87 | {content} |
| 88 | {if GITHUB_PUBLIC_KEY !== '' && GITHUB_PRIVATE_KEY !== ''} |
| 89 | <li id="githubAuth" class="thirdPartyLogin"> |
| 90 | <a href="{link controller='GithubAuth'}{/link}" class="button thirdPartyLoginButton githubLoginButton"><span class="icon icon16 fa-github"></span> <span>{lang}wcf.user.3rdparty.github.login{/lang}</span></a> |
| 91 | </li> |
| 92 | {/if} |
| 93 | |
| 94 | {if TWITTER_PUBLIC_KEY !== '' && TWITTER_PRIVATE_KEY !== ''} |
| 95 | <li id="twitterAuth" class="thirdPartyLogin"> |
| 96 | <a href="{link controller='TwitterAuth'}{/link}" class="button thirdPartyLoginButton twitterLoginButton"><span class="icon icon16 fa-twitter"></span> <span>{lang}wcf.user.3rdparty.twitter.login{/lang}</span></a> |
| 97 | </li> |
| 98 | {/if} |
| 99 | |
| 100 | {if FACEBOOK_PUBLIC_KEY !== '' && FACEBOOK_PRIVATE_KEY !== ''} |
| 101 | <li id="facebookAuth" class="thirdPartyLogin"> |
| 102 | <a href="{link controller='FacebookAuth'}{/link}" class="button thirdPartyLoginButton facebookLoginButton"><span class="icon icon16 fa-facebook"></span> <span>{lang}wcf.user.3rdparty.facebook.login{/lang}</span></a> |
| 103 | </li> |
| 104 | {/if} |
| 105 | |
| 106 | {if GOOGLE_PUBLIC_KEY !== '' && GOOGLE_PRIVATE_KEY !== ''} |
| 107 | <li id="googleAuth" class="thirdPartyLogin"> |
| 108 | <a href="{link controller='GoogleAuth'}{/link}" class="button thirdPartyLoginButton googleLoginButton"><span class="icon icon16 fa-google-plus"></span> <span>{lang}wcf.user.3rdparty.google.login{/lang}</span></a> |
| 109 | </li> |
| 110 | {/if} |
| 111 | |
| 112 | {event name='3rdpartyButtons'} |
| 113 | {/content} |
| 114 | </ul> |
| 115 | </dd> |
| 116 | </dl> |
| 117 | </section> |
| 118 | {/hascontent} |
| 119 | </form> |
| 120 | </div> |
| 121 | |
| 122 | <script data-relocate="true"> |
| 123 | //<![CDATA[ |
| 124 | $(function() { |
| 125 | new WCF.User.Login(false); |
| 126 | }); |
| 127 | //]]> |
| 128 | </script> |
| 129 | |
| 130 | {include file='footer' __disableAds=true} |