Merge branch 'aragonc-1.11.x' into 1.11.x

pull/3559/head
Yannick Warnier 5 years ago
commit 9a6fbade3c
  1. 52
      app/Resources/public/css/base.css
  2. 80
      app/Resources/public/css/custompage.css
  3. 80
      app/Resources/public/css/themes/chamilo/custompage.css
  4. BIN
      app/Resources/public/css/themes/chamilo/images/favicon.png
  5. 146
      app/Resources/public/css/themes/chamilo/images/header-logo.svg
  6. 113
      custompages/index-unlogged-dist.php
  7. 54
      custompages/lostpassword-dist.php
  8. 112
      custompages/registration-dist.php
  9. BIN
      favicon.png
  10. 10
      main/auth/inscription.php
  11. 13
      main/auth/lostPassword.php
  12. 225
      main/img/icons/svg/favicon.svg
  13. 5
      main/inc/lib/api.lib.php
  14. 18
      main/inc/lib/formvalidator/FormValidator.class.php
  15. 2
      main/inc/lib/pear/HTML/QuickForm/button.php
  16. 2
      main/inc/lib/pear/HTML/QuickForm/select.php
  17. 3
      main/inc/lib/pear/HTML/QuickForm/text.php
  18. 16
      main/inc/lib/template.lib.php
  19. 48
      main/template/default/custompage/login.tpl
  20. 17
      main/template/default/custompage/lostpassword.tpl
  21. 18
      main/template/default/custompage/registration.tpl
  22. 126
      main/template/default/layout/topbar.tpl

