registration can force to upload photo

This commit is contained in:
iBNu Maksum 2024-11-20 14:44:23 +07:00
parent c9778e71b9
commit 153da7c63b
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
7 changed files with 115 additions and 46 deletions

View File

@ -95,6 +95,25 @@ switch ($do) {
$d->phonenumber = $phone_number;
if ($d->save()) {
$user = $d->id();
if ($config['photo_register'] == 'yes' && !empty($_FILES['photo']['name']) && file_exists($_FILES['photo']['tmp_name'])) {
if (function_exists('imagecreatetruecolor')) {
$hash = md5_file($_FILES['photo']['tmp_name']);
$subfolder = substr($hash, 0, 2);
$folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR;
if (!file_exists($folder)) {
mkdir($folder);
}
$folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR . $subfolder . DIRECTORY_SEPARATOR;
if (!file_exists($folder)) {
mkdir($folder);
}
$imgPath = $folder . $hash . '.jpg';
File::resizeCropImage($_FILES['photo']['tmp_name'], $imgPath, 1600, 1600, 100);
$d->photo = '/photos/' . $subfolder . '/' . $hash . '.jpg';
$d->save();
}
}
if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']);
User::setFormCustomField($user);
run_hook('register_user'); #HOOK
r2(U . 'login', 's', Lang::T('Register Success! You can login now'));

View File

@ -915,5 +915,8 @@
"Data_Change": "Data Change",
"Photo": "Photo",
"Home_Address": "Home Address",
"Email_Address": "Email Address"
"Email_Address": "Email Address",
"Photo_Required": "Photo Required",
"Customer_Registration_need_to_upload_their_photo": "Customer Registration need to upload their photo",
"Account_already_exists": "Account already exists"
}

View File

@ -20,23 +20,19 @@
<div id="collapseGeneral" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Application Name / Company
Name')}</label>
<label class="col-md-2 control-label">{Lang::T('Application Name / Company Name')}</label>
<div class="col-md-6">
<input type="text" required class="form-control" id="CompanyName" name="CompanyName"
value="{$_c['CompanyName']}">
</div>
<span class="help-block col-md-4">{Lang::T('This Name will be shown on the
Title')}</span>
<span class="help-block col-md-4">{Lang::T('This Name will be shown on the Title')}</span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Company Logo')}</label>
<div class="col-md-6">
<input type="file" class="form-control" id="logo" name="logo" accept="image/*">
<span class="help-block">{Lang::T('For PDF Reports | Best size 1078 x 200 |
uploaded image
will be
autosize')}</span>
<span
class="help-block">{Lang::T('For PDF Reports | Best size 1078 x 200 | uploaded image will be autosize')}</span>
</div>
<span class="help-block col-md-4">
<a href="./{$logo}" target="_blank"><img src="./{$logo}" height="48" alt="logo for PDF"></a>
@ -166,12 +162,14 @@
</div>
</form>
<form class="form-horizontal" method="post" role="form" action="{$_url}settings/login-page-post" enctype="multipart/form-data">
<form class="form-horizontal" method="post" role="form" action="{$_url}settings/login-page-post"
enctype="multipart/form-data">
<input type="hidden" name="csrf_token" value="{$csrf_token}">
<div class="panel" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel-heading" role="tab" id="LoginPage">
<h3 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseLoginPage" aria-expanded="true" aria-controls="collapseLoginPage">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseLoginPage"
aria-expanded="true" aria-controls="collapseLoginPage">
{Lang::T('Customer Login Page Settings')}
</a>
</h3>
@ -182,8 +180,10 @@
<label class="col-md-2 control-label">{Lang::T('Choose Template')}</label>
<div class="col-md-6">
<select name="login_page_type" id="login_page_type" class="form-control">
<option value="default" {if $_c['login_page_type']=='default' }selected="selected"{/if}>{Lang::T('Default')}</option>
<option value="custom" {if $_c['login_page_type']=='custom' }selected="selected"{/if}>{Lang::T('Custom')}</option>
<option value="default" {if $_c['login_page_type']=='default' }selected="selected" {/if}>
{Lang::T('Default')}</option>
<option value="custom" {if $_c['login_page_type']=='custom' }selected="selected" {/if}>
{Lang::T('Custom')}</option>
</select>
</div>
<span class="help-block col-md-4"><small>{Lang::T('Select your login template type')}</small></span>
@ -194,54 +194,70 @@
<div class="col-md-6">
<select name="login_Page_template" id="login_Page_template" class="form-control">
{foreach $template_files as $template}
<option value="{$template.value|escape}" {if $_c['login_Page_template'] eq $template.value}selected="selected" {/if}>{$template.name|escape}</option>
<option value="{$template.value|escape}"
{if $_c['login_Page_template'] eq $template.value}selected="selected" {/if}>
{$template.name|escape}</option>
{/foreach}
</select>
</div>
<span class="help-block col-md-4"><small>{Lang::T('Select your preferred login template')}</small></span>
<span
class="help-block col-md-4"><small>{Lang::T('Select your preferred login template')}</small></span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Page Heading / Company Name')}</label>
<div class="col-md-6">
<input type="text" required class="form-control" id="login_page_head" name="login_page_head" value="{$_c['login_page_head']}">
<input type="text" required class="form-control" id="login_page_head" name="login_page_head"
value="{$_c['login_page_head']}">
</div>
<span class="help-block col-md-4"><small>{Lang::T('This Name will be shown on the login wallpaper')}</small></span>
<span
class="help-block col-md-4"><small>{Lang::T('This Name will be shown on the login wallpaper')}</small></span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Page Description')}</label>
<div class="col-md-6">
<textarea class="form-control" id="login_page_description" name="login_page_description" rows="3">{Lang::htmlspecialchars($_c['login_page_description'])}</textarea>
<textarea class="form-control" id="login_page_description" name="login_page_description"
rows="3">{Lang::htmlspecialchars($_c['login_page_description'])}</textarea>
</div>
<span class="help-block col-md-4"><small>{Lang::T('This will also display on wallpaper, You can use html tag')}</small></span>
<span
class="help-block col-md-4"><small>{Lang::T('This will also display on wallpaper, You can use html tag')}</small></span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Favicon')}</label>
<div class="col-md-6">
<input type="file" class="form-control" id="login_page_favicon" name="login_page_favicon" accept="image/*">
<span class="help-block"><small>{Lang::T('Best size 30 x 30 | uploaded image will be autosize')}</small></span>
<input type="file" class="form-control" id="login_page_favicon" name="login_page_favicon"
accept="image/*">
<span
class="help-block"><small>{Lang::T('Best size 30 x 30 | uploaded image will be autosize')}</small></span>
</div>
<span class="help-block col-md-4">
<a href="./{$favicon}" target="_blank"><img src="./{$favicon}" height="48" alt="Favicon"></a>
<a href="./{$favicon}" target="_blank"><img src="./{$favicon}" height="48"
alt="Favicon"></a>
</span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Login Page Logo')}</label>
<div class="col-md-6">
<input type="file" class="form-control" id="login_page_logo" name="login_page_logo" accept="image/*">
<span class="help-block"><small>{Lang::T('Best size 300 x 60 | uploaded image will be autosize')}</small></span>
<input type="file" class="form-control" id="login_page_logo" name="login_page_logo"
accept="image/*">
<span
class="help-block"><small>{Lang::T('Best size 300 x 60 | uploaded image will be autosize')}</small></span>
</div>
<span class="help-block col-md-4">
<a href="./{$login_logo}" target="_blank"><img src="./{$login_logo}" height="48" alt="Logo"></a>
<a href="./{$login_logo}" target="_blank"><img src="./{$login_logo}" height="48"
alt="Logo"></a>
</span>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Login Page Wallpaper')}</label>
<div class="col-md-6">
<input type="file" class="form-control" id="login_page_wallpaper" name="login_page_wallpaper" accept="image/*">
<span class="help-block"><small>{Lang::T('Best size 1920 x 1080 | uploaded image will be autosize')}</small></span>
<input type="file" class="form-control" id="login_page_wallpaper"
name="login_page_wallpaper" accept="image/*">
<span
class="help-block"><small>{Lang::T('Best size 1920 x 1080 | uploaded image will be autosize')}</small></span>
</div>
<span class="help-block col-md-4">
<a href="./{$wallpaper}" target="_blank"><img src="./{$wallpaper}" height="48" alt="Wallpaper"></a>
<a href="./{$wallpaper}" target="_blank"><img src="./{$wallpaper}" height="48"
alt="Wallpaper"></a>
</span>
</div>
</div>
@ -304,6 +320,22 @@
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Photo Required')}</label>
<div class="col-md-6">
<select name="photo_register" id="photo_register" class="form-control">
<option value="no">
{Lang::T('No')}
</option>
<option value="yes" {if $_c['photo_register']=='yes' }selected="selected" {/if}>
{Lang::T('Yes')}
</option>
</select>
</div>
<p class="help-block col-md-4">
{Lang::T('Customer Registration need to upload their photo')}
</p>
</div>
<div class="form-group">
<label class="col-md-2 control-label">{Lang::T('SMS OTP Registration')}</label>
<div class="col-md-6">
@ -362,8 +394,8 @@
<label class="col-md-3 control-label">{Lang::T('Enable Session Timeout')}</label>
<div class="col-md-5">
<label class="switch">
<input type="checkbox" id="enable_session_timeout" value="1"
name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}>
<input type="checkbox" id="enable_session_timeout" value="1" name="enable_session_timeout"
{if $_c['enable_session_timeout']==1}checked{/if}>
<span class="slider"></span>
</label>
</div>
@ -409,7 +441,8 @@
</select>
</div>
<p class="help-block col-md-4">
<a href="https://en.wikipedia.org/wiki/Cross-site_request_forgery" target="_blank">{Lang::T('Cross-site request forgery')}</a>
<a href="https://en.wikipedia.org/wiki/Cross-site_request_forgery"
target="_blank">{Lang::T('Cross-site request forgery')}</a>
</p>
</div>
<button class="btn btn-success btn-block" type="submit">
@ -933,8 +966,8 @@
<div class="form-group">
<label class="col-md-2 control-label">Tawk.to Javascript API key</label>
<div class="col-md-6">
<input type="text" class="form-control" id="tawkto_api_key" name="tawkto_api_key" value="{$_c['tawkto_api_key']}"
placeholder="39e52264cxxxxxxxxxxxxxdd078af5342e8">
<input type="text" class="form-control" id="tawkto_api_key" name="tawkto_api_key"
value="{$_c['tawkto_api_key']}" placeholder="39e52264cxxxxxxxxxxxxxdd078af5342e8">
</div>
</div>
<label class="col-md-2"></label>
@ -1190,7 +1223,7 @@
<script>
document.addEventListener('DOMContentLoaded', function () {
document.addEventListener('DOMContentLoaded', function() {
var sectionTimeoutCheckbox = document.getElementById('enable_session_timeout');
var timeoutDurationInput = document.getElementById('timeout_duration_input');
var timeoutDurationField = document.getElementById('session_timeout_duration');
@ -1200,7 +1233,7 @@
timeoutDurationField.required = true;
}
sectionTimeoutCheckbox.addEventListener('change', function () {
sectionTimeoutCheckbox.addEventListener('change', function() {
if (this.checked) {
timeoutDurationInput.style.display = 'block';
timeoutDurationField.required = true;
@ -1210,9 +1243,9 @@
}
});
document.querySelector('form').addEventListener('submit', function (event) {
document.querySelector('form').addEventListener('submit', function(event) {
if (sectionTimeoutCheckbox.checked && (!timeoutDurationField.value || isNaN(
timeoutDurationField.value))) {
timeoutDurationField.value))) {
event.preventDefault();
alert('Please enter a valid session timeout duration.');
timeoutDurationField.focus();
@ -1246,11 +1279,11 @@
document.getElementById('login_page_type').addEventListener('change', function() {
var selectedValue = this.value;
var customFields = document.getElementById('customFields');
if (selectedValue === 'custom') {
customFields.style.display = 'block';
} else {
customFields.style.display = 'none';
customFields.style.display = 'none';
}
});
document.getElementById('login_page_type').dispatchEvent(new Event('change'));

View File

@ -21,8 +21,9 @@
<label>{Lang::T('Phone Number')}</label>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1"><i
class="glyphicon glyphicon-phone-alt"></i></span>
<input type="text" class="form-control" name="phone_number" value="{$phone_number}" readonly
class="glyphicon glyphicon-phone-alt"></i></span>
<input type="text" class="form-control" name="phone_number" value="{$phone_number}"
readonly
placeholder="{if $_c['country_code_phone']!= '' || $_c['registration_username'] == 'phone'}{$_c['country_code_phone']} {Lang::T('Phone Number')}{else}{Lang::T('Phone Number')}{/if}">
</div>
</div>
@ -31,6 +32,12 @@
<input type="text" required class="form-control" id="otp_code" value=""
placeholder="{Lang::T('Verification Code')}" name="otp_code">
</div>
{if $_c['photo_register'] == 'yes'}
<div class="form-group">
<label>{Lang::T('Photo')}</label>
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
</div>
{/if}
<div class="form-group">
<label>{Lang::T('Full Name')}</label>
<input type="text" required class="form-control" id="fullname" value="{$fullname}"
@ -58,7 +65,8 @@
<!-- Username Field -->
<div class="form-group">
<label>{Lang::T('Username')}</label>
<input type="text" required class="form-control" id="username" name="username" placeholder="{Lang::T('Choose a Username')}">
<input type="text" required class="form-control" id="username" name="username"
placeholder="{Lang::T('Choose a Username')}">
</div>
<!-- Password Fields -->
<div class="form-group">
@ -123,4 +131,4 @@
<!--End of Tawk.to Script-->
{/if}
{include file="customer/footer-public.tpl"}
{include file="customer/footer-public.tpl"}

View File

@ -41,6 +41,12 @@
placeholder="{if $_c['country_code_phone']!= '' || $_c['registration_username'] == 'phone'}{$_c['country_code_phone']} {Lang::T('Phone Number')}{elseif $_c['registration_username'] == 'email'}{Lang::T('Email')}{else}{Lang::T('Username')}{/if}">
</div>
</div>
{if $_c['photo_register'] == 'yes'}
<div class="form-group">
<label>{Lang::T('Photo')}</label>
<input type="file" required class="form-control" id="photo" name="photo" accept="image/*">
</div>
{/if}
<div class="form-group">
<label>{Lang::T('Full Name')}</label>
<input type="text" required class="form-control" id="fullname" value="{$fullname}"

View File

@ -36,7 +36,7 @@
<option value="time">Time</option>
<option value="number">Number</option>
<option value="option">Option</option>
<option value="image">Image</option>
{* <option value="image">Image</option> *}
</select>
</div>
</div>
@ -109,7 +109,7 @@
<option value="time" {if $field['type'] == 'time'}selected{/if}>Time</option>
<option value="number" {if $field['type'] == 'number'}selected{/if}>Number</option>
<option value="option" {if $field['type'] == 'option'}selected{/if}>Option</option>
<option value="image" {if $field['type'] == 'image'}selected{/if}>Image</option>
{* <option value="image" {if $field['type'] == 'image'}selected{/if}>Image</option> *}
</select>
</div>
</div>

View File

@ -1,3 +1,3 @@
{
"version": "2024.11.11"
"version": "2024.11.20"
}