<?php
/**
* VFM - veno file manager: include/navbar.php
* user menu, user panel and language selector
*
* PHP version >= 5.3
*
* @category PHP
* @package VenoFileManager
* @author Nicola Franchini <support@veno.it>
* @copyright 2013 Nicola Franchini
* @license Exclusively sold on CodeCanyon
* @link http://filemanager.veno.it/
*/
if (!defined('VFM_APP')) {
return;
}
$stepback = 'vfm-admin/';
$navbarclass = $setUp->getConfig("header_position") == 'above' ? '' : ' fixed-top'
?>
<nav class="navbar bg-dark navbar-expand-lg shadow<?php echo $navbarclass; ?>">
<div class="container">
<?php // Brand button
if (!$setUp->getConfig('hide_logo', false)) {
?>
<a class="navbar-brand" href="<?php echo $setUp->getConfig("script_url"); ?>">
<?php
if ($setUp->getConfig('navbar_logo')) { ?>
<img src="<?php echo $stepback.'_content/uploads/'.$setUp->getConfig('navbar_logo'); ?>">
<?php
} else {
echo $setUp->getConfig("appname");
} ?>
</a>
<?php
} ?>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-vfm-menu" aria-controls="collapse-vfm-menu" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-list"></i>
</button>
<div class="collapse navbar-collapse" id="collapse-vfm-menu">
<ul class="navbar-nav ms-auto">
<?php
// User menu.
if ($gateKeeper->isUserLoggedIn()) {
$username = $gateKeeper->getUserInfo('name');
$avaimg = $gateKeeper->getAvatar($username, $stepback);
if ($setUp->getConfig("show_usermenu") == true) { ?>
<li class="nav-item">
<a class="nav-link edituser" href="#" data-bs-toggle="modal" data-bs-target="#userpanel">
<?php echo $avaimg; ?>
<span class="d-inline-block">
<?php echo $username; ?>
</span>
</a>
</li>
<?php
}
if ($gateKeeper->isSuperAdmin()) { ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $setUp->getConfig("script_url"); ?>vfm-admin/">
<i class="bi bi-sliders"></i> <?php echo $setUp->getString("administration"); ?>
</a>
</li>
<?php
} ?>
<li class="nav-item">
<a class="nav-link" href="<?php echo $setUp->getConfig("script_url").$location->makeLink(true, null, ""); ?>">
<i class="bi bi-box-arrow-right"></i> <?php echo $setUp->getString("log_out"); ?>
</a>
</li>
<?php
} else { // end logged user
?>
<li class="nav-item">
<a class="nav-link" id="call-login" href="<?php echo $setUp->getConfig("script_url"); ?>#user_name">
<i class="bi bi-box-arrow-in-right"></i> <?php echo $setUp->getString("log_in"); ?>
</a>
</li>
<?php
}
// Global search
if ($setUp->getConfig('global_search') && $gateKeeper->isAccessAllowed() && $gateKeeper->isAllowed('viewdirs_enable')) { ?>
<li class="nav-item">
<a class="nav-link" href="#" data-bs-toggle="modal" data-bs-target="#global-search">
<i class="bi bi-search"></i>
<?php echo $setUp->getString("search"); ?>
</a>
</li>
<?php
}
// Language selector
if ($setUp->getConfig('show_langmenu')) { ?>
<li class="dropdown nav-item">
<a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" role="button" aria-expanded="false">
<i class="bi bi-flag"></i>
<?php
if ($setUp->getConfig('show_langname')) {
echo $setUp->getString("LANGUAGE_NAME");
} else {
echo $setUp->getString("language");
} ?>
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-end lang-menu">
<?php echo $setUp->printLangMenu($stepback); ?>
</ul>
</li>
<?php
} ?>
</ul>
</div>
</div>
</nav>
<?php
/**
* Global search
*/
if ($setUp->getConfig('global_search') && $gateKeeper->isAccessAllowed() && $gateKeeper->isAllowed('viewdirs_enable')) { ?>
<div class="modal fade" id="global-search" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"><i class="bi bi-zoom-in"></i> <?php echo $setUp->getString("global_search"); ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="search-form" class="disabled">
<div class="input-group input-group-lg mb-2">
<input class="form-control" id="s-input" type="text" name="s" placeholder="<?php echo $setUp->getString("search"); ?>...">
<button class="btn btn-primary submit-search disabled" type="submit"><i class="bi bi-search"></i></button>
</div>
<div class="modal_response">
</div>
</form>
</div>
</div>
</div>
</div>
<?php
} ?>
<?php
/**
* User Panel
*/
if ($gateKeeper->isUserLoggedIn() && $setUp->getConfig("show_usermenu") == true) {
/**
* Get additional custom fields
*/
$customfields = false;
if (file_exists('vfm-admin/_content/users/customfields.php')) {
include 'vfm-admin/_content/users/customfields.php';
} ?>
<div class="modal userpanel fade" id="userpanel" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul class="nav nav-pills nav-fill mb-3" role="tablist">
<?php
// additional custom fields.
$profileTabActive = ' active';
$profilePanelActive = ' show active';
if (is_array($customfields) && !empty($customfields)) {
$profileTabActive = '';
$profilePanelActive = '';
?>
<li role="presentation" class="nav-item">
<button class="nav-link active" data-bs-target="#customfields" aria-controls="home" role="tab" data-bs-toggle="pill">
<i class="bi bi-card-list"></i> <?php echo $setUp->getString("informations"); ?>
</button>
</li>
<?php
} ?>
<li role="presentation" class="nav-item">
<button class="nav-link<?php echo $profileTabActive; ?>" data-bs-target="#upprof" aria-controls="home" role="tab" data-bs-toggle="pill">
<i class="bi bi-pencil-square"></i>
<?php echo $setUp->getString("update_profile"); ?>
</button>
</li>
<li role="presentation" class="nav-item">
<button class="nav-link" data-bs-target="#upava" aria-controls="home" role="tab" data-bs-toggle="pill">
<i class="bi bi-person-circle"></i>
<?php echo $setUp->getString("avatar"); ?>
</button>
</li>
</ul>
<form role="form" method="post" id="usrForm" autocomplete="off" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']);?>">
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade text-center" id="upava" role="tabpanel">
<div class="avatar-response"></div>
<div class="avatar-panel">
<div class="updated"></div>
<img class="avadefault rounded-circle" data-name="<?php echo $gateKeeper->getUserInfo('name'); ?>" />
<div class="cropit-preview"></div>
<i class="bi bi-x-lg text-muted remove-avatar"></i>
<input type="range" class="cropit-image-zoom-input slider" />
<input type="file" id="uppavatar" class="cropit-image-input">
</div>
<!-- And clicking on this button will open up select file dialog -->
<div class="select-image-btn uppa btn btn-primary">
<?php echo $setUp->getString("upload"); ?> <i class="bi bi-upload"></i>
</div>
<div class="export btn btn-primary d-none">
<?php echo $setUp->getString("update"); ?> <i class="bi bi-check-circle"></i>
</div>
<input type="hidden" class="image-name" value="<?php echo md5($gateKeeper->getUserInfo('name')); ?>">
</div> <!-- tabpanel -->
<div role="tabpanel" class="tab-pane fade<?php echo $profilePanelActive; ?>" id="upprof" role="tabpanel">
<div class="form-group mb-3">
<label class="form-label" for="user_new_name">
<?php echo $setUp->getString("username"); ?>
</label>
<input name="user_old_name" type="hidden" readonly class="form-control" value="<?php echo $gateKeeper->getUserInfo('name'); ?>">
<div class="input-group mb-3">
<span class="input-group-text"><i class="bi bi-person"></i></span>
<input name="user_new_name" type="text" class="form-control" value="<?php echo $gateKeeper->getUserInfo('name'); ?>">
</div>
<label class="form-label" for="user_new_email">
<?php echo $setUp->getString("email"); ?>
</label>
<input name="user_old_email" type="hidden" readonly class="form-control" value="<?php echo $gateKeeper->getUserInfo('email'); ?>">
<div class="input-group mb-3">
<span class="input-group-text"><i class="bi bi-envelope"></i></span>
<input name="user_new_email" type="text" class="form-control" value="<?php echo $gateKeeper->getUserInfo('email'); ?>">
</div>
<label class="form-label" for="user_new_pass">
<?php echo $setUp->getString("new_password"); ?>
</label>
<div class="input-group mb-3">
<span class="input-group-text"><i class="bi bi-lock"></i></span>
<input name="user_new_pass" id="newp" type="password" class="form-control">
</div>
<label class="form-label" for="user_new_pass_confirm">
<?php echo $setUp->getString("new_password")." (".$setUp->getString("confirm").")"; ?>
</label>
<div class="input-group mb-3">
<span class="input-group-text"><i class="bi bi-lock"></i></span>
<input name="user_new_pass_confirm" id="checknewp" type="password" class="form-control">
</div>
</div>
</div> <!-- tabpanel -->
<?php
/**
* Set additional custom fields
*/
if (is_array($customfields) && !empty($customfields)) {
$customlist = htmlspecialchars(json_encode($customfields)); ?>
<div role="tabpanel" class="tab-pane fade show active" id="customfields">
<input type="hidden" name="user-customfields" value="<?php echo $customlist; ?>">
<?php
foreach ($customfields as $customkey => $customfield) {
$optionselecta = $gateKeeper->getUserInfo($customkey);
if (isset($customfield['type'])) { ?>
<div class="form-group mb-3">
<label class="form-label"><?php echo $customfield['name']; ?></label>
<?php
if ($customfield['type'] === 'textarea') { ?>
<textarea name="<?php echo $customkey; ?>" class="form-control getuser getuser-<?php echo $customkey; ?>" rows="2">
<?php echo $optionselecta; ?>
</textarea>
<?php
}
if ($customfield['type'] === 'select' && is_array($customfield['options'])) {
$multiselect = '';
if (isset($customfield['multiple']) && $customfield['multiple'] == true) {
$multiselect = ($customfield['multiple'] == true ? 'multiple="multiple"' : '');
} ?>
<select name="<?php echo $customkey; ?>" class="form-select" <?php echo $multiselect; ?>>
<?php
foreach ($customfield['options'] as $optionval => $optiontitle) {
$selected = ($optionselecta == $optionval) ? 'selected' : '';
?>
<option value="<?php echo $optionval; ?>" <?php echo $selected ;?>>
<?php echo $optiontitle; ?>
</option>
<?php
} ?>
</select>
<?php
}
if ($customfield['type'] === 'text' || $customfield['type'] === 'email') { ?>
<input type="<?php echo $customfield['type']; ?>" name="<?php echo $customkey; ?>" class="form-control" value="<?php echo $optionselecta; ?>">
<?php
} ?>
</div>
<?php
} // end customfield type
} // end foreach ?>
</div> <!-- tabpanel -->
<?php
} ?>
</div><!-- tab-content -->
<div class="form-group mb-3">
<label class="form-label" for="user_old_pass">
* <?php echo $setUp->getString("current_pass"); ?>
</label>
<div class="input-group">
<span class="input-group-text"><i class="bi bi-unlock"></i></span>
<input name="user_old_pass" type="password" id="oldp" required class="form-control">
</div>
</div>
<div class="d-grid gap-2">
<button type="submit" class="btn btn-primary">
<i class="bi bi-arrow-repeat"></i> <?php print $setUp->getString("update"); ?>
</button>
</div>
</form>
</div> <!-- modal-body -->
</div> <!-- modal-content -->
</div> <!-- modal-dialog -->
</div> <!-- modal -->
<?php
}