@ -46,7 +46,6 @@ body {
margin-bottom: 60px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
@ -221,13 +220,10 @@ select {
#login-block .btn-language.open .dropdown-menu {
display: block;
}
#toolbar-admin.navbar {
#toolbar-admin {
margin-bottom: 0;
border-radius: 0;
border: none;
}
.blackboard_show {
float: left;
position: absolute;
@ -8358,10 +8354,6 @@ ul#toolnavbox-two li a.btn {
border-top: none !important;
}
.page-blank {
padding: 20px 30px;
}
/* groups social */
.group-tool {
padding: 10px;
@ -9397,11 +9389,11 @@ ul.dropdown-menu.inner > li > a {
.summary-course .list-donut .easy-donut{
text-align: center;
}
.summary-course .state{
.summary-course .state {
margin-bottom: 10px;
margin-top: 10px;
}
.summary-course .state .stat-heading{
.summary-course .state .stat-heading {
text-align: center;
font-size: 12px;
}
@ -9409,14 +9401,14 @@ ul.dropdown-menu.inner > li > a {
font-size: 22px;
text-align: center;
}
.summary-course .state .stat-icon{
.summary-course .state .stat-icon {
font-size: 30px;
text-align: center;
}
.summary-course .easypiechart-legend {
font-size: 12px;
}
.summary-course .list-info{
.summary-course .list-info {
margin-bottom: 0;
}
.summary-course .list-info dt,
@ -9425,35 +9417,35 @@ ul.dropdown-menu.inner > li > a {
padding-top: 7px;
padding-bottom: 7px;
}
.summary-course .list-info .text-color{
.summary-course .list-info .text-color {
color: #0A649F;
}
.question-result h3{
.question-result h3 {
margin-top: 0;
margin-bottom: 10px;
font-size: 20px;
font-weight: bold;
}
.question-result .user-avatar,
.question-result .user-info{
.question-result .user-info {
text-align: center;
}
.question-result .user-avatar img{
.question-result .user-avatar img {
border-radius: 10px;
}
.group-data .list-data .item{
.group-data .list-data .item {
width: 150px;
display: inline-block;
font-weight: bold;
}
.badge-username{
.badge-username {
font-weight: bold;
}
.badge-item{
.badge-item {
padding-top: 10px;
padding-bottom: 10px;
}
.badge-item .msg{
.badge-item .msg {
border: 1px solid #cdcdcd;
padding: 10px;
border-radius: 5px;
@ -9465,10 +9457,24 @@ ul.dropdown-menu.inner > li > a {
}
.compilation_block .progress {
margin:0px;
margin:0;
width:120px
}
#registration .form_list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));;
}
#registration .form_list .form-group {
margin: 10px;
}
#registration .form_list > *:nth-child(3n-2):nth-last-of-type(2) {
border-color: red;
grid-column: span 2;
}
#registration .form_list > *:nth-child(3n-1):nth-last-of-type(1) {
border-color: red;
grid-column: span 2;
}
/* CSS Responsive */
@media (min-width: 1025px) and (max-width: 1200px) {
.sidebar-scorm {

@ -0,0 +1,80 @@
:root {
--primary-color: #486F88;
--success-color: #16D090;
}
body, html {
height: 100%;
}
body {
margin: 0;
line-height: 1.5;
color: #212529;
background-color: #fff;
}
.custompage .limiter {
width: 100%;
margin: 0 auto;
}
.custompage .container-login {
width: 100%;
min-height: 100vh;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding: 15px;
background: #f2f2f2;
}
.custompage .wrap-login {
background: #fff;
border-radius: 10px;
padding: 30px 45px;
box-shadow: 0 12px 26px rgba(16, 30, 115, 0.06);
}
.custompage .width-login {
width: 390px;
}
.custompage .width-register {
width: 690px;
}
.custompage h3.title, legend {
font-weight: 900;
font-size: 24px;
color: #486F88;
padding: 1rem 0;
}
.custompage label {
color: #486F88;
font-weight: 400;
}
.custompage .form-control,
.custompage .bootstrap-select .dropdown-toggle.btn-default {
border: 2px solid #B3C8D7;
}
.custompage .last-password {
padding: 2.5rem 0;
text-align: center;
}
.btn-primary {
color: #fff;
background-color: var(--primary-color);
border-color: var(--primary-color);;
text-transform: uppercase;
font-weight: bold;
}
.btn-success {
color: #fff;
background-color: var(--success-color);
border-color: var(--success-color);
text-transform: uppercase;
font-weight: bold;
}
.custompage .software-name {
text-align: center;
padding: 2rem 0;
margin-top: 1rem;
display: inline-block;
width: 100%;
font-size: 12px;
}

@ -0,0 +1,80 @@
:root {
--primary-color: #486F88;
--success-color: #16D090;
}
body, html {
height: 100%;
}
body {
margin: 0;
line-height: 1.5;
color: #212529;
background-color: #fff;
}
.custompage .limiter {
width: 100%;
margin: 0 auto;
}
.custompage .container-login {
width: 100%;
min-height: 100vh;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
padding: 15px;
background: #f2f2f2;
}
.custompage .wrap-login {
background: #fff;
border-radius: 10px;
padding: 30px 45px;
box-shadow: 0 12px 26px rgba(16, 30, 115, 0.06);
}
.custompage .width-login {
width: 390px;
}
.custompage .width-register {
width: 690px;
}
.custompage h3.title, legend {
font-weight: 900;
font-size: 24px;
color: #486F88;
padding: 1rem 0;
}
.custompage label {
color: #486F88;
font-weight: 400;
}
.custompage .form-control,
.custompage .bootstrap-select .dropdown-toggle.btn-default {
border: 2px solid #B3C8D7;
}
.custompage .last-password {
padding: 2.5rem 0;
text-align: center;
}
.btn-primary {
color: #fff;
background-color: var(--primary-color);
border-color: var(--primary-color);;
text-transform: uppercase;
font-weight: bold;
}
.btn-success {
color: #fff;
background-color: var(--success-color);
border-color: var(--success-color);
text-transform: uppercase;
font-weight: bold;
}
.custompage .software-name {
text-align: center;
padding: 2rem 0;
margin-top: 1rem;
display: inline-block;
width: 100%;
font-size: 12px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

@ -8,6 +8,9 @@
require_once api_get_path(SYS_PATH).'main/inc/global.inc.php';
require_once __DIR__.'/language.php';
$template = new Template(get_lang('SignIn'), false, false, false, false, true, true);
/**
* Homemade micro-controller.
*/
@ -15,107 +18,41 @@ if (isset($_GET['loginFailed'])) {
if (isset($_GET['error'])) {
switch ($_GET['error']) {
case 'account_expired':
$error_message = custompages_get_lang('AccountExpired');
$error_message = get_lang('AccountExpired');
break;
case 'account_inactive':
$error_message = custompages_get_lang('AccountInactive');
$error_message = get_lang('AccountInactive');
break;
case 'user_password_incorrect':
$error_message = custompages_get_lang('InvalidId');
$error_message = get_lang('InvalidId');
break;
case 'access_url_inactive':
$error_message = custompages_get_lang('AccountURLInactive');
$error_message = get_lang('AccountURLInactive');
break;
default:
$error_message = custompages_get_lang('InvalidId');
$error_message = get_lang('InvalidId');
}
} else {
$error_message = get_lang('InvalidId');
}
}
$rootWeb = api_get_path('WEB_PATH');
/**
* HTML output.
*/
?>
<html>
<head>
<title>Custompage - login</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="<?php echo $rootWeb; ?>web/assets/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="<?php echo $rootWeb; ?>web/assets/flag-icon-css/css/flag-icon.min.css" />
<script type="text/javascript" src="<?php echo $rootWeb; ?>web/assets/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo $rootWeb; ?>web/assets/bootstrap/dist/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
if (top.location != location) {
top.location.href = document.location.href;
}
// Handler pour la touche retour
$('input').keyup(function(e) {
if (e.keyCode == 13) {
$('#login-form').submit();
}
});
});
</script>
</head>
<body>
<div id="backgroundimage">
<img src="<?php echo api_get_path(WEB_PATH); ?>/custompages/images/page-background.png" class="backgroundimage" />
</div>
<div id="wrapper">
<div id="header">
<img src="<?php echo api_get_path(WEB_PATH); ?>/custompages/images/header.png" alt="Logo" />
</div> <!-- #header -->
<div id="login-form-box" class="form-box">
<div id="login-form-info" class="form-info">
<?php
echo Display::getFlashToString();
Display::cleanFlashMessages();
if (isset($content['info']) && !empty($content['info'])) {
echo $content['info'];
}
?>
</div>
<?php if (isset($error_message)) {
echo '<div id="login-form-info" class="form-error">'.$error_message.'</div>';
}
?>
<form id="login-form" class="form" action="<?php echo api_get_path(WEB_PATH); ?>index.php" method="post">
<div>
<label for="login">*<?php echo custompages_get_lang('User'); ?></label>
<input name="login" type="text" /><br />
<label for="password">*<?php echo custompages_get_lang('Password'); ?></label>
<input name="password" type="password" /><br />
</div>
</form>
<div id="login-form-submit" class="form-submit" onclick="document.forms['login-form'].submit();">
<span><?php echo custompages_get_lang('LoginEnter'); ?></span>
</div> <!-- #form-submit -->
<div id="links">
if (isset($error_message)) {
$template->assign('error', $error_message);
}
<?php if (api_get_setting('allow_registration') === 'true') {
?>
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>auth/inscription.php?language=<?php echo api_get_interface_language(); ?>">
<?php echo custompages_get_lang('Registration'); ?>
</a><br />
<?php
} ?>
$flash = Display::getFlashToString();
Display::cleanFlashMessages();
<a href="<?php echo api_get_path(WEB_CODE_PATH); ?>auth/lostPassword.php?language=<?php echo api_get_interface_language(); ?>">
<?php echo custompages_get_lang('LostPassword'); ?>
</a>
</div>
</div> <!-- #form -->
<div id="footer">
<img src="<?php echo api_get_path(WEB_PATH); ?>/custompages/images/footer.png" />
</div> <!-- #footer -->
</div> <!-- #wrapper -->
</body>
</html>
if (api_get_setting('allow_registration') === 'true') {
$urlRegister = api_get_path(WEB_CODE_PATH) . 'auth/inscription.php?language=' . api_get_interface_language();
$template->assign('url_register', $urlRegister);
}
$urlLostPassword = api_get_path(WEB_CODE_PATH) . 'auth/lostPassword.php?language=' . api_get_interface_language();
$template->assign('url_lost_password', $urlLostPassword);
$template->assign('mgs_flash', $flash);
$layout = $template->get_template('custompage/login.tpl');
$content = $template->fetch($layout);
$template->assign('content', $content);
$template->display_blank_template();

@ -8,48 +8,16 @@
require_once api_get_path(SYS_PATH).'main/inc/global.inc.php';
require_once __DIR__.'/language.php';
$rootWeb = api_get_path('WEB_PATH');
?>
<html>
<head>
<title><?php echo custompages_get_lang('LostPassword'); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<?php echo $rootWeb; ?>web/assets/jquery/dist/jquery.min.js"></script>
$template = new Template(get_lang('LostPassword'), false, false, false, false, true, true);
<link rel="stylesheet" type="text/css" href="<?php echo $rootWeb; ?>web/assets/bootstrap/dist/css/bootstrap.min.css" />
<script type="text/javascript" src="<?php echo $rootWeb; ?>web/assets/bootstrap/dist/js/bootstrap.min.js"></script>
$error = null;
<script type="text/javascript">
$(document).ready(function() {
// Handler pour la touche retour
$('input').keyup(function(e) {
if (e.keyCode == 13) {
$('#lostpassword-form').submit();
}
});
});
</script>
</head>
<body>
<div id="backgroundimage">
<img src="/custompages/images/page-background.png" class="backgroundimage" />
</div>
<div id="wrapper">
<div id="header">
<img src="../../custompages/images/header.png" alt="Ambassador logo" />
</div> <!-- #header -->
<div id="lostpassword-form-box" class="form-box">
<?php
if (isset($content['info']) && !empty($content['info'])) {
echo '<div id="registration-form-error" class="form-error"><ul>'.$content['info'].'</ul></div>';
}
echo isset($content['form']) ? $content['form'] : '';
?>
</div> <!-- #form -->
<div id="footer">
<img src="../../custompages/images/footer.png" />
</div> <!-- #footer -->
</div> <!-- #wrapper -->
</body>
</html>
if (isset($content['info']) && !empty($content['info'])) {
$error = $content['info'];
}
$template->assign('error');
$template->assign('form', $content['form']);
$layout = $template->get_template('custompage/lostpassword.tpl');
$content = $template->fetch($layout);
$template->assign('content', $content);
$template->display_blank_template();

@ -10,6 +10,9 @@
*/
require_once api_get_path(SYS_PATH).'main/inc/global.inc.php';
require_once __DIR__.'/language.php';
$template = new Template(get_lang('Registration'), false, false, false, false, true, true);
/**
* Removes some unwanted elementend of the form object.
* 03-26-2020 Added check if element exist.
@ -23,104 +26,11 @@ if (isset($content['form']->_elementIndex['extra_mail_notify_message'])) {
if (isset($content['form']->_elementIndex['extra_mail_notify_group_message'])) {
$content['form']->removeElement('extra_mail_notify_group_message');
}
if (isset($content['form']->_elementIndex['status'])) {
$content['form']->removeElement('status');
$content['form']->removeElement('status');
}
$rootWeb = api_get_path('WEB_PATH');
// Deprecated since 2015-03-26
/**
* Code to change the way QuickForm render html.
*/
/*
$renderer = & $content['form']->defaultRenderer();
$form_template = <<<EOT
<form {attributes}>
{content}
<div class="clear">
&nbsp;
</div>
<p><a href="#" class="btn btn-primary" onclick="$('#registration-form').submit()"><span>S'inscrire</span></a></p>
</form>
EOT;
$renderer->setFormTemplate($form_template);
$element_template = <<<EOT
<div class="field decalle">
<label>
<!-- BEGIN required --><span class="form_required">*</span> <!-- END required -->{label}
</label>
<div class="formw">
<!-- BEGIN error --><span class="form_error">{error}</span><br /><!-- END error --> {element}
</div>
</div>
EOT;
$element_template_wimage = <<<EOT
<div class="field decalle display">
<label>
<!-- BEGIN required --><span class="form_required">*</span> <!-- END required -->{label}
</label>
<div class="formw">
<!-- BEGIN error --><span class="form_error">{error}</span><br /><!-- END error --> {element}
<img src="/custompages/images/perso.jpg" alt="" />
</div>
</div>
EOT;
$renderer->setElementTemplate($element_template_wimage,'pass1');
$renderer->setElementTemplate($element_template);
$header_template = <<<EOT
<div class="row">
<div class="form_header">{header}</div>
</div>
EOT;
*/
?>
<html>
<head>
<title><?php echo custompages_get_lang('Registration'); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript" src="<?php echo $rootWeb; ?>web/assets/jquery/dist/jquery.min.js"></script>
</head>
<body>
<img id="backgroundimage" src="/custompages/images/page-background.png"">
<section id="registration">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="form-wrap">
<div class="logo">
<img src="/custompages/images/header.png">
</div>
<?php if (isset($content['error']) && !empty($content['error'])) {
echo '<div id="registration-form-error" class="alert alert-danger">'.$content['error'].'</div>';
}?>
<div id="registration-form-box" class="form-box">
<div class="block-form-login">
<?php
$content['form']->display();
?>
</div>
<div id="links">
<!--<a href="mailto: support@cblue.be"><?php echo custompages_get_lang('NeedContactAdmin'); ?></a><br />-->
</div>
</div>
<div id="footer">
<img src="/custompages/images/footer.png" />
</div> <!-- #footer -->
</div>
</div>
</div>
</div>
</section>
</body>
</html>
$content['form']->removeElement('official_code');
$content['form']->removeElement('phone');
$template->assign('form', $content['form']->returnForm());
$layout = $template->get_template('custompage/registration.tpl');
$content = $template->fetch($layout);
$template->assign('content', $content);
$template->display_blank_template();

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -73,7 +73,13 @@ if ($extraConditions && isset($extraConditions['conditions'])) {
}
}
$form = new FormValidator('registration');
if (CustomPages::enabled() && CustomPages::exists(CustomPages::REGISTRATION)) {
$layoutForm = FormValidator::LAYOUT_GRID;
} else{
$layoutForm = FormValidator::LAYOUT_HORIZONTAL;
}
$form = new FormValidator('registration','post','','',[],$layoutForm);
$user_already_registered_show_terms = false;
if (api_get_setting('allow_terms_conditions') === 'true') {
$user_already_registered_show_terms = isset($_SESSION['term_and_condition']['user_id']);
@ -630,7 +636,7 @@ if ($allowDoubleValidation && $showTerms == false) {
$user_already_registered_show_terms ||
$showTerms
) {
$form->addButtonNext(get_lang('RegisterUser'));
$form->addButton('register', get_lang('RegisterUser'), null, 'primary', 'btn-block');
$formContainsSendButton = true;
}
}

@ -34,15 +34,6 @@ $tool_name = get_lang('LostPassword');
if ($reset && $userId) {
$messageText = Login::reset_password($reset, $userId, true);
/*if (CustomPages::enabled() && CustomPages::exists(CustomPages::INDEX_UNLOGGED)) {
CustomPages::display(
CustomPages::INDEX_UNLOGGED,
['info' => $messageText]
);
exit;
}*/
Display::addFlash(
Display::return_message($messageText, 'info', false)
);
@ -50,7 +41,7 @@ if ($reset && $userId) {
exit;
}
$form = new FormValidator('lost_password');
$form = new FormValidator('lost_password', 'post', '', '', [], FormValidator::LAYOUT_GRID);
$form->addHeader($tool_name);
$form->addText(
'user',
@ -91,7 +82,7 @@ if ($allowCaptcha) {
$form->addRule('captcha', get_lang('TheTextYouEnteredDoesNotMatchThePicture'), 'CAPTCHA', $captcha_question);
}
$form->addButtonSend(get_lang('Send'));
$form->addButtonSend(get_lang('Send'), 'submit', false, [], 'btn-block', null);
if ($form->validate()) {
$values = $form->exportValues();

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 113 KiB

@ -164,6 +164,7 @@ define('SECTION_DASHBOARD', 'dashboard');
define('SECTION_REPORTS', 'reports');
define('SECTION_GLOBAL', 'global');
define('SECTION_INCLUDE', 'include');
define('SECTION_CUSTOMPAGE', 'custompage');
// CONSTANT name for local authentication source
define('PLATFORM_AUTH_SOURCE', 'platform');
@ -1283,7 +1284,7 @@ function api_protect_admin_script($allow_sessions_admins = false, $allow_drh = f
}
/**
* Blocks inactive users with a currently active session from accessing more
* Blocks inactive users with a currently active session from accessing more
* pages "live".
*
* @return bool Returns true if the feature is disabled or the user account is still enabled. Returns false (and shows a message) if the feature is enabled *and* the user is disabled.
@ -2427,7 +2428,7 @@ function api_format_course_array($course_data)
null,
null,
true,
false
true
);
}

@ -133,15 +133,7 @@ EOT;
{
return '
<style>
.form_list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));;
grid-gap: 10px 30px;
gap: 10px 30px;
}
.form_list .input-group {
display:block;
}
</style>
<form{attributes}>
<div class="form_list">
@ -553,18 +545,20 @@ EOT;
* @param string $name Element name (for form treatment purposes)
* @param bool $createElement Whether to use the create or add method
* @param array $attributes
* @param int $size
* @param string $class
*
* @return HTML_QuickForm_button
*/
public function addButtonSend($label, $name = 'submit', $createElement = false, $attributes = [])
public function addButtonSend($label, $name = 'submit', $createElement = false, $attributes = [], $size, $class)
{
return $this->addButton(
$name,
$label,
'paper-plane',
'primary',
null,
null,
$size,
$class,
$attributes,
$createElement
);

@ -254,7 +254,7 @@ class HTML_QuickForm_button extends HTML_QuickForm_input
case FormValidator::LAYOUT_GRID:
case FormValidator::LAYOUT_BOX_NO_LABEL:
default:
$template = ' {element} ';
$template = '<div class="form-group"> {element} </div>';
break;
}

@ -611,7 +611,7 @@ class HTML_QuickForm_select extends HTML_QuickForm_element
case FormValidator::LAYOUT_GRID:
case FormValidator::LAYOUT_BOX:
return '
<div class="input-group" style="z-index: auto">
<div class="form-group">
<label>{label}</label>
{icon}
{element}

@ -119,6 +119,9 @@ class HTML_QuickForm_text extends HTML_QuickForm_input
{label}
</label>
{element}
<!-- BEGIN label_2 -->
<p class="help-block">{label_2}</p>
<!-- END label_2 -->
</div>';
break;
case FormValidator::LAYOUT_HORIZONTAL:

@ -662,6 +662,14 @@ class Template
$css[] = api_get_path(WEB_CSS_PATH).$this->themeDir.'learnpath.css';
}
}
if (CustomPages::enabled()) {
$cssCustomPage = api_get_path(SYS_CSS_PATH).$this->themeDir."custompage.css";
if (is_file($cssCustomPage)) {
$css[] = api_get_path(WEB_CSS_PATH).$this->themeDir.'custompage.css';
} else {
$css[] = api_get_path(WEB_CSS_PATH).'custompage.css';
}
}
$css[] = api_get_cdn_path(api_get_path(WEB_CSS_PATH).$this->themeDir.'default.css');
$css[] = api_get_cdn_path(ChamiloApi::getEditorBlockStylePath());
@ -1845,14 +1853,14 @@ class Template
private function assignFavIcon()
{
// Default root chamilo favicon
$favico = '<link rel="shortcut icon" href="'.api_get_path(WEB_PATH).'favicon.ico" type="image/x-icon" />';
$favico = '<link rel="icon" href="'.api_get_path(WEB_PATH).'favicon.png" type="image/png" />';
//Added to verify if in the current Chamilo Theme exist a favicon
$favicoThemeUrl = api_get_path(SYS_CSS_PATH).$this->themeDir.'images/';
//If exist pick the current chamilo theme favicon
if (is_file($favicoThemeUrl.'favicon.ico')) {
$favico = '<link rel="shortcut icon" href="'.api_get_path(WEB_CSS_PATH).$this->themeDir.'images/favicon.ico" type="image/x-icon" />';
if (is_file($favicoThemeUrl.'favicon.png')) {
$favico = '<link rel="icon" href="'.api_get_path(WEB_CSS_PATH).$this->themeDir.'images/favicon.png" type="image/png" />';
}
if (api_is_multiple_url_enabled()) {
@ -1869,7 +1877,7 @@ class Template
$icon_real_homep = api_get_path(SYS_HOME_PATH).$clean_url;
//we create the new dir for the new sites
if (is_file($icon_real_homep.'favicon.ico')) {
$favico = '<link rel="shortcut icon" href="'.$homep.'favicon.ico" type="image/x-icon" />';
$favico = '<link rel="icon" href="'.$homep.'favicon.png" type="image/png" />';
}
}
}

@ -0,0 +1,48 @@
<div class="custompage">
<div class="limiter">
<div class="container-login">
<div class="wrap-login width-login">
<form class="login100-form validate-form" action="{{ _p.web }}" method="post">
<div class="logo">
<img width="250px" class="img-responsive" title="{{ _s.site_name }}" src="{{ _p.web_css_theme }}images/header-logo.svg">
</div>
<h3 class="title">{{ 'Login'|get_lang() }}</h3>
{{ mgs_flash }}
{% if error %}
<div class="alert alert-warning" role="alert">
{{ error }}
</div>
{% endif %}
<div class="form-group">
<label for="user">{{ 'LoginOrEmailAddress'|get_lang() }}</label>
<input type="text" class="form-control" id="user" name="login" ">
</div>
<div class="form-group">
<label for="password">{{ 'Password'|get_lang() }}</label>
<input type="password" class="form-control" name="password" id="password" >
</div>
<button type="submit" class="btn btn-primary btn-block">
{{ 'LoginEnter'|get_lang() }}
</button>
{% if url_register %}
<a href="{{ url_register }}" class="btn btn-success btn-block" >
{{ 'Registration'|get_lang() }}
</a >
{% endif %}
<div class="last-password">
<a href="{{ url_lost_password }}">
{{ 'LostPassword'|get_lang() }}
</a>
</div>
</form>
<div class="software-name">
<a href="{{_p.web}}" target="_blank">
{{ "PoweredByX" |get_lang | format(_s.software_name) }}
</a>&copy; {{ "now"|date("Y") }}
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,17 @@
<div class="custompage">
<div class="limiter">
<div class="container-login">
<div class="wrap-login width-register">
<div class="logo">
<img width="250px" class="img-responsive" title="{{ _s.site_name }}" src="{{ _p.web_css_theme }}images/header-logo.svg">
</div>
{{ form }}
<div class="software-name">
<a href="{{_p.web}}" target="_blank">
{{ "PoweredByX" |get_lang | format(_s.software_name) }}
</a>&copy; {{ "now"|date("Y") }}
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,18 @@
<div class="custompage">
<div class="limiter">
<div class="container-login">
<div class="wrap-login width-register">
<div class="logo">
<img width="250px" class="img-responsive" title="{{ _s.site_name }}" src="{{ _p.web_css_theme }}images/header-logo.svg">
</div>
<h3 class="title">{{ 'UserRegistrationTitle'|get_lang() }}</h3>
{{ form }}
<div class="software-name">
<a href="{{_p.web}}" target="_blank">
{{ "PoweredByX" |get_lang | format(_s.software_name) }}
</a>&copy; {{ "now"|date("Y") }}
</div>
</div>
</div>
</div>
</div>

@ -1,70 +1,72 @@
<!-- Topbar -->
{% if show_toolbar == 1 %}
<nav id="toolbar-admin" class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ _p.web }}">
<img src="{{ "icon-chamilo.png"|icon(22) }}" title="{{ "siteName" | api_get_setting }}">
</a>
</div>
{% if _u.logged %}
<div class="collapse navbar-collapse" id="toolbar">
<ul class="nav navbar-nav">
<li class="active"><a href="{{ _p.web }}user_portal.php"> {{ "MyCourses"|get_lang }}</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Tracking'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}mySpace/">{{ "CoursesReporting"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}mySpace/index.php?view=admin">{{ "AdminReports"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}tracking/exams.php">{{ "ExamsReporting"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}dashboard/">{{ "Dashboard"|get_lang }}</a></li>
</ul>
</li>
{% if _u.is_admin == 1 %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Administration'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}admin/">{{ "Home"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/user_list.php">{{ "UserList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/course_list.php">{{ "CourseList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}session/session_list.php">{{ "SessionList"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}admin/settings.php">{{ "Settings"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}admin/settings.php?category=Plugins">{{ "Plugins"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/settings.php?category=Regions">{{ "Regions"|get_lang }}</a></li>
</ul>
</li>
<nav id="toolbar-admin" class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ _p.web }}">
<img src="{{ "icon-chamilo.png"|icon(22) }}" title="{{ "siteName" | api_get_setting }}">
</a>
</div>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ 'Add'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}admin/user_add.php">{{ "User"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/course_add.php">{{ "Course"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}session/session_add.php">{{ "Session"|get_lang }}</a></li>
</ul>
</li>
{% endif %}
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="{{ _p.web }}user_portal.php"> {{ "MyCourses"|get_lang }}</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Tracking'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}mySpace/">{{ "CoursesReporting"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}mySpace/index.php?view=admin">{{ "AdminReports"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}tracking/exams.php">{{ "ExamsReporting"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}dashboard/">{{ "Dashboard"|get_lang }}</a></li>
</ul>
</li>
{% if _u.logged %}
{% if _u.is_admin == 1 %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Administration'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}admin/">{{ "Home"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/user_list.php">{{ "UserList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/course_list.php">{{ "CourseList"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}session/session_list.php">{{ "SessionList"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}admin/settings.php">{{ "Settings"|get_lang }}</a></li>
<li class="divider"></li>
<li><a href="{{ _p.web_main }}admin/settings.php?category=Plugins">{{ "Plugins"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/settings.php?category=Regions">{{ "Regions"|get_lang }}</a></li>
</ul>
</li>
{% if _u.is_admin == 1 %}
<form class="navbar-form navbar-left" role="search" action="{{ _p.web_main }}admin/user_list.php" method="get">
<input type="text" class="form-control" placeholder="{{'SearchUsers'|get_lang }}" name="keyword">
</form>
{% endif %}
<ul class="nav navbar-nav navbar-right">
<li><a href="{{ _p.web }}index.php?logout=logout&uid={{_u.user_id}}">{{ "Logout"|get_lang }}</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ 'Add'|get_lang }}<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{{ _p.web_main }}admin/user_add.php">{{ "User"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}admin/course_add.php">{{ "Course"|get_lang }}</a></li>
<li><a href="{{ _p.web_main }}session/session_add.php">{{ "Session"|get_lang }}</a></li>
</ul>
</div> <!-- /nav collapse -->
</li>
{% endif %}
</ul>
{% if _u.is_admin == 1 %}
<form class="navbar-form navbar-left" role="search" action="{{ _p.web_main }}admin/user_list.php" method="get">
<input type="text" class="form-control" placeholder="{{'SearchUsers'|get_lang }}" name="keyword">
<button type="submit" class="btn btn-primary">{{'Search'|get_lang }}</button>
</form>
{% endif %}
<ul class="nav navbar-nav navbar-right">
<li><a href="{{ _p.web }}index.php?logout=logout&uid={{_u.user_id}}">{{ "Logout"|get_lang }}</a></li>
</ul>
{% endif %}
</div> <!-- /container-->
</nav><!-- /topbar -->
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
{% endif %}

Loading…
Cancel
Save