initial commit after server failure
7
views/blocks/d.footer.html
Executable file
@@ -0,0 +1,7 @@
|
||||
<footer>
|
||||
<div id="footernav">
|
||||
<a href="<?=$config['rel_root_folder']?>wiki/legal">Mentions Légales</a> —
|
||||
<a href="<?=$config['rel_root_folder']?>contact">Contact</a>
|
||||
</div>
|
||||
<p><i>Applications mobiles bientôt disponibles.</i></p>
|
||||
</footer>
|
||||
46
views/blocks/d.head.html
Executable file
@@ -0,0 +1,46 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, height=device-height">
|
||||
<link rel="shortcut icon" href="<?=$config['views_url']?>img/favicon.png">
|
||||
<? if (isset($head['css'])) {
|
||||
foreach(explode(";",$head['css']) as $css) { ?>
|
||||
<link rel="stylesheet" href="<?=$config['views_url']?>css/<?=$css?>"/>
|
||||
<? }
|
||||
}
|
||||
else { ?>
|
||||
<link rel="stylesheet" href="<?=$config['views_url']?>css/d.index.css"/>
|
||||
<? } ?>
|
||||
<link rel="stylesheet" href="<?=$config['views_url']?>third/font-awesome-4.7.0/css/font-awesome.min.css"/>
|
||||
|
||||
<script type="text/javascript" src="<?=$config['views_url']?>third/jquery-3.1.1.min.js"></script>
|
||||
<? if (isset($head['third'])) {
|
||||
foreach(explode(";",$head['third']) as $third) { ?>
|
||||
<script type="text/javascript" src="<?=$config['views_url']?>third/<?=$third?>"></script>
|
||||
<? }
|
||||
} ?>
|
||||
<script type="text/javascript" src="<?=$config['views_url']?>js/d.header.js"></script>
|
||||
<? if (isset($head['js'])) {
|
||||
foreach(explode(";",$head['js']) as $js) { ?>
|
||||
<script type="text/javascript" src="<?=$config['views_url']?>js/<?=$js?>"></script>
|
||||
<? }
|
||||
} ?>
|
||||
|
||||
<? if (isset($head['title'])) { ?>
|
||||
<title><?=$head['title']?> — Kabano</title>
|
||||
<? }
|
||||
else { ?>
|
||||
<title>Cabanes et bivouac en montagne</title>
|
||||
<? } ?>
|
||||
<? if (isset($head['description'])) { ?>
|
||||
<meta name="description" content="<?=$head['description']?>">
|
||||
? }
|
||||
else { ?>
|
||||
<meta name="description" content="Annuaire collaboratif des hébergements pour les activitées de plein air : cabanes, refuges, campings...">
|
||||
<? } ?>
|
||||
<? if (isset($head['keywords'])) { ?>
|
||||
<meta name="keywords" content="<?=$head['keywords']?>">
|
||||
<? }
|
||||
else { ?>
|
||||
<meta name="keywords" content="kabano, huts, mountain, hiking, cabanes, refuges, bivouac, montagne, randonnée">
|
||||
<? } ?>
|
||||
</head>
|
||||
52
views/blocks/d.nav.html
Executable file
@@ -0,0 +1,52 @@
|
||||
<header>
|
||||
<div id="Hcontent">
|
||||
<a href="<?=$config['rel_root_folder']?>" id="logo">
|
||||
<img alt="Kabano logo" src="<?=$config['views_url'].'img/'?>header.svg">
|
||||
</a>
|
||||
<nav>
|
||||
<ul>
|
||||
<li class="on-bar"><a class="on-bar" href="<?=$config['rel_root_folder']?>map">Carte</a></li>
|
||||
<li class="on-bar"><a class="on-bar" href="<?=$config['rel_root_folder']?>search">Recherche</a></li>
|
||||
<li class="on-bar"><a class="on-bar" href="<?=$config['rel_root_folder']?>news">Nouveautés</a></li>
|
||||
<li class="on-bar"><a class="on-bar" href="<?=$config['rel_root_folder']?>community">Contribuer</a></li>
|
||||
<li class="on-bar has-sub">
|
||||
<? if (isset($user->avatar) AND $user->avatar=='t') { ?>
|
||||
<a class="on-bar" href="#"><img alt="Avatar" class="icon avatar" src="<?=$config['rel_root_folder']?>medias/avatars/<?=$user->id?>_s.jpg"></a>
|
||||
<? } elseif (isset($user->avatar) AND $user->avatar=='f') { ?>
|
||||
<a class="on-bar" href="#"><i class="icon fa fa-user-secret"></i></a>
|
||||
<? } else { ?>
|
||||
<a class="on-bar" href="#"><i class="icon fa fa-user"></i></a>
|
||||
<? } ?>
|
||||
<ul>
|
||||
<? if($user->role == 0) { ?>
|
||||
<li id="connectform">
|
||||
<form action="<?=$config['rel_root_folder']?>user/login" method="post">
|
||||
<input type="text" name="login" placeholder="Nom d'utilisateur">
|
||||
<input type="password" name="password" placeholder="Mot de passe">
|
||||
<input type="submit" name="submit" value="Se connecter">
|
||||
</form>
|
||||
</li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>user/signin">S'inscrire</a></li>
|
||||
<? } else { ?>
|
||||
<li><a href="<?=$config['rel_root_folder']?>user/p">Mon profil</a></li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>user/member_list">Liste des membres</a></li>
|
||||
<? if($user->role >= 800) { ?>
|
||||
<li><a href="<?=$config['rel_root_folder']?>admin">Administration</a></li>
|
||||
<? } ?>
|
||||
<li><a href="<?=$config['rel_root_folder']?>user/logout">Se déconnecter</a></li>
|
||||
<? } ?>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="on-bar has-sub"><a class="on-bar" href="#"><i class="icon fa fa-question"></i></a>
|
||||
<ul>
|
||||
<li><a href="<?=$config['rel_root_folder']?>wiki/help">Aide</a></li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>blog">Blog</a></li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>contact">Contact</a></li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>wiki/api">API Développeurs</a></li>
|
||||
<li><a href="<?=$config['rel_root_folder']?>wiki/about">À propos</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
240
views/css/d.blog.css
Executable file
@@ -0,0 +1,240 @@
|
||||
/*********************************/
|
||||
/** Blog list page **/
|
||||
/*********************************/
|
||||
|
||||
#blog_list article {
|
||||
margin: 40px auto 0 auto;
|
||||
width: 90%;
|
||||
background: #efefef;
|
||||
border: 1px solid #ccc;
|
||||
border-bottom: 2px solid #ccc;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
#blog_list #articles_list article:first-child {
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
#blog_list .article_title {
|
||||
background: #ccc;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
#blog_list .article_content {
|
||||
padding: 20px 10px 5px 10px;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
||||
#blog_list .article_legend {
|
||||
font-style: italic;
|
||||
padding: 0 10px;
|
||||
}
|
||||
#blog_list .article_link {
|
||||
font-weight: 500;
|
||||
}
|
||||
#blog_list .article_infos {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#blog_list .article_archive {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#blog_list .pagebuttons {
|
||||
text-align: center;
|
||||
margin: 40px 0 30px 0;
|
||||
}
|
||||
#blog_list .pagebuttons a {
|
||||
background: #efefef;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
#blog_list .pagebuttons .previous {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Blog view article page **/
|
||||
/*********************************/
|
||||
|
||||
|
||||
#blogTimestamp {
|
||||
font-size: 0.8em;
|
||||
font-weight: 500;
|
||||
float: right;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#blogContent {
|
||||
margin: 50px 0 20px 0;
|
||||
}
|
||||
|
||||
#blogContent h2 { margin: .75em 0 }
|
||||
#blogContent h3 { margin: .83em 0 }
|
||||
#blogContent h4, #blogContent p, #blogContent blockquote, #blogContent ul, #blogContent fieldset, #blogContent form, #blogContent ol, #blogContent dl { margin: 1.12em 0 }
|
||||
#blogContent h5 { margin: 1.5em 0 }
|
||||
#blogContent h6 { margin: 1.67em 0 }
|
||||
#blogContent blockquote { margin-left: 40px; margin-right: 40px }
|
||||
#blogContent ol, #blogContent ul, #blogContent dd { margin-left: 40px }
|
||||
#blogContent ol ul, #blogContent ul ol, #blogContent ul ul, #blogContent ol ol { margin-top: 0; margin-bottom: 0 }
|
||||
|
||||
#blogContent .footnotes {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
#blogContent .footnotes p {
|
||||
margin: 0.4em 0;
|
||||
}
|
||||
#blogContent hr {
|
||||
border: 1px inset;
|
||||
}
|
||||
|
||||
#new_comment {
|
||||
clear: both;
|
||||
margin: 100px auto 0 auto;
|
||||
width: 90%;
|
||||
background: #efefef;
|
||||
border: 1px solid #ccc;
|
||||
border-bottom: 3px solid #ccc;
|
||||
}
|
||||
#new_comment_label {
|
||||
background: #ccc;
|
||||
padding: 15px 10px;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
#new_comment_label p {
|
||||
margin: 0;
|
||||
}
|
||||
#new_comment_label input {
|
||||
display: none;
|
||||
margin: -2px;
|
||||
float: right;
|
||||
padding: 5px 10px;
|
||||
position: relative;
|
||||
top: -7px;
|
||||
width: 140px;
|
||||
}
|
||||
#new_comment_form {
|
||||
display: none;
|
||||
}
|
||||
#new_comment_form textarea {
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
#new_comment_label.sent {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#blog_article article {
|
||||
margin: 40px auto 0 auto;
|
||||
width: 90%;
|
||||
background: #efefef;
|
||||
border: 1px solid #ccc;
|
||||
border-bottom: 2px solid #ccc;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
#blog_article .comment_title {
|
||||
background: #ccc;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
#blog_article .delete_link {
|
||||
font-variant: small-caps;
|
||||
font-weight: 500;
|
||||
padding: 4px 0;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#blog_article .icon {
|
||||
border: 1px solid #999;
|
||||
border-radius: 3px;
|
||||
margin: 0 3px 0 3px;
|
||||
padding: 4px 0;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
width: 28px;
|
||||
background: #ccc;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#blog_article .icon.avatar {
|
||||
padding: 0;
|
||||
height: 28px;
|
||||
}
|
||||
#blog_article .comment_content {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
#blog_article article.comment_archive {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#blog_article.archive {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Blog edit article page **/
|
||||
/*********************************/
|
||||
|
||||
form.form input[type="checkbox"] {
|
||||
display:none;
|
||||
}
|
||||
|
||||
form.form input[type="checkbox"] + span:before {
|
||||
font-family: 'FontAwesome';
|
||||
vertical-align: middle;
|
||||
padding: 2px 4px 0px 5px;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
width: 21px;
|
||||
background: #ddd;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
form.form input[type="checkbox"] + span:before {
|
||||
content: "\f096"; /* check-empty */
|
||||
}
|
||||
|
||||
form.form input[type="checkbox"]:checked + span:before {
|
||||
content: "\f046"; /* check */
|
||||
}
|
||||
|
||||
/* Also used for new comment form in the view page */
|
||||
form.form input, form.form textarea, #locale {
|
||||
background: #ddd;
|
||||
border-bottom: 2px solid #ccc;
|
||||
display: block;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
form.form textarea {
|
||||
font-size: 14px;
|
||||
margin: 10px 0 10px 0px;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
form.form input {
|
||||
width: 58%;
|
||||
margin: 10px 0 10px 0px;
|
||||
vertical-align: middle;
|
||||
font-size: 18px;
|
||||
}
|
||||
form.form label {
|
||||
font-size: 18px;
|
||||
}
|
||||
#locale {
|
||||
width: 38%;
|
||||
float: right;
|
||||
font-size: 17px;
|
||||
}
|
||||
#url {
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
form.form input[type=submit] {
|
||||
width: auto;
|
||||
margin: auto;
|
||||
border-bottom: 2px solid blue;
|
||||
}
|
||||
341
views/css/d.index.css
Executable file
@@ -0,0 +1,341 @@
|
||||
* {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Fira Sans", "Open Sans",Helvetica,Arial,sans-serif;
|
||||
color: #333;
|
||||
background: #ddd;
|
||||
padding-top: 65px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: blue;
|
||||
}
|
||||
a:hover {
|
||||
color: #212121;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
input {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize:vertical;
|
||||
}
|
||||
|
||||
small {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.button {
|
||||
padding: 5px 10px;
|
||||
margin: 5px 10px;
|
||||
border: 1px solid blue;
|
||||
border-radius: 5px;
|
||||
background: #ddddff;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background: #eeeeff;
|
||||
}
|
||||
|
||||
/* FONTS */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Fira Sans';
|
||||
font-weight: 700;
|
||||
src: url('../fonts/FiraSans-Bold.eot');
|
||||
src: local('Fira-Sans-Bold'), local('Fira Sans Bold'), url('../fonts/FiraSans-Bold.otf') format('otf'), url('../fonts/FiraSans-Bold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Fira Sans';
|
||||
font-weight: 600;
|
||||
src: url('../fonts/FiraSans-Medium.eot');
|
||||
src: local('Fira-Sans-Medium'), local('Fira Sans Medium'), url('../fonts/FiraSans-Medium.otf') format('otf'), url('../fonts/FiraSans-Medium.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Fira Sans';
|
||||
font-weight: 500;
|
||||
src: url('../fonts/FiraSans-Regular.eot');
|
||||
src: local('Fira-Sans'), local('Fira Sans'), url('../fonts/FiraSans-Regular.otf') format('otf'), url('../fonts/FiraSans-Regular.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Fira Sans';
|
||||
font-weight: 400;
|
||||
src: url('../fonts/FiraSans-Light.eot');
|
||||
src: local('Fira-Sans-Light'), local('Fira Sans Light'), url('../fonts/FiraSans-Light.otf') format('otf'), url('../fonts/FiraSans-Light.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Fira Sans';
|
||||
font-weight: 300;
|
||||
src: url('../fonts/FiraSans-ExtraLight.eot');
|
||||
src: local('Fira-Sans-ExtraLight'), local('Fira Sans ExtraLight'), url('../fonts/FiraSans-ExtraLight.otf') format('otf'), url('../fonts/FiraSans-ExtraLight.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
|
||||
header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
background: black;
|
||||
height: 65px;
|
||||
color: white;
|
||||
box-shadow: 0 0 3px black;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
header ul {
|
||||
float: right;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
header li {
|
||||
display: inline-block;
|
||||
height: 65px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
header li a {
|
||||
color: white;
|
||||
padding: 25px 15px 15px;
|
||||
height: 20px;
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
header li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
header li:hover a {
|
||||
border-bottom: 6px solid blue;
|
||||
background: #212121;
|
||||
}
|
||||
|
||||
header .icon {
|
||||
border: 1px solid white;
|
||||
border-radius: 3px;
|
||||
margin: -5px 0;
|
||||
padding: 4px 0;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
header .icon.avatar {
|
||||
padding: 0;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
header li.has-sub:hover a {
|
||||
border-bottom: 6px solid #212121;
|
||||
}
|
||||
|
||||
header li.has-sub:hover > ul {
|
||||
display: block;
|
||||
}
|
||||
|
||||
header li.has-sub ul {
|
||||
display: none;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
margin-top: -1px;
|
||||
background: #212121;
|
||||
}
|
||||
|
||||
header li.has-sub ul li {
|
||||
display: block;
|
||||
height: 46px;
|
||||
border-left: 6px solid #212121;
|
||||
}
|
||||
|
||||
header #connectform {
|
||||
height: 127px;
|
||||
}
|
||||
|
||||
header li.has-sub ul li a {
|
||||
float: none;
|
||||
padding: 15px 25px 15px 10px;
|
||||
height: 10px;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
header li.has-sub ul li:hover {
|
||||
border-left: 6px solid blue;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
header form {
|
||||
display: block;
|
||||
width: 200px;
|
||||
padding: 15px 15px 0 15px;
|
||||
}
|
||||
|
||||
header input {
|
||||
margin: 0 0 10px -5px;
|
||||
padding: 5px;
|
||||
background: #333;
|
||||
border-bottom: 1px solid #555;
|
||||
display: block;
|
||||
width: 100%;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
header input[type=submit] {
|
||||
position: relative;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
header input[type=submit] {
|
||||
background: #555;
|
||||
border-bottom: 1px solid #777;
|
||||
}
|
||||
|
||||
header input:hover {
|
||||
background: #DDD;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
#Hcontent {
|
||||
width: 850px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#logo {
|
||||
float: left;
|
||||
padding: 8px 15px;
|
||||
margin: 2px 0;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
#logo:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#logo img {
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
|
||||
section {
|
||||
position: relative;
|
||||
background: white;
|
||||
margin: auto;
|
||||
width: 820px;
|
||||
min-height: 320px;
|
||||
z-index: 10;
|
||||
padding: 15px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
section h1 {
|
||||
font-weight: 300;
|
||||
font-size: 43px;
|
||||
margin-top: 20px;
|
||||
border-bottom: 1px solid #bbb;
|
||||
}
|
||||
|
||||
section .subtitle {
|
||||
font-variant: small-caps;
|
||||
font-weight: 500;
|
||||
background: #ddd;
|
||||
margin: 0 20px 20px 0;
|
||||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
section p {
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
/***************************************/
|
||||
|
||||
footer {
|
||||
background: #212121;
|
||||
width: 820px;
|
||||
padding: 15px;
|
||||
margin: 15px auto 0 auto;
|
||||
color: #c1c1c1;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
footer #footernav {
|
||||
float: right;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: white;
|
||||
padding: 0 8px;
|
||||
}
|
||||
footer a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Index page **/
|
||||
/*********************************/
|
||||
|
||||
#indexFullW {
|
||||
position: relative;
|
||||
background: url('../img/aside.jpg') center center no-repeat #070707;
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
z-index: 100;
|
||||
box-shadow: inset 0 -1px 0 #444, 0 1px 5px black;
|
||||
}
|
||||
|
||||
#AScontent {
|
||||
height: 320px;
|
||||
width: 850px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#spacebeforesponsors {
|
||||
height: 238px;
|
||||
}
|
||||
|
||||
#sponsors {
|
||||
height: 70px;
|
||||
background: rgba(0,0,0,0.5);
|
||||
padding: 5px 30px;
|
||||
}
|
||||
|
||||
#sponsors a {
|
||||
float: right;
|
||||
display: block;
|
||||
padding-top: 5px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#sponsors a img {
|
||||
height: 60px;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#sponsors p {
|
||||
float: left;
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
font-variant: small-caps;
|
||||
line-height: 70px;
|
||||
}
|
||||
|
||||
section .thumb {
|
||||
margin: 0 10px;
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
173
views/css/d.map.css
Executable file
@@ -0,0 +1,173 @@
|
||||
/* Custom configuration for the map page */
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
body {
|
||||
height: calc(100% - 65px);
|
||||
}
|
||||
footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: calc(50% - 425px);
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
Controls of the map
|
||||
*****************************************/
|
||||
|
||||
/* General */
|
||||
|
||||
.leaflet-control-container {
|
||||
position: absolute !important;
|
||||
width: 850px !important;
|
||||
height: 100%;
|
||||
left: calc(50% - 425px) !important;
|
||||
font-family: "Fira Sans", "Open Sans",Helvetica,Arial,sans-serif !important;
|
||||
}
|
||||
.leaflet-fullscreen-on .leaflet-control-container {
|
||||
position: absolute !important;
|
||||
width: 100% !important;
|
||||
left: 0 !important;
|
||||
}
|
||||
|
||||
.leaflet-bottom.leaflet-left {
|
||||
margin-bottom: 60px !important;
|
||||
}
|
||||
.leaflet-fullscreen-on .leaflet-bottom.leaflet-left {
|
||||
margin-bottom: 15px !important;
|
||||
margin-left: 15px !important;
|
||||
}
|
||||
|
||||
.leaflet-bottom.leaflet-right {
|
||||
margin-bottom: 60px !important;
|
||||
}
|
||||
.leaflet-fullscreen-on .leaflet-bottom.leaflet-right {
|
||||
margin-bottom: 15px !important;
|
||||
margin-right: 15px !important;
|
||||
}
|
||||
|
||||
.leaflet-control {
|
||||
clear: none !important;
|
||||
padding: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: none !important;
|
||||
color: #c1c1c1 !important;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
margin: 0 0 0 15px !important;
|
||||
}
|
||||
.leaflet-left .leaflet-control {
|
||||
margin: 0 15px 0 0 !important;
|
||||
}
|
||||
|
||||
.leaflet-control a, .leaflet-control button {
|
||||
display: inline-block !important;
|
||||
float: none !important;
|
||||
border: none !important;
|
||||
background-color: #212121 !important;
|
||||
border-radius: 0 !important;
|
||||
color: #c1c1c1 !important;
|
||||
border-right: 1px #3e3e3e solid !important;
|
||||
}
|
||||
.leaflet-control a:last-child, .leaflet-control button:last-child {
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
/* Zoom */
|
||||
|
||||
.leaflet-control-zoom-in, .leaflet-control-zoom-out {
|
||||
font-size: 10px !important;
|
||||
}
|
||||
.leaflet-disabled {
|
||||
background-color: rgba(33, 33, 33, 0.8) !important;
|
||||
opacity: 0.8 !important;
|
||||
}
|
||||
|
||||
/* Fullscreen */
|
||||
|
||||
.leaflet-control-fullscreen a {
|
||||
background: #212121 !important;
|
||||
}
|
||||
.leaflet-control-fullscreen a:before {
|
||||
content: "\f065";
|
||||
font-family: FontAwesome;
|
||||
background: none !important;
|
||||
}
|
||||
.leaflet-fullscreen-on .leaflet-control-fullscreen a:before {
|
||||
content: "\f066";
|
||||
font-family: FontAwesome;
|
||||
}
|
||||
|
||||
/* Baselayers */
|
||||
|
||||
.leaflet-control-layers a {
|
||||
background: #212121 !important;
|
||||
width: 26px !important;
|
||||
height: 26px !important;
|
||||
line-height: 26px !important;
|
||||
text-align: center !important;
|
||||
border-right: none !important;
|
||||
}
|
||||
.leaflet-control-layers a:before {
|
||||
content: "\f279";
|
||||
font-family: FontAwesome;
|
||||
background: none !important;
|
||||
}
|
||||
.leaflet-control-layers-expanded a {
|
||||
display: none !important;
|
||||
}
|
||||
.leaflet-control-layers-list {
|
||||
padding: 3px 8px !important;
|
||||
color: white !important;
|
||||
background: #212121 !important;
|
||||
}
|
||||
|
||||
/* Credit / Legend */
|
||||
|
||||
.leaflet-control button {
|
||||
font-size: 12px !important;
|
||||
}
|
||||
|
||||
#footer-credits, #footer-legend {
|
||||
background: #212121;
|
||||
width: 820px;
|
||||
padding: 15px;
|
||||
margin: 15px auto 0 auto;
|
||||
color: #c1c1c1;
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: calc(50% - 425px);
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
#footer-credits .close-link, #footer-legend .close-link {
|
||||
float: right;
|
||||
color: white;
|
||||
padding: 0 8px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#footer-credits a, #footer-legend a {
|
||||
color: white;
|
||||
}
|
||||
#footer-credits a:hover, #footer-legend a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Scale */
|
||||
|
||||
.leaflet-control-scale-line {
|
||||
height: 26px !important;
|
||||
background: #212121 !important;
|
||||
color: #c1c1c1 !important;
|
||||
text-align: center !important;
|
||||
border: none !important;
|
||||
font-size: 12px !important;
|
||||
line-height: 20px !important;
|
||||
}
|
||||
.leaflet-control-scale {
|
||||
opacity: 0.8 !important;
|
||||
}
|
||||
219
views/css/d.user.css
Executable file
@@ -0,0 +1,219 @@
|
||||
/*********************************/
|
||||
/** Login page **/
|
||||
/*********************************/
|
||||
|
||||
form.form {
|
||||
width: 50%;
|
||||
margin: 25px auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
form.form input, form.form textarea {
|
||||
background: #ddd;
|
||||
border-bottom: 2px solid #ccc;
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin: 10px 0 15px -10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
form.form textarea {
|
||||
font-size: 14px;
|
||||
}
|
||||
form.form input {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
form.form input[type=submit] {
|
||||
width: auto;
|
||||
margin: auto;
|
||||
border-bottom: 2px solid blue;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Profile page **/
|
||||
/*********************************/
|
||||
|
||||
#profile article {
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
#profile aside {
|
||||
width: 220px;
|
||||
height: 240px;
|
||||
background: #ddd;
|
||||
float: left;
|
||||
margin: 0 30px 0 0;
|
||||
border: 1px solid #bbb;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
line-height: 238px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#profile aside img {
|
||||
vertical-align: middle;
|
||||
max-width: 220px;
|
||||
max-height: 240px;
|
||||
z-index: 1;
|
||||
box-shadow: 0 0 15px #aaa;
|
||||
}
|
||||
|
||||
#profile aside.noavatar #profileavatar {
|
||||
display: none;
|
||||
}
|
||||
#profile aside.avatar #profilenoavatar {
|
||||
display: none;
|
||||
}
|
||||
#profile aside.noavatar #profilenoavatar {
|
||||
display: inline;
|
||||
font-size: 150px;
|
||||
line-height: 238px;
|
||||
}
|
||||
#profile aside.avatar #profileavatar {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.userrole {
|
||||
font-variant: small-caps;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.external-link {
|
||||
font-size: 0.8em;
|
||||
margin: 0 3px;
|
||||
}
|
||||
|
||||
#profile form.form {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Edit user page **/
|
||||
/*********************************/
|
||||
|
||||
form.edituser ul {
|
||||
margin-left: 250px;
|
||||
}
|
||||
form.edituser ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
form.edituser label {
|
||||
width: 150px;
|
||||
float: left;
|
||||
margin: 13px 15px 0 0;
|
||||
text-align: right;
|
||||
}
|
||||
form.edituser input, form.edituser select {
|
||||
background: #ddd;
|
||||
border-bottom: 2px solid #ccc;
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
form.edituser input[type=submit] {
|
||||
width: 150px;
|
||||
margin: 20px 0 0 170px;
|
||||
border-bottom: 2px solid blue;
|
||||
}
|
||||
|
||||
form.edituser #picturebuttonscontainer {
|
||||
text-align: left;
|
||||
height: 0;
|
||||
top: 106px;
|
||||
left: 0;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
form.edituser #picturebuttons {
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
background: #bbb;
|
||||
}
|
||||
|
||||
form.edituser #picturebuttons a {
|
||||
width: 30px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/*********************************/
|
||||
/** Member list page **/
|
||||
/*********************************/
|
||||
|
||||
#member_list table {
|
||||
width: 100%;
|
||||
margin: 30px auto;
|
||||
}
|
||||
|
||||
#member_list table, #member_list td {
|
||||
border: 1px solid #ccc;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
#member_list th {
|
||||
border: 1px solid #aaa;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
#member_list th a {
|
||||
color: inherit !important;
|
||||
}
|
||||
#member_list th i {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#member_list td, #member_list th {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#member_list tr:nth-child(even) {
|
||||
background: #efefef;
|
||||
}
|
||||
#member_list tr:nth-child(odd) {
|
||||
background: #e1e1e1;
|
||||
}
|
||||
#member_list tr.first {
|
||||
background: #ccc;
|
||||
}
|
||||
#member_list tr:hover {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
#member_list tr.first:hover {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
#member_list .username {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
#member_list .icon {
|
||||
border: 1px solid #999;
|
||||
border-radius: 3px;
|
||||
margin: 0 3px 0 0;
|
||||
padding: 4px 0;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
width: 28px;
|
||||
background: #ccc;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#member_list .icon.avatar {
|
||||
padding: 0;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
#member_list .pagebuttons {
|
||||
text-align: center;
|
||||
}
|
||||
#member_list .pagebuttons a {
|
||||
background: #efefef;
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
#member_list .pagebuttons .previous {
|
||||
margin-right: -1px;
|
||||
}
|
||||
66
views/css/d.wiki.css
Executable file
@@ -0,0 +1,66 @@
|
||||
/*********************************/
|
||||
/** View page **/
|
||||
/*********************************/
|
||||
|
||||
#wikiTimestamp {
|
||||
font-size: 0.8em;
|
||||
font-weight: 500;
|
||||
float: right;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
form.form input, form.form textarea, #locale {
|
||||
background: #ddd;
|
||||
border-bottom: 2px solid #ccc;
|
||||
display: block;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
form.form textarea {
|
||||
font-size: 14px;
|
||||
margin: 10px 0 10px 0px;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
form.form input {
|
||||
width: 58%;
|
||||
margin: 10px 0 10px 0px;
|
||||
font-size: 18px;
|
||||
}
|
||||
#locale {
|
||||
width: 38%;
|
||||
float: right;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
form.form input[type=submit] {
|
||||
width: auto;
|
||||
margin: auto;
|
||||
border-bottom: 2px solid blue;
|
||||
}
|
||||
|
||||
#wikiContent {
|
||||
margin: 50px 0;
|
||||
}
|
||||
|
||||
#wikiContent h2 { margin: .75em 0 }
|
||||
#wikiContent h3 { margin: .83em 0 }
|
||||
#wikiContent h4, #wikiContent p, #wikiContent blockquote, #wikiContent ul, #wikiContent fieldset, #wikiContent form, #wikiContent ol, #wikiContent dl { margin: 1.12em 0 }
|
||||
#wikiContent h5 { margin: 1.5em 0 }
|
||||
#wikiContent h6 { margin: 1.67em 0 }
|
||||
#wikiContent blockquote { margin-left: 40px; margin-right: 40px }
|
||||
#wikiContent ol, #wikiContent ul, #wikiContent dd { margin-left: 40px }
|
||||
#wikiContent ol ul, #wikiContent ul ol, #wikiContent ul ul, #wikiContent ol ol { margin-top: 0; margin-bottom: 0 }
|
||||
|
||||
#wikiContent .footnotes {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
#wikiContent .footnotes p {
|
||||
margin: 0.4em 0;
|
||||
}
|
||||
#wikiContent hr {
|
||||
border: 1px inset;
|
||||
}
|
||||
|
||||
#wiki_page.archive {
|
||||
opacity: 0.5;
|
||||
}
|
||||
23
views/d.admin.git-pull.html
Executable file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Mise à jour.</h1>
|
||||
<br>
|
||||
<pre><?
|
||||
foreach($output as $line) {
|
||||
echo $line."<br>";
|
||||
}
|
||||
?></pre>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
24
views/d.admin.html
Executable file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Administration.</h1>
|
||||
<br>
|
||||
<? if($user->role >= 1000) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/git-pull" class="button"><i class="fa fa-refresh"></i> Mettre à jour</a> <small>Met à jour le logiciel depuis le dépôt GIT.</small><br><br>
|
||||
<? } ?>
|
||||
<? if($user->role >= 800) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>admin/logs" class="button"><i class="fa fa-history"></i> Voir les logs</a> <small>Permet d'accéder aux 200 dernières lignes des logs bruts des actions sur la base de données.</small><br><br>
|
||||
<? } ?>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
41
views/d.admin.logs.html
Executable file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Logs.</h1>
|
||||
<span class="subtitle">
|
||||
<select id="logfile">
|
||||
<? $i = 0;
|
||||
foreach ($files_list as $row) {
|
||||
if ($row != "." && $row != "..") { ?>
|
||||
<option <?=$i==$filenb?'selected':''?> value="<?=$i?>"><? echo $row; ?></option>
|
||||
<? $i++;
|
||||
} ?>
|
||||
<? } ?>
|
||||
</select>
|
||||
</span>
|
||||
<br>
|
||||
<br>
|
||||
<pre><?
|
||||
foreach($output as $line) {
|
||||
echo $line."<br>";
|
||||
}
|
||||
?></pre>
|
||||
</section>
|
||||
|
||||
<script type="text/javascript">
|
||||
$( "#logfile" ).change(function() {
|
||||
window.location.href = "<?=$config['rel_root_folder']?>admin/logs/"+$( this ).val();
|
||||
});
|
||||
</script>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
72
views/d.blog.edit.html
Executable file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<? if(isset($new) AND $new==1) { ?>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>blog/new" method="post">
|
||||
<? }
|
||||
else { ?>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/edit" method="post">
|
||||
<? } ?>
|
||||
|
||||
<h1>
|
||||
<select name="locale" id="locale">
|
||||
<? foreach($config['locales'] as $locale) { ?>
|
||||
<option <?=$blogArticle->locale==$locale[0]?'selected':''?> value="<?=$locale[0]?>"><?=$locale[5]?></option>
|
||||
<? } ?>
|
||||
</select>
|
||||
<input type="text" value="<?=$blogArticle->title?>" name="title" id="title" placeholder="Titre">
|
||||
</h1>
|
||||
|
||||
<? if(isset($error) AND $error=="url") { ?>
|
||||
<p style="color: red;">L'URL sélectionnée est déjà prise.</p>
|
||||
<? } ?>
|
||||
|
||||
<textarea rows="30" name="content" id="content" placeholder="Contenu de la page"><?=$blogArticle->content?></textarea>
|
||||
|
||||
<? if(isset($new) AND $new==1) { ?>
|
||||
<input type="text" value="<?=$blogArticle->url?>" name="url" id="url" placeholder="URL">
|
||||
<? } ?>
|
||||
|
||||
<label for="comments">
|
||||
<input type="checkbox" name="comments" id="comments" value="comments"
|
||||
<? if($blogArticle->comments == 't') { ?>
|
||||
checked
|
||||
<? } ?>
|
||||
/>
|
||||
<span>Autoriser les commentaires</span>
|
||||
</label>
|
||||
|
||||
<input name="submit" id="submit" type="submit" value="Envoyer">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<script type="text/javascript">
|
||||
$( "#title" ).keyup(function() {
|
||||
url = $( "#title" ).val();
|
||||
url = url.replace(/ /g,'_');
|
||||
url = url.toLowerCase();
|
||||
url = url.replace(/[^a-z0-9_]/g,'-');
|
||||
url = url.replace(/[_$]/g,'-');
|
||||
$( "#url" ).val(url);
|
||||
});
|
||||
$( "#title" ).change(function() {
|
||||
url = $( "#title" ).val();
|
||||
url = url.replace(/ /g,'_');
|
||||
url = url.toLowerCase();
|
||||
url = url.replace(/[^a-z0-9_]/g,'-');
|
||||
url = url.replace(/[_$]/g,'-');
|
||||
$( "#url" ).val(url);
|
||||
});
|
||||
</script>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
55
views/d.blog.list.html
Executable file
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="blog_list">
|
||||
<h1>Blog.</h1>
|
||||
<p class="subtitle">
|
||||
<? if ($user->role >= 800) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>blog/new"><i class="fa fa-plus"></i> Nouvel article</a> —
|
||||
<? } ?>
|
||||
<a href="<?=$config['rel_root_folder']?>blog/rss"><i class="fa fa-rss" aria-hidden="true"></i> Flux RSS</a> —
|
||||
Articles <?=$first?> à <?=$last?> sur <?=$blogArticles->number?>
|
||||
</p>
|
||||
|
||||
<div id="articles_list">
|
||||
|
||||
<? foreach ($blogArticles_list as $row) { ?>
|
||||
|
||||
<article <? if($row->archive == 't') echo 'class="article_archive" '; ?>>
|
||||
<h2 class="article_title"><?=$row->title?>.</h2>
|
||||
<div class="article_content"><?=mb_substr($row->content_txt,0,200)?>...</div>
|
||||
<p class="article_legend">
|
||||
<a class="article_link" href="<?=$config['rel_root_folder']?>blog/<?=$row->url?>">Lire la suite...</a>
|
||||
<span class="article_infos">
|
||||
Le <? echo strftime('%e %B %G',strtotime($row->lastedit)) ?> par
|
||||
<? if ($user->role > 0) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>user/p/<?=$row->author?>"><?=$row->author_name?></a>
|
||||
<? }
|
||||
else { ?>
|
||||
<?=$row->author_name?>
|
||||
<? } ?>
|
||||
</span>
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<? } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="pagebuttons">
|
||||
<? if ($page != 0) { ?><a class="previous" href="<?=$config['rel_root_folder']?>blog/<?=$page?>"><i class="fa fa-chevron-left fa-fw"></i></a><? }
|
||||
if (($page+1)*$articles_per_pages < $blogArticles->number) { ?><a class="next" href="<?=$config['rel_root_folder']?>blog/<?=$page+2?>"><i class="fa fa-chevron-right fa-fw"></i></a><? } ?>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
45
views/d.blog.list.rss
Executable file
@@ -0,0 +1,45 @@
|
||||
<?
|
||||
|
||||
$ts = gmdate("D, d M Y H:i:s", time() + 60) . " GMT";
|
||||
header("Content-disposition: filename=blog.rss");
|
||||
header("Content-Type: application/xml; UTF-8");
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Pragma: cache");
|
||||
header("Expires: $ts");
|
||||
header("Access-Control-Allow-Origin: *");
|
||||
header("Cache-Control: max-age=60");
|
||||
|
||||
echo ('<?xml version="1.0" encoding="UTF-8"?>'); ?>
|
||||
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Kabano</title>
|
||||
<link><?=$config['rel_root_folder']?></link>
|
||||
<atom:link href="<?=$config['rel_root_folder']?>blog/rss" rel="self" type="application/rss+xml" />
|
||||
<description>L'actualité du blog officiel de Kabano : Plateforme collaborative de recensement de cabanes et refuges.</description>
|
||||
<language>fr</language>
|
||||
<image>
|
||||
<url><?=$config['views_url']?>img/header_rss.svg</url>
|
||||
<title>Kabano</title>
|
||||
<link><?=$config['rel_root_folder']?></link>
|
||||
<height>44</height>
|
||||
<width>154</width>
|
||||
</image>
|
||||
|
||||
<? foreach ($blogArticles_list as $row) { ?>
|
||||
|
||||
<item>
|
||||
<title><?=$row->title?></title>
|
||||
<link><?=$config['rel_root_folder']?>blog/<?=$row->url?></link>
|
||||
<guid><?=$config['rel_root_folder']?>blog/<?=$row->url?></guid>
|
||||
<pubDate><?=$row->lastedit?></pubDate>
|
||||
<description><![CDATA[
|
||||
<?=$row->content_html?>
|
||||
]]></description>
|
||||
</item>
|
||||
|
||||
<? } ?>
|
||||
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
125
views/d.blog.view.html
Executable file
@@ -0,0 +1,125 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="blog_article" <?=$blogArticle->archive=="t"?'class="archive"':''?>>
|
||||
<h1><?=$blogArticle->title?>.</h1>
|
||||
<? if($user->role >= 600) { ?>
|
||||
<span class="subtitle">
|
||||
<? if(isset($blogArticles_history_list)) { ?>
|
||||
<select id="bloghistory">
|
||||
<? $i = 0;
|
||||
foreach ($blogArticles_history_list as $row) { ?>
|
||||
<option <?=$row->id==$blogArticle->id?'selected':''?> value="<?=$i?>"><?=$row->archive=="f"?'• ':''?><? echo strftime('%d/%m/%Y %H:%M:%S',strtotime($row->lastedit)) ?></option>
|
||||
<? $i++;
|
||||
} ?>
|
||||
</select>
|
||||
<? }
|
||||
if ($user->role >= 800 && isset($blogArticles_history_list)) { ?>
|
||||
—
|
||||
<? }
|
||||
if ($user->role >= 800) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/edit"><i class="fa fa-pencil"></i> Éditer l'article</a>
|
||||
<? if ($blogArticle->archive == 'f') { ?>
|
||||
—
|
||||
<a href="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/delete"><i class="fa fa-trash"></i> Effacer l'article</a>
|
||||
<? } ?>
|
||||
<? } ?>
|
||||
</span>
|
||||
<? } ?>
|
||||
|
||||
<div id="blogContent">
|
||||
<?=$blogArticle->content_html?>
|
||||
</div>
|
||||
|
||||
<p id="blogTimestamp">Article écrit par
|
||||
<? if ($user->role > 0) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>user/p/<?=$blogArticle->author?>"><?=$blogArticle->author_name?></a>
|
||||
<? }
|
||||
else { ?>
|
||||
<?=$blogArticle->author_name?>
|
||||
<? } ?>
|
||||
le <? echo strftime('%e %B %G, %kh%Mm%Ss',strtotime($blogArticle->lastedit)) ?> <small><abbr title="Temps Universel Coordonné">UTC</abbr></small></p>
|
||||
|
||||
<!-- COMMENTS -->
|
||||
|
||||
<? if ($blogArticle->comments == "t" && $blogArticle->archive == "f") { ?>
|
||||
<div id="new_comment">
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/new_comment" method="post">
|
||||
<div id="new_comment_label" <?=$user->role==0?"class='sent' ":""?>>
|
||||
<? if ($user->role > 0) { ?>
|
||||
<input name="submit" type="submit" value="Envoyer">
|
||||
<p>Ajouter un nouveau commentaire</p>
|
||||
<? } else { ?>
|
||||
<p>Veuillez vous connecter pour ajouter un commentaire</p>
|
||||
<? } ?>
|
||||
</div>
|
||||
<div id="new_comment_form">
|
||||
<textarea id="comment" name="comment" rows="5" placeholder="Votre commentaire"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<? if(isset($blogArticles_comments_list)) {
|
||||
foreach ($blogArticles_comments_list as $row) { ?>
|
||||
|
||||
<article <? if($row->archive == 't') echo 'class="comment_archive" '; ?>>
|
||||
<div class="comment_title">
|
||||
<? if ($row->author_obj->avatar=='t') { ?>
|
||||
<img alt="Avatar" class="icon avatar" src="<?=$config['rel_root_folder']?>medias/avatars/<?=$row->author_obj->id?>_s.jpg">
|
||||
<? } else { ?>
|
||||
<i class="icon fa fa-user-secret"></i>
|
||||
<? } ?>
|
||||
<? if ($user->role > 0) { ?>
|
||||
<a class="username" href="<?=$config['rel_root_folder']?>user/p/<?=$row->author_obj->id?>"><?=$row->author_obj->name?></a>
|
||||
<? } else { ?>
|
||||
<?=$row->author_obj->name?>
|
||||
<? } ?>
|
||||
le <? echo strftime('%e %B %G, %kh%Mm%Ss',strtotime($row->lastedit)) ?> <small><abbr title="Temps Universel Coordonné">UTC</abbr></small>
|
||||
<? if (($user->role >= 800 || $user->id == $row->author) && $row->archive == 'f') { ?>
|
||||
<span class="delete_link"><a href="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/delete_comment/<?=$row->id?>"><i class="fa fa-trash"></i> Effacer le commentaire</a></span>
|
||||
<? } ?>
|
||||
<? if (($user->role >= 800 || $user->id == $row->author) && $row->archive == 't') { ?>
|
||||
<span class="delete_link"><a href="<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/undelete_comment/<?=$row->id?>"><i class="fa fa-eye"></i> Réafficher le commentaire</a></span>
|
||||
<? } ?>
|
||||
</div>
|
||||
<div class="comment_content">
|
||||
<?=$row->content_html?>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<? }
|
||||
}
|
||||
} ?>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<div style="clear: both;"> </div>
|
||||
</section>
|
||||
|
||||
<? if($user->role >= 600) { ?>
|
||||
<script type="text/javascript">
|
||||
$( "#bloghistory" ).change(function() {
|
||||
window.location.href = "<?=$config['rel_root_folder']?>blog/<?=$blogArticle->url?>/"+$( this ).val();
|
||||
});
|
||||
</script>
|
||||
<? } ?>
|
||||
<? if($user->role > 0) { ?>
|
||||
<script type="text/javascript">
|
||||
$( "#new_comment_label" ).click(function() {
|
||||
$( "#new_comment_form" ).show(400);
|
||||
$( "#new_comment_label input" ).show(0);
|
||||
$( "#new_comment_label").addClass('sent');
|
||||
});
|
||||
</script>
|
||||
<? } ?>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
58
views/d.contact.html
Executable file
@@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Nous contacter.</h1>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>contact" method="post">
|
||||
<? if($error=="name") { ?>
|
||||
<p style="color: red;">Veuillez renseigner votre nom.</p>
|
||||
<? } ?>
|
||||
<? if($error=="subject") { ?>
|
||||
<p style="color: red;">Veuillez renseigner un sujet.</p>
|
||||
<? } ?>
|
||||
<? if($error=="mail") { ?>
|
||||
<p style="color: red;">Veuillez renseigner une adresse mail.</p>
|
||||
<? } ?>
|
||||
<? if($error=="message") { ?>
|
||||
<p style="color: red;">Veuillez renseigner un message.</p>
|
||||
<? } ?>
|
||||
<? if($error=="unknown") { ?>
|
||||
<p style="color: red;">Une erreur est survenue.</p>
|
||||
<? } ?>
|
||||
<? if($error=="spam") { ?>
|
||||
<p style="color: red;">Veuillez n'envoyer qu'un message et attendre la fin du compte à rebours.<br>
|
||||
Avez-vous javascript activé et attendu la fin du compte à rebours ?</p>
|
||||
<? } ?>
|
||||
<? if($error=="none") { ?>
|
||||
<p style="color: green;">Message bien envoyé.</p>
|
||||
<? } ?>
|
||||
<input type="text" name="name" id="name" placeholder="Nom" value="<?=$contact['name']?>">
|
||||
<input type="text" name="mail" id="mail" placeholder="Adresse mail" value="<?=$contact['mail']?>">
|
||||
<input type="text" name="subject" id="subject" placeholder="Sujet" value="<?=$contact['subject']?>">
|
||||
<textarea name="message" id="message" rows="12" placeholder="Contenu de votre message"><?=$contact['message']?></textarea>
|
||||
<? if($user->role >= 200) { ?>
|
||||
<input type="hidden" name="captcha" value="-2">
|
||||
<input type="submit" name="submit" value="Envoyer">
|
||||
<? }
|
||||
else { ?>
|
||||
<p id="captcha">
|
||||
<input type="hidden" id="captchahidden" name="captcha" value="10">
|
||||
<span id="captchatext">Merci d'attendre <b id="captchasec">10 s</b> avant de pouvoir nous contacter.<br>
|
||||
<small>Ceci nous permet de laisser les robots à la porte.</small></span>
|
||||
<input disabled id="captchasubmit" style="display:none;" type="submit" name="submit" value="Envoyer">
|
||||
</p>
|
||||
<? } ?>
|
||||
<input type="hidden" name="ns" value="<?=$contact['ns']?>"/>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
33
views/d.index.html
Executable file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<aside id="indexFullW">
|
||||
<!-- <div id="AScontent">
|
||||
<div id="spacebeforesponsors"></div>
|
||||
<div id="sponsors">
|
||||
<p style="font-size: 1.3em;">Aidez Kabano en partagant sa <a style="font-weight: 6b00; color: orange; float: none; padding: 0; display: inline;" href="http://fr.ulule.com/kabano/" target="_blank">campagne de financement Ulule</a> !</p>
|
||||
</div>
|
||||
</div> -->
|
||||
</aside>
|
||||
|
||||
<section>
|
||||
<h1>Cabanes et bivouac en montagne.</h1>
|
||||
<p><abbr title="Cabane en espéranto">Kabano</abbr> est une plateforme collaborative sur laquelle vous pouvez récupérer toutes les informations nécessaires relatives aux hébergements en montagne. Ces informations ont été ajoutées par vous, pour vous, c'est pourquoi il est primordial de ne pas cesser d'ajouter des commentaires, cabanes, refuges ou emplacements de bivouac. Attention toutefois, ces données ne sont en aucun cas garanties et des précautions dues à l'environnement montagnard sont à prendre.</p>
|
||||
<br>
|
||||
<p style="text-align: center;">
|
||||
<img alt="Illustration hut" src="<?=$config['views_url']?>img/thumb1.jpg" class="thumb" title="© ptit tapou - Forums Pyrénées Team">
|
||||
<img alt="Illustration tent" src="<?=$config['views_url']?>img/thumb2.jpg" class="thumb">
|
||||
<img alt="Illustration hut" src="<?=$config['views_url']?>img/thumb3.jpg" class="thumb" title="CC BY-SA - EricM - refuges.info">
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
25
views/d.map.html
Executable file
@@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<div id="mapid" style="height: 100%;"></div>
|
||||
|
||||
<div id="footer-credits" style="display: none;">
|
||||
<i class="fa fa-times close-link" aria-hidden="true"></i>
|
||||
<p><i id="map-credits"></i></p>
|
||||
</div>
|
||||
|
||||
<div id="footer-legend" style="display: none;">
|
||||
<i class="fa fa-times close-link" aria-hidden="true"></i>
|
||||
<p><i id="map-legend">Légende.</i></p>
|
||||
</div>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
34
views/d.user.login.html
Executable file
@@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Connexion.</h1>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>user/login" method="post" id="login">
|
||||
<? if(isset($_GET['error']) AND $_GET['error']==1) { ?>
|
||||
<p style="color: red;">Erreur lors de la connexion, merci de réessayer.</p>
|
||||
<? } ?>
|
||||
<? if(isset($_GET['status']) AND $_GET['status']=="created") { ?>
|
||||
<p style="color: #006600;">Votre compte a été créé, vous pouvez vous connecter.</p>
|
||||
<? } ?>
|
||||
<? if(isset($_GET['status']) AND $_GET['status']=="password_sent") { ?>
|
||||
<p style="color: #006600;">Un nouveau mot de passe vous a été envoyé par mail.</p>
|
||||
<? } ?>
|
||||
<input type="text" name="login" id="login" placeholder="Nom d'utilisateur">
|
||||
<input type="password" name="password" id="password" placeholder="Mot de passe">
|
||||
<input type="submit" name="submit" value="Se connecter">
|
||||
<p style="text-align: center;">
|
||||
<a href="<?=$config['rel_root_folder']?>user/password_lost">Mot de passe oublié</a>
|
||||
</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
70
views/d.user.member_list.html
Executable file
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="member_list">
|
||||
<h1>Liste des membres.</h1>
|
||||
<p class="subtitle">Membres <?=$first?> à <?=$last?> sur les <?=$users->number?> inscrits</p>
|
||||
|
||||
<table>
|
||||
<tr class="first">
|
||||
<th>
|
||||
<a href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+1?>?orderby=name&order=<?=$order=='ASC'?'DESC':'ASC'?>">Nom d'utilisateur</a>
|
||||
<?=$orderby=='name'?$order=='ASC'?'<i class="fa fa-caret-down" aria-hidden="true"></i>':'<i class="fa fa-caret-up" aria-hidden="true"></i>':''?>
|
||||
</th>
|
||||
<th>
|
||||
<a href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+1?>?orderby=role&order=<?=$order=='ASC'?'DESC':'ASC'?>">Rôle</a>
|
||||
<?=$orderby=='role'?$order=='ASC'?'<i class="fa fa-caret-down" aria-hidden="true"></i>':'<i class="fa fa-caret-up" aria-hidden="true"></i>':''?>
|
||||
</th>
|
||||
<th>
|
||||
<a href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+1?>?orderby=registered&order=<?=$order=='ASC'?'DESC':'ASC'?>">Inscription</a>
|
||||
<?=$orderby=='registered'?$order=='ASC'?'<i class="fa fa-caret-down" aria-hidden="true"></i>':'<i class="fa fa-caret-up" aria-hidden="true"></i>':''?>
|
||||
</th>
|
||||
<th>
|
||||
<a href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+1?>?orderby=lastlogin&order=<?=$order=='ASC'?'DESC':'ASC'?>">Dernière visite</a>
|
||||
<?=$orderby=='lastlogin'?$order=='ASC'?'<i class="fa fa-caret-down" aria-hidden="true"></i>':'<i class="fa fa-caret-up" aria-hidden="true"></i>':''?>
|
||||
</th>
|
||||
<th>
|
||||
<a href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+1?>?orderby=website&order=<?=$order=='ASC'?'DESC':'ASC'?>">Site internet</a>
|
||||
<?=$orderby=='website'?$order=='ASC'?'<i class="fa fa-caret-down" aria-hidden="true"></i>':'<i class="fa fa-caret-up" aria-hidden="true"></i>':''?>
|
||||
</th>
|
||||
</tr>
|
||||
<? foreach ($user_list as $row) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
<? if ($row->avatar=='t') { ?>
|
||||
<img alt="Avatar" class="icon avatar" src="<?=$config['rel_root_folder']?>medias/avatars/<?=$row->id?>_s.jpg">
|
||||
<? } else { ?>
|
||||
<i class="icon fa fa-user-secret"></i>
|
||||
<? } ?>
|
||||
<a class="username" href="<?=$config['rel_root_folder']?>user/p/<?=$row->id?>"><?=$row->name?></a>
|
||||
</td>
|
||||
<td><?=$row->role()?></td>
|
||||
<td><? echo strftime('%e %B %G',strtotime($row->registered)) ?></td>
|
||||
<td><? echo strftime('%e %B %G',strtotime($row->lastlogin)) ?></td>
|
||||
<td>
|
||||
<? if ($row->website != "") { ?>
|
||||
<a target="_blank" href="<?=$row->website?>">Site internet <span class="external-link"><i class="fa fa-external-link"></i></span></a>
|
||||
<? } ?>
|
||||
</td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
</table>
|
||||
|
||||
<div class="pagebuttons">
|
||||
<? if ($page != 0) { ?><a class="previous" href="<?=$config['rel_root_folder']?>user/member_list/<?=$page?>?orderby=<?=$orderby?>&order=<?=$order?>"><i class="fa fa-chevron-left fa-fw"></i></a><? }
|
||||
if (($page+1)*$rows_per_pages < $users->number) { ?><a class="next" href="<?=$config['rel_root_folder']?>user/member_list/<?=$page+2?>?orderby=<?=$orderby?>&order=<?=$order?>"><i class="fa fa-chevron-right fa-fw"></i></a><? } ?>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
24
views/d.user.password_lost.html
Executable file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Envoi d'un mot de passe.</h1>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>user/password_lost" method="post" id="password_lodt">
|
||||
<? if(isset($_GET['error']) AND $_GET['error']==1) { ?>
|
||||
<p style="color: red;">Cette adresse mail n'existe pas.</p>
|
||||
<? } ?>
|
||||
<input type="text" name="mail" id="mail" placeholder="Adresse mail">
|
||||
<input type="submit" name="submit" value="Envoyer un nouveau mot de passe">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
74
views/d.user.profile.edit.html
Executable file
@@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="profile">
|
||||
<? if ($userProfile->id != 0) { ?>
|
||||
<h1><?=$userProfile->name?></h1>
|
||||
<article>
|
||||
<? if(isset($nameError) AND $nameError==1) { ?>
|
||||
<p style="color: #660000;">Veuillez choisir un autre nom d'utilisateur.</p>
|
||||
<? } ?>
|
||||
<? if(isset($nameError) AND $nameError==1) { ?>
|
||||
<p style="color: #660000;">Veuillez choisir un autre nom d'utilisateur.</p>
|
||||
<? } ?>
|
||||
<? if(isset($updated) AND $updated==1) { ?>
|
||||
<p style="color: #006600;">Le profil a été mis à jour.</p>
|
||||
<? } ?>
|
||||
<form action="<?=$config['rel_root_folder']?>user/p/<?=$userProfile->id?>/edit" method="post" class="edituser" enctype="multipart/form-data">
|
||||
<aside class="<?=$userProfile->avatar=='t'?'':'no'?>avatar">
|
||||
<div id="picturebuttonscontainer">
|
||||
<div id="picturebuttons">
|
||||
<a href="#" id="uploadavatar"><i class="fa fa-camera"></i></a><a <?=$userProfile->avatar=='t'?'':'style="display: none;"'?> href="#" id="deleteavatar" style="font-size: 1.1em;"><i class="fa fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<img alt="Avatar" id="profileavatar" src="<?=$config['rel_root_folder']?>medias/avatars/<?=$userProfile->id?>_p.jpg" alt="Profile picture">
|
||||
<i id="profilenoavatar" class="fa fa-user-secret"></i>
|
||||
</aside>
|
||||
|
||||
<input id="avatarcheckbox" style="display: none;" type="checkbox" name="avatar" <?=$userProfile->avatar=='t'?'checked':''?>>
|
||||
<input type="hidden" name="MAX_FILE_SIZE" value="4194304" />
|
||||
<input id="avatarfile" name="avatarfile" style="display: none;" type="file" accept="image/*" />
|
||||
|
||||
<div id="description">
|
||||
<ul>
|
||||
<li><label for="name">Nom d'utilisateur :</label><input name="name" id="name" type="text" value="<?=$userProfile->name?>" placeholder="Charlie"></li>
|
||||
<li><label for="mail">Adresse mail :</label><input name="mail" id="mail" type="text" value="<?=$userProfile->mail?>" placeholder="charlie@mountain.org"></li>
|
||||
<li><label for="password">Mot de passe :</label><input name="password" id="password" type="password" placeholder="Nouveau mot de passe"></li>
|
||||
<li><label for="locale">Langue :</label>
|
||||
<select name="locale" id="locale">
|
||||
<? foreach($config['locales'] as $locale) { ?>
|
||||
<option <?=$userProfile->locale==$locale[0]?'selected':''?> value="<?=$locale[0]?>"><?=$locale[5]?></option>
|
||||
<? } ?>
|
||||
</select></li>
|
||||
<? if($user->role >= 1000) { ?>
|
||||
<li><label for="role">Rang : </label>
|
||||
<select name="role" id="role">
|
||||
<? foreach($config['roles'] as $role) { ?>
|
||||
<option <?=$userProfile->role==$role[0]?'selected':''?> value="<?=$role[0]?>"><?=$role[1]?></option>
|
||||
<? } ?>
|
||||
</select></li>
|
||||
<? } ?>
|
||||
<li><label for="website">Site internet :</label><input name="website" id="website" type="text" value="<?=$userProfile->website?>" placeholder="mountain.org"></li>
|
||||
|
||||
<input name="submit" id="submit" type="submit" value="Envoyer">
|
||||
</ul>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</form>
|
||||
</article>
|
||||
<? } else { ?>
|
||||
<p style="color:red;">Le profil demandé n'existe pas.</p>
|
||||
<? } ?>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
66
views/d.user.profile.html
Executable file
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="profile">
|
||||
<? if ($userProfile->id != 0) { ?>
|
||||
<h1><?=$userProfile->name?></h1>
|
||||
<? if($user->role >= 800 || $user->id == $userProfile->id) { ?>
|
||||
<a class="subtitle" id="editprofile" href="<?=$config['rel_root_folder']?>user/p/<?=$userProfile->id?>/edit"><i class="fa fa-pencil"></i> Éditer les paramètres du compte</a>
|
||||
<? } ?>
|
||||
<article>
|
||||
<div id="profilepart">
|
||||
<? if(isset($mailsent) AND $mailsent==1) { ?>
|
||||
<p style="color: #006600;">Le message a bien été envoyé.</p>
|
||||
<? } ?>
|
||||
<aside class="<?=$userProfile->avatar=='t'?'':'no'?>avatar">
|
||||
<img alt="Avatar" id="profileavatar" src="<?=$config['rel_root_folder']?>medias/avatars/<?=$userProfile->id?>_p.jpg" alt="Profile picture">
|
||||
<i id="profilenoavatar" class="fa fa-user-secret"></i>
|
||||
</aside>
|
||||
<div id="description">
|
||||
<p>Langue : <?=$config['locales'][$userProfile->locale][5]?></p>
|
||||
<p>Inscrit le <? echo strftime('%e %B %G, %kh%Mm%Ss',strtotime($userProfile->registered)) ?> <small><abbr title="Temps Universel Coordonné">UTC</abbr></small></p>
|
||||
<p>Dernière connexion le <? echo strftime('%e %B %G, %kh%Mm%Ss',strtotime($userProfile->lastlogin)) ?> <small><abbr title="Temps Universel Coordonné">UTC</abbr></small></p>
|
||||
<p><?=$userProfile->role()?></p>
|
||||
<p>
|
||||
<? if ($userProfile->website != "") { ?>
|
||||
<a target="_blank" href="<?=$userProfile->website?>">Site internet <span class="external-link"><i class="fa fa-external-link"></i></span></a>
|
||||
<? }
|
||||
if ($userProfile->website != "" AND $userProfile->id != $user->id) { ?>
|
||||
—
|
||||
<? }
|
||||
if ($userProfile->id != $user->id) { ?>
|
||||
<a href="#" onclick="$('#profilepart').hide(0, function(){$('#contact').show('fast');});">Contacter par mail</a>
|
||||
<? }
|
||||
if ($user->role >= 600 AND ($userProfile->website != "" OR $userProfile->id != $user->id)) { ?>
|
||||
—
|
||||
<? }
|
||||
if ($user->role >= 600) { ?>
|
||||
<a href="mailto:<?=$userProfile->mail?>"><?=$userProfile->mail?></a>
|
||||
<? } ?>
|
||||
</p>
|
||||
</div>
|
||||
<div style="clear:both;"></div>
|
||||
</div>
|
||||
<? if ($userProfile->id != $user->id) { ?>
|
||||
<form style="display:none;" class="form" id="contact" action="<?=$config['rel_root_folder']?>user/p/<?=$userProfile->id?>" method="post" >
|
||||
<textarea rows="12" name="message" id="message" placeholder="Votre message"></textarea>
|
||||
<p><i>Votre adresse email sera transmise à votre destinataire.</i></p>
|
||||
<input type="submit" name="submit" value="Envoyer">
|
||||
</form>
|
||||
<? } ?>
|
||||
</article>
|
||||
<? } else { ?>
|
||||
<p style="color:red;">Le profil demandé n'existe pas.</p>
|
||||
<? } ?>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
41
views/d.user.signin.html
Executable file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<h1>Inscription.</h1>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>user/signin" method="post" id="signin">
|
||||
<? if(isset($_GET['error']) AND $_GET['error']=="name") { ?>
|
||||
<p style="color: red;">Veuillez choisir un autre nom d'utilisateur.</p>
|
||||
<? } ?>
|
||||
<? if(isset($_GET['error']) AND $_GET['error']=="mail") { ?>
|
||||
<p style="color: red;">Cette adresse mail est déjà prise.</p>
|
||||
<? } ?>
|
||||
<? if(isset($_GET['error']) AND $_GET['error']=="empty") { ?>
|
||||
<p style="color: red;">Merci de remplir tous les champs, il n'y en a que trois.</p>
|
||||
<? } ?>
|
||||
<? if(isset($_GET['error']) AND $_GET['error']=="captcha") { ?>
|
||||
<p style="color: red;">Nous n'avons pas pu vérifier que vous êtes un humain.<br>
|
||||
Avez-vous javascript activé et attendu la fin du compte à rebours ?</p>
|
||||
<? } ?>
|
||||
<input type="text" name="login" id="login" placeholder="Nom d'utilisateur">
|
||||
<input type="password" name="password" id="password" placeholder="Mot de passe">
|
||||
<input type="text" name="mail" id="mail" placeholder="Adresse mail">
|
||||
<p id="captcha">
|
||||
<input type="hidden" id="captchahidden" name="captcha" value="10">
|
||||
<span id="captchatext">Merci d'attendre <b id="captchasec">10 s</b> avant de pouvoir vous inscrire.<br>
|
||||
<small>Ceci nous permet de laisser les robots à la porte.</small></span>
|
||||
<input disabled id="captchasubmit" style="display:none;" type="submit" name="submit" value="S'inscrire">
|
||||
</p>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
30
views/d.wiki.edit.html
Executable file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section>
|
||||
<form class="form" action="<?=$config['rel_root_folder']?>wiki/<?=$wikiPage->url?>/edit" method="post">
|
||||
<h1>
|
||||
<select name="locale" id="locale">
|
||||
<? foreach($config['locales'] as $locale) { ?>
|
||||
<option <?=$wikiPage->locale==$locale[0]?'selected':''?> value="<?=$locale[0]?>"><?=$locale[5]?></option>
|
||||
<? } ?>
|
||||
</select>
|
||||
<input type="text" value="<?=$wikiPage->title?>" name="title" id="title" placeholder="Titre">
|
||||
</h1>
|
||||
|
||||
<textarea rows="30" name="content" id="content" placeholder="Contenu de la page"><?=$wikiPage->content?></textarea>
|
||||
|
||||
<input name="submit" id="submit" type="submit" value="Envoyer">
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
56
views/d.wiki.view.html
Executable file
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<? include('blocks/d.head.html'); ?>
|
||||
|
||||
<body>
|
||||
|
||||
<? include('blocks/d.nav.html'); ?>
|
||||
|
||||
<section id="wiki_page" <?=$wikiPage->archive=="t"?'class="archive"':''?>>
|
||||
<h1><?=$wikiPage->title?>.</h1>
|
||||
<? if($user->role >= 600) { ?>
|
||||
<span class="subtitle">
|
||||
<? if(isset($wikiHistory_list)) { ?>
|
||||
<select id="wikihistory">
|
||||
<? $i = 0;
|
||||
foreach ($wikiHistory_list as $row) { ?>
|
||||
<option <?=$row->id==$wikiPage->id?'selected':''?> value="<?=$i?>"><?=$row->archive=="f"?'• ':''?><? echo strftime('%d/%m/%Y %H:%M:%S',strtotime($row->lastedit)) ?></option>
|
||||
<? $i++;
|
||||
} ?>
|
||||
</select>
|
||||
<? }
|
||||
if ($user->role >= 800 && isset($wikiHistory_list)) { ?>
|
||||
—
|
||||
<? }
|
||||
if ($user->role >= 800) { ?>
|
||||
<a href="<?=$config['rel_root_folder']?>wiki/<?=$wikiPage->url?>/edit"><i class="fa fa-pencil"></i> Éditer la page</a>
|
||||
<? if ($wikiPage->archive == 'f') { ?>
|
||||
—
|
||||
<a href="<?=$config['rel_root_folder']?>wiki/<?=$wikiPage->url?>/delete"><i class="fa fa-trash"></i> Effacer la page</a>
|
||||
<? } ?>
|
||||
<? } ?>
|
||||
</span>
|
||||
<? } ?>
|
||||
|
||||
<div id="wikiContent">
|
||||
<?=$wikiPage->content_html?>
|
||||
</div>
|
||||
|
||||
<p id="wikiTimestamp">Page mise à jour le <? echo strftime('%e %B %G, %kh%Mm%Ss',strtotime($wikiPage->lastedit)) ?> <small><abbr title="Temps Universel Coordonné">UTC</abbr></small></p>
|
||||
|
||||
<div style="clear: both;"> </div>
|
||||
</section>
|
||||
|
||||
<? if($user->role >= 600) { ?>
|
||||
<script type="text/javascript">
|
||||
$( "#wikihistory" ).change(function() {
|
||||
window.location.href = "<?=$config['rel_root_folder']?>wiki/<?=$wikiPage->url?>/"+$( this ).val();
|
||||
});
|
||||
</script>
|
||||
<? } ?>
|
||||
|
||||
<? include('blocks/d.footer.html'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
views/fonts/FiraMono-Bold.eot
Executable file
BIN
views/fonts/FiraMono-Bold.otf
Executable file
BIN
views/fonts/FiraSans-Bold.ttf
Executable file
BIN
views/fonts/FiraSans-ExtraLight.eot
Executable file
BIN
views/fonts/FiraSans-ExtraLight.otf
Executable file
BIN
views/fonts/FiraSans-ExtraLight.ttf
Executable file
BIN
views/fonts/FiraSans-Light.eot
Executable file
BIN
views/fonts/FiraSans-Light.otf
Executable file
BIN
views/fonts/FiraSans-Light.ttf
Executable file
BIN
views/fonts/FiraSans-Medium.eot
Executable file
BIN
views/fonts/FiraSans-Medium.otf
Executable file
BIN
views/fonts/FiraSans-Medium.ttf
Executable file
BIN
views/fonts/FiraSans-Regular.eot
Executable file
BIN
views/fonts/FiraSans-Regular.otf
Executable file
BIN
views/fonts/FiraSans-Regular.ttf
Executable file
BIN
views/img/aside.jpg
Executable file
|
After Width: | Height: | Size: 44 KiB |
BIN
views/img/favicon.png
Executable file
|
After Width: | Height: | Size: 356 B |
104
views/img/header.svg
Executable file
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="154"
|
||||
height="44"
|
||||
viewBox="0 0 154 44"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo3.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8"
|
||||
inkscape:cx="56.867628"
|
||||
inkscape:cy="65.836934"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="745"
|
||||
inkscape:window-x="1280"
|
||||
inkscape:window-y="23"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(2.2888184e-7,-1008.3622)">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4136"
|
||||
transform="matrix(1.1379801,0,0,1.1379801,3.1581138e-8,-151.20504)">
|
||||
<path
|
||||
d="m 1.3999998,1024.6822 -1.40000002888184,0 0,27.28 1.40000002888184,0 0,-27.28 z m 13.9200002,0 -1.68,0 -12.1200002,12.6 12.7200002,14.68 1.72,0 -12.6800002,-14.68 12.0400002,-12.6 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#ffffff;fill-opacity:1"
|
||||
id="path4186"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 53.246875,1037.4822 c 3,-0.52 4.92,-2.44 4.92,-6.04 0,-4.56 -3.44,-6.76 -9.32,-6.76 l -5.8,0 0,27.28 7.36,0 c 5.76,0 9.12,-2.64 9.12,-7.44 0,-4.76 -2.88,-6.84 -6.28,-7.04 z m -4.24,-11.52 c 4.96,0 7.72,1.68 7.72,5.52 0,3.4 -2.32,5.48 -5.8,5.48 l -6.48,0 0,-11 4.56,0 z m 1.44,24.72 -6,0 0,-12.52 6.68,0 c 4.04,0 6.96,2 6.96,6.36 0,4.16 -2.88,6.16 -7.64,6.16 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#ffffff;fill-opacity:1"
|
||||
id="path4190"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 105.32312,1024.6822 -1.36,0 0,17.8 c 0,3.64 0.08,6.36 0.16,7.92 l -14.159995,-25.72 -1.76,0 0,27.28 1.36,0 0,-17.2 c 0,-4.8 -0.08,-6.92 -0.2,-8.52 l 14.199995,25.72 1.76,0 0,-27.28 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#ffffff;fill-opacity:1"
|
||||
id="path4194"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 123.80562,1024.2422 c -6.4,0 -10.84,5.12 -10.84,14.16 0,9 4.4,13.96 10.84,13.96 6.68,0 10.84,-5.12 10.84,-14 0,-9.24 -4.36,-14.12 -10.84,-14.12 z m 0,1.32 c 5.64,0 9.4,4.2 9.4,12.8 0,8.4 -3.56,12.72 -9.4,12.72 -5.52,0 -9.4,-4.32 -9.4,-12.68 0,-8.56 3.84,-12.84 9.4,-12.84 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#ffffff;fill-opacity:1"
|
||||
id="path4196"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4136-1"
|
||||
transform="matrix(1.1379801,0,0,1.1379801,-327.34608,665.85293)">
|
||||
<path
|
||||
d="m 327.11423,334.16668 -10.09786,-27.23536 -10.34214,27.23536 z m -18.81955,-1.19739 5.88391,-15.62044 4.87414,-1.40926 6.40569,16.95891 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#ffffff;fill-opacity:1"
|
||||
id="path4159"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
d="m 372.70688,333.82719 -0.008,-1.24916 -1.36672,-0.006 -8.73903,-23.76226 0.83839,-1.55306 -0.73436,-0.62958 -0.82296,1.22506 -0.69448,-1.17371 -0.71601,0.66008 0.84437,1.49829 -9.42882,23.88393 -1.23813,0.005 0.0188,1.14693 z m -17.50259,-1.13043 6.57828,-15.51649 6.1435,15.46802 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-size:40px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path4159-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
104
views/img/header_rss.svg
Executable file
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="154"
|
||||
height="44"
|
||||
viewBox="0 0 154 44"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="header_rss.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8"
|
||||
inkscape:cx="55.336881"
|
||||
inkscape:cy="65.836934"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="745"
|
||||
inkscape:window-x="1280"
|
||||
inkscape:window-y="279"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(2.2888184e-7,-1008.3622)">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4136"
|
||||
transform="matrix(1.1379801,0,0,1.1379801,3.1581138e-8,-151.20504)">
|
||||
<path
|
||||
d="m 1.3999998,1024.6822 -1.40000002888184,0 0,27.28 1.40000002888184,0 0,-27.28 z m 13.9200002,0 -1.68,0 -12.1200002,12.6 12.7200002,14.68 1.72,0 -12.6800002,-14.68 12.0400002,-12.6 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#000000;fill-opacity:1"
|
||||
id="path4186"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 53.246875,1037.4822 c 3,-0.52 4.92,-2.44 4.92,-6.04 0,-4.56 -3.44,-6.76 -9.32,-6.76 l -5.8,0 0,27.28 7.36,0 c 5.76,0 9.12,-2.64 9.12,-7.44 0,-4.76 -2.88,-6.84 -6.28,-7.04 z m -4.24,-11.52 c 4.96,0 7.72,1.68 7.72,5.52 0,3.4 -2.32,5.48 -5.8,5.48 l -6.48,0 0,-11 4.56,0 z m 1.44,24.72 -6,0 0,-12.52 6.68,0 c 4.04,0 6.96,2 6.96,6.36 0,4.16 -2.88,6.16 -7.64,6.16 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#000000;fill-opacity:1"
|
||||
id="path4190"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 105.32312,1024.6822 -1.36,0 0,17.8 c 0,3.64 0.08,6.36 0.16,7.92 l -14.159995,-25.72 -1.76,0 0,27.28 1.36,0 0,-17.2 c 0,-4.8 -0.08,-6.92 -0.2,-8.52 l 14.199995,25.72 1.76,0 0,-27.28 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#000000;fill-opacity:1"
|
||||
id="path4194"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 123.80562,1024.2422 c -6.4,0 -10.84,5.12 -10.84,14.16 0,9 4.4,13.96 10.84,13.96 6.68,0 10.84,-5.12 10.84,-14 0,-9.24 -4.36,-14.12 -10.84,-14.12 z m 0,1.32 c 5.64,0 9.4,4.2 9.4,12.8 0,8.4 -3.56,12.72 -9.4,12.72 -5.52,0 -9.4,-4.32 -9.4,-12.68 0,-8.56 3.84,-12.84 9.4,-12.84 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#000000;fill-opacity:1"
|
||||
id="path4196"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4136-1"
|
||||
transform="matrix(1.1379801,0,0,1.1379801,-327.34608,665.85293)">
|
||||
<path
|
||||
d="m 327.11423,334.16668 -10.09786,-27.23536 -10.34214,27.23536 z m -18.81955,-1.19739 5.88391,-15.62044 4.87414,-1.40926 6.40569,16.95891 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';fill:#000000;fill-opacity:1"
|
||||
id="path4159"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
d="m 372.70688,333.82719 -0.008,-1.24916 -1.36672,-0.006 -8.73903,-23.76226 0.83839,-1.55306 -0.73436,-0.62958 -0.82296,1.22506 -0.69448,-1.17371 -0.71601,0.66008 0.84437,1.49829 -9.42882,23.88393 -1.23813,0.005 0.0188,1.14693 z m -17.50259,-1.13043 6.57828,-15.51649 6.1435,15.46802 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:200;font-stretch:normal;font-size:40px;line-height:125%;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans Ultra-Light';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path4159-4"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
BIN
views/img/lstronic.png
Executable file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
views/img/thumb1.jpg
Executable file
|
After Width: | Height: | Size: 22 KiB |
BIN
views/img/thumb2.jpg
Executable file
|
After Width: | Height: | Size: 19 KiB |
BIN
views/img/thumb3.jpg
Executable file
|
After Width: | Height: | Size: 27 KiB |
40
views/js/d.avatar.js
Executable file
@@ -0,0 +1,40 @@
|
||||
|
||||
$(window).ready(function() {
|
||||
$("#deleteavatar").click(function() {
|
||||
$("aside").removeClass("avatar").addClass("noavatar");
|
||||
$("#deleteavatar").hide();
|
||||
$("#avatarcheckbox").prop("checked", false);
|
||||
$('#avatarfile').val('');
|
||||
});
|
||||
|
||||
$("#uploadavatar").click(function() {
|
||||
$('#avatarfile').trigger('click');
|
||||
});
|
||||
|
||||
$("#avatarfile").change(function () {
|
||||
if($("#avatarfile").val == '') {
|
||||
$("#avatarcheckbox").prop("checked", false);
|
||||
$("aside").removeClass("avatar").addClass("noavatar");
|
||||
$("#deleteavatar").hide();
|
||||
}
|
||||
else {
|
||||
$("#avatarcheckbox").prop("checked", true);
|
||||
$("aside").removeClass("noavatar").addClass("avatar");
|
||||
$("#deleteavatar").show();
|
||||
readURL(this);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function readURL(input) {
|
||||
if (input.files && input.files[0]) {
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = function (e) {
|
||||
$('#profileavatar').attr('src', e.target.result);
|
||||
}
|
||||
|
||||
reader.readAsDataURL(input.files[0]);
|
||||
}
|
||||
}$
|
||||
22
views/js/d.captcha.js
Executable file
@@ -0,0 +1,22 @@
|
||||
var time = 9;
|
||||
|
||||
$(window).ready(function() {
|
||||
var interval = setInterval(function() {
|
||||
if (time > 0) {
|
||||
$("#captchahidden").val(time);
|
||||
$("#captchasec").html(time+" s");
|
||||
time--;
|
||||
}
|
||||
else {
|
||||
time--;
|
||||
$("#captchahidden").val(time);
|
||||
$("#captchatext").remove();
|
||||
$("#captchasubmit").removeAttr('disabled');
|
||||
$("#captchasubmit").css("display", "block");
|
||||
time--;
|
||||
$("#captchahidden").val(time);
|
||||
clearInterval(interval);
|
||||
}
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
81
views/js/d.header.js
Executable file
@@ -0,0 +1,81 @@
|
||||
var small = 2;
|
||||
|
||||
function reduce() {
|
||||
$( "header" ).animate({
|
||||
height: "45px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header #logo img" ).animate({
|
||||
height: "34px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header #logo" ).animate({
|
||||
paddingTop: "3px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header li.on-bar" ).animate({
|
||||
height: "45px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header a.on-bar" ).animate({
|
||||
paddingTop: "15px",
|
||||
paddingBottom: "5px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
}
|
||||
|
||||
function enlarge() {
|
||||
$( "header" ).animate({
|
||||
height: "65px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header #logo img" ).animate({
|
||||
height: "44px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header #logo" ).animate({
|
||||
paddingTop: "8px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header li.on-bar" ).animate({
|
||||
height: "65px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
$( "header a.on-bar" ).animate({
|
||||
paddingTop: "25px",
|
||||
paddingBottom: "15px"
|
||||
}, 100, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
var position = $(window).scrollTop();
|
||||
if (position>80 && small!=1) {
|
||||
small = 1;
|
||||
reduce();
|
||||
}
|
||||
else if (position<=80 && small!=0) {
|
||||
small = 0;
|
||||
enlarge();
|
||||
}
|
||||
});
|
||||
|
||||
$(window).ready(function() {
|
||||
$( "#logo" ).hover(
|
||||
function() {
|
||||
$("#kabanologotext").show(100);
|
||||
}, function() {
|
||||
$("#kabanologotext").hide(100);
|
||||
}
|
||||
)
|
||||
});
|
||||
64
views/js/d.map.js
Executable file
@@ -0,0 +1,64 @@
|
||||
var mymap;
|
||||
|
||||
$( document ).ready(function() {
|
||||
// Differents layers for the map
|
||||
var osmfr = L.tileLayer('//{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {maxZoom: 20, attribution: 'Maps © <a href="http://www.openstreetmap.fr">OpenSreetMap France</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
|
||||
var wikimedia = L.tileLayer('//maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png', {maxZoom: 18, attribution: 'Maps © <a href="http://wikimedia.org">Wikimedia</a>, Data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>'});
|
||||
|
||||
// Base layers
|
||||
var baseLayers = {
|
||||
"OSM France": osmfr,
|
||||
"OSM Wikimedia": wikimedia,
|
||||
};
|
||||
|
||||
mymap = L.map('mapid', {
|
||||
zoomControl: false,
|
||||
layers: [wikimedia],
|
||||
}).setView([47.018, 3.142], 6);
|
||||
$("#map-credits").html(wikimedia.getAttribution());
|
||||
|
||||
L.control.scale({
|
||||
position: "bottomleft",
|
||||
imperial: false
|
||||
}).addTo(mymap);
|
||||
|
||||
var credits = L.easyButton('fa-info',
|
||||
function(control, mymap){
|
||||
$("footer").hide();
|
||||
$("#footer-credits").show();
|
||||
$("#footer-legend").hide();
|
||||
}, 'Credits');
|
||||
var legend = L.easyButton('fa-question',
|
||||
function(control, mymap){
|
||||
$("footer").hide();
|
||||
$("#footer-credits").hide();
|
||||
$("#footer-legend").show();
|
||||
}, 'Legend');
|
||||
L.easyBar([ credits, legend, ], {position: "bottomleft"}).addTo(mymap);
|
||||
|
||||
L.control.fullscreen({
|
||||
position: "bottomleft"
|
||||
}).addTo(mymap);
|
||||
|
||||
L.control.zoom({
|
||||
zoomOutText: "<i class=\"fa fa-minus\" aria-hidden=\"true\"></i>",
|
||||
zoomInText: "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>",
|
||||
position: "bottomleft"
|
||||
}).addTo(mymap);
|
||||
|
||||
L.control.layers(baseLayers,null,{
|
||||
position: "bottomright"
|
||||
}).addTo(mymap);
|
||||
|
||||
mymap.removeControl(mymap.attributionControl);
|
||||
|
||||
$(".close-link").click(function() {
|
||||
$("footer").show();
|
||||
$("#footer-credits").hide();
|
||||
$("#footer-legend").hide();
|
||||
});
|
||||
|
||||
mymap.on('baselayerchange', function(e) {
|
||||
$("#map-credits").html(e.layer.getAttribution());
|
||||
});
|
||||
});
|
||||
2337
views/third/font-awesome-4.7.0/css/font-awesome.css
vendored
Executable file
4
views/third/font-awesome-4.7.0/css/font-awesome.min.css
vendored
Executable file
BIN
views/third/font-awesome-4.7.0/fonts/FontAwesome.otf
Executable file
BIN
views/third/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
Executable file
2671
views/third/font-awesome-4.7.0/fonts/fontawesome-webfont.svg
Executable file
|
After Width: | Height: | Size: 434 KiB |
BIN
views/third/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
Executable file
BIN
views/third/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
Executable file
BIN
views/third/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
Executable file
4
views/third/jquery-3.1.1.min.js
vendored
Executable file
56
views/third/leaflet-easybutton/easy-button.css
Executable file
@@ -0,0 +1,56 @@
|
||||
.leaflet-bar button,
|
||||
.leaflet-bar button:hover {
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #ccc;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.leaflet-bar button {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.leaflet-bar button:hover {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.leaflet-bar button:first-of-type {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.leaflet-bar button:last-of-type {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.leaflet-bar.disabled,
|
||||
.leaflet-bar button.disabled {
|
||||
cursor: default;
|
||||
pointer-events: none;
|
||||
opacity: .4;
|
||||
}
|
||||
|
||||
.easy-button-button .button-state{
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.leaflet-touch .leaflet-bar button {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
379
views/third/leaflet-easybutton/easy-button.js
Executable file
@@ -0,0 +1,379 @@
|
||||
(function(){
|
||||
|
||||
// This is for grouping buttons into a bar
|
||||
// takes an array of `L.easyButton`s and
|
||||
// then the usual `.addTo(map)`
|
||||
L.Control.EasyBar = L.Control.extend({
|
||||
|
||||
options: {
|
||||
position: 'topleft', // part of leaflet's defaults
|
||||
id: null, // an id to tag the Bar with
|
||||
leafletClasses: true // use leaflet classes?
|
||||
},
|
||||
|
||||
|
||||
initialize: function(buttons, options){
|
||||
|
||||
if(options){
|
||||
L.Util.setOptions( this, options );
|
||||
}
|
||||
|
||||
this._buildContainer();
|
||||
this._buttons = [];
|
||||
|
||||
for(var i = 0; i < buttons.length; i++){
|
||||
buttons[i]._bar = this;
|
||||
buttons[i]._container = buttons[i].button;
|
||||
this._buttons.push(buttons[i]);
|
||||
this.container.appendChild(buttons[i].button);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
_buildContainer: function(){
|
||||
this._container = this.container = L.DomUtil.create('div', '');
|
||||
this.options.leafletClasses && L.DomUtil.addClass(this.container, 'leaflet-bar easy-button-container leaflet-control');
|
||||
this.options.id && (this.container.id = this.options.id);
|
||||
},
|
||||
|
||||
|
||||
enable: function(){
|
||||
L.DomUtil.addClass(this.container, 'enabled');
|
||||
L.DomUtil.removeClass(this.container, 'disabled');
|
||||
this.container.setAttribute('aria-hidden', 'false');
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
disable: function(){
|
||||
L.DomUtil.addClass(this.container, 'disabled');
|
||||
L.DomUtil.removeClass(this.container, 'enabled');
|
||||
this.container.setAttribute('aria-hidden', 'true');
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
onAdd: function () {
|
||||
return this.container;
|
||||
},
|
||||
|
||||
addTo: function (map) {
|
||||
this._map = map;
|
||||
|
||||
for(var i = 0; i < this._buttons.length; i++){
|
||||
this._buttons[i]._map = map;
|
||||
}
|
||||
|
||||
var container = this._container = this.onAdd(map),
|
||||
pos = this.getPosition(),
|
||||
corner = map._controlCorners[pos];
|
||||
|
||||
L.DomUtil.addClass(container, 'leaflet-control');
|
||||
|
||||
if (pos.indexOf('bottom') !== -1) {
|
||||
corner.insertBefore(container, corner.firstChild);
|
||||
} else {
|
||||
corner.appendChild(container);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
L.easyBar = function(){
|
||||
var args = [L.Control.EasyBar];
|
||||
for(var i = 0; i < arguments.length; i++){
|
||||
args.push( arguments[i] );
|
||||
}
|
||||
return new (Function.prototype.bind.apply(L.Control.EasyBar, args));
|
||||
};
|
||||
|
||||
// L.EasyButton is the actual buttons
|
||||
// can be called without being grouped into a bar
|
||||
L.Control.EasyButton = L.Control.extend({
|
||||
|
||||
options: {
|
||||
position: 'topleft', // part of leaflet's defaults
|
||||
|
||||
id: null, // an id to tag the button with
|
||||
|
||||
type: 'replace', // [(replace|animate)]
|
||||
// replace swaps out elements
|
||||
// animate changes classes with all elements inserted
|
||||
|
||||
states: [], // state names look like this
|
||||
// {
|
||||
// stateName: 'untracked',
|
||||
// onClick: function(){ handle_nav_manually(); };
|
||||
// title: 'click to make inactive',
|
||||
// icon: 'fa-circle', // wrapped with <a>
|
||||
// }
|
||||
|
||||
leafletClasses: true, // use leaflet styles for the button
|
||||
tagName: 'button',
|
||||
},
|
||||
|
||||
|
||||
|
||||
initialize: function(icon, onClick, title, id){
|
||||
|
||||
// clear the states manually
|
||||
this.options.states = [];
|
||||
|
||||
// add id to options
|
||||
if(id != null){
|
||||
this.options.id = id;
|
||||
}
|
||||
|
||||
// storage between state functions
|
||||
this.storage = {};
|
||||
|
||||
// is the last item an object?
|
||||
if( typeof arguments[arguments.length-1] === 'object' ){
|
||||
|
||||
// if so, it should be the options
|
||||
L.Util.setOptions( this, arguments[arguments.length-1] );
|
||||
}
|
||||
|
||||
// if there aren't any states in options
|
||||
// use the early params
|
||||
if( this.options.states.length === 0 &&
|
||||
typeof icon === 'string' &&
|
||||
typeof onClick === 'function'){
|
||||
|
||||
// turn the options object into a state
|
||||
this.options.states.push({
|
||||
icon: icon,
|
||||
onClick: onClick,
|
||||
title: typeof title === 'string' ? title : ''
|
||||
});
|
||||
}
|
||||
|
||||
// curate and move user's states into
|
||||
// the _states for internal use
|
||||
this._states = [];
|
||||
|
||||
for(var i = 0; i < this.options.states.length; i++){
|
||||
this._states.push( new State(this.options.states[i], this) );
|
||||
}
|
||||
|
||||
this._buildButton();
|
||||
|
||||
this._activateState(this._states[0]);
|
||||
|
||||
},
|
||||
|
||||
_buildButton: function(){
|
||||
|
||||
this.button = L.DomUtil.create(this.options.tagName, '');
|
||||
|
||||
// the next three if statements should be collapsed into the options
|
||||
// when it's time for breaking changes.
|
||||
if (this.tagName === 'button') {
|
||||
this.button.type = 'button';
|
||||
}
|
||||
|
||||
if (this.options.id ){
|
||||
this.button.id = this.options.id;
|
||||
}
|
||||
|
||||
if (this.options.leafletClasses){
|
||||
L.DomUtil.addClass(this.button, 'easy-button-button leaflet-bar-part leaflet-interactive');
|
||||
}
|
||||
|
||||
// don't let double clicks and mousedown get to the map
|
||||
L.DomEvent.addListener(this.button, 'dblclick', L.DomEvent.stop);
|
||||
L.DomEvent.addListener(this.button, 'mousedown', L.DomEvent.stop);
|
||||
|
||||
// take care of normal clicks
|
||||
L.DomEvent.addListener(this.button,'click', function(e){
|
||||
L.DomEvent.stop(e);
|
||||
this._currentState.onClick(this, this._map ? this._map : null );
|
||||
this._map.getContainer().focus();
|
||||
}, this);
|
||||
|
||||
// prep the contents of the control
|
||||
if(this.options.type == 'replace'){
|
||||
this.button.appendChild(this._currentState.icon);
|
||||
} else {
|
||||
for(var i=0;i<this._states.length;i++){
|
||||
this.button.appendChild(this._states[i].icon);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
_currentState: {
|
||||
// placeholder content
|
||||
stateName: 'unnamed',
|
||||
icon: (function(){ return document.createElement('span'); })()
|
||||
},
|
||||
|
||||
|
||||
|
||||
_states: null, // populated on init
|
||||
|
||||
|
||||
|
||||
state: function(newState){
|
||||
|
||||
// activate by name
|
||||
if(typeof newState == 'string'){
|
||||
|
||||
this._activateStateNamed(newState);
|
||||
|
||||
// activate by index
|
||||
} else if (typeof newState == 'number'){
|
||||
|
||||
this._activateState(this._states[newState]);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
_activateStateNamed: function(stateName){
|
||||
for(var i = 0; i < this._states.length; i++){
|
||||
if( this._states[i].stateName == stateName ){
|
||||
this._activateState( this._states[i] );
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_activateState: function(newState){
|
||||
|
||||
if( newState === this._currentState ){
|
||||
|
||||
// don't touch the dom if it'll just be the same after
|
||||
return;
|
||||
|
||||
} else {
|
||||
|
||||
// swap out elements... if you're into that kind of thing
|
||||
if( this.options.type == 'replace' ){
|
||||
this.button.appendChild(newState.icon);
|
||||
this.button.removeChild(this._currentState.icon);
|
||||
}
|
||||
|
||||
if( newState.title ){
|
||||
this.button.title = newState.title;
|
||||
} else {
|
||||
this.button.removeAttribute('title');
|
||||
}
|
||||
|
||||
// update classes for animations
|
||||
for(var i=0;i<this._states.length;i++){
|
||||
L.DomUtil.removeClass(this._states[i].icon, this._currentState.stateName + '-active');
|
||||
L.DomUtil.addClass(this._states[i].icon, newState.stateName + '-active');
|
||||
}
|
||||
|
||||
// update classes for animations
|
||||
L.DomUtil.removeClass(this.button, this._currentState.stateName + '-active');
|
||||
L.DomUtil.addClass(this.button, newState.stateName + '-active');
|
||||
|
||||
// update the record
|
||||
this._currentState = newState;
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
enable: function(){
|
||||
L.DomUtil.addClass(this.button, 'enabled');
|
||||
L.DomUtil.removeClass(this.button, 'disabled');
|
||||
this.button.setAttribute('aria-hidden', 'false');
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
|
||||
disable: function(){
|
||||
L.DomUtil.addClass(this.button, 'disabled');
|
||||
L.DomUtil.removeClass(this.button, 'enabled');
|
||||
this.button.setAttribute('aria-hidden', 'true');
|
||||
return this;
|
||||
},
|
||||
|
||||
|
||||
removeFrom: function (map) {
|
||||
|
||||
this._container.parentNode.removeChild(this._container);
|
||||
this._map = null;
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
onAdd: function(){
|
||||
var containerObj = L.easyBar([this], {
|
||||
position: this.options.position,
|
||||
leafletClasses: this.options.leafletClasses
|
||||
});
|
||||
this._container = containerObj.container;
|
||||
return this._container;
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
L.easyButton = function(/* args will pass automatically */){
|
||||
var args = Array.prototype.concat.apply([L.Control.EasyButton],arguments);
|
||||
return new (Function.prototype.bind.apply(L.Control.EasyButton, args));
|
||||
};
|
||||
|
||||
/*************************
|
||||
*
|
||||
* util functions
|
||||
*
|
||||
*************************/
|
||||
|
||||
// constructor for states so only curated
|
||||
// states end up getting called
|
||||
function State(template, easyButton){
|
||||
|
||||
this.title = template.title;
|
||||
this.stateName = template.stateName ? template.stateName : 'unnamed-state';
|
||||
|
||||
// build the wrapper
|
||||
this.icon = L.DomUtil.create('span', '');
|
||||
|
||||
L.DomUtil.addClass(this.icon, 'button-state state-' + this.stateName.replace(/(^\s*|\s*$)/g,''));
|
||||
this.icon.innerHTML = buildIcon(template.icon);
|
||||
this.onClick = L.Util.bind(template.onClick?template.onClick:function(){}, easyButton);
|
||||
}
|
||||
|
||||
function buildIcon(ambiguousIconString) {
|
||||
|
||||
var tmpIcon;
|
||||
|
||||
// does this look like html? (i.e. not a class)
|
||||
if( ambiguousIconString.match(/[&;=<>"']/) ){
|
||||
|
||||
// if so, the user should have put in html
|
||||
// so move forward as such
|
||||
tmpIcon = ambiguousIconString;
|
||||
|
||||
// then it wasn't html, so
|
||||
// it's a class list, figure out what kind
|
||||
} else {
|
||||
ambiguousIconString = ambiguousIconString.replace(/(^\s*|\s*$)/g,'');
|
||||
tmpIcon = L.DomUtil.create('span', '');
|
||||
|
||||
if( ambiguousIconString.indexOf('fa-') === 0 ){
|
||||
L.DomUtil.addClass(tmpIcon, 'fa ' + ambiguousIconString)
|
||||
} else if ( ambiguousIconString.indexOf('glyphicon-') === 0 ) {
|
||||
L.DomUtil.addClass(tmpIcon, 'glyphicon ' + ambiguousIconString)
|
||||
} else {
|
||||
L.DomUtil.addClass(tmpIcon, /*rollwithit*/ ambiguousIconString)
|
||||
}
|
||||
|
||||
// make this a string so that it's easy to set innerHTML below
|
||||
tmpIcon = tmpIcon.outerHTML;
|
||||
}
|
||||
|
||||
return tmpIcon;
|
||||
}
|
||||
|
||||
})();
|
||||
152
views/third/leaflet-fullscreen/Leaflet.fullscreen.js
Executable file
@@ -0,0 +1,152 @@
|
||||
L.Control.Fullscreen = L.Control.extend({
|
||||
options: {
|
||||
position: 'topleft',
|
||||
title: {
|
||||
'false': 'View Fullscreen',
|
||||
'true': 'Exit Fullscreen'
|
||||
}
|
||||
},
|
||||
|
||||
onAdd: function (map) {
|
||||
var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control');
|
||||
|
||||
this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container);
|
||||
this.link.href = '#';
|
||||
|
||||
this._map = map;
|
||||
this._map.on('fullscreenchange', this._toggleTitle, this);
|
||||
this._toggleTitle();
|
||||
|
||||
L.DomEvent.on(this.link, 'click', this._click, this);
|
||||
|
||||
return container;
|
||||
},
|
||||
|
||||
_click: function (e) {
|
||||
L.DomEvent.stopPropagation(e);
|
||||
L.DomEvent.preventDefault(e);
|
||||
this._map.toggleFullscreen(this.options);
|
||||
},
|
||||
|
||||
_toggleTitle: function() {
|
||||
this.link.title = this.options.title[this._map.isFullscreen()];
|
||||
}
|
||||
});
|
||||
|
||||
L.Map.include({
|
||||
isFullscreen: function () {
|
||||
return this._isFullscreen || false;
|
||||
},
|
||||
|
||||
toggleFullscreen: function (options) {
|
||||
var container = this.getContainer();
|
||||
if (this.isFullscreen()) {
|
||||
if (options && options.pseudoFullscreen) {
|
||||
this._disablePseudoFullscreen(container);
|
||||
} else if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen();
|
||||
} else if (document.webkitCancelFullScreen) {
|
||||
document.webkitCancelFullScreen();
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen();
|
||||
} else {
|
||||
this._disablePseudoFullscreen(container);
|
||||
}
|
||||
} else {
|
||||
if (options && options.pseudoFullscreen) {
|
||||
this._enablePseudoFullscreen(container);
|
||||
} else if (container.requestFullscreen) {
|
||||
container.requestFullscreen();
|
||||
} else if (container.mozRequestFullScreen) {
|
||||
container.mozRequestFullScreen();
|
||||
} else if (container.webkitRequestFullscreen) {
|
||||
container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
|
||||
} else if (container.msRequestFullscreen) {
|
||||
container.msRequestFullscreen();
|
||||
} else {
|
||||
this._enablePseudoFullscreen(container);
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
_enablePseudoFullscreen: function (container) {
|
||||
L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen');
|
||||
this._setFullscreen(true);
|
||||
this.fire('fullscreenchange');
|
||||
},
|
||||
|
||||
_disablePseudoFullscreen: function (container) {
|
||||
L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen');
|
||||
this._setFullscreen(false);
|
||||
this.fire('fullscreenchange');
|
||||
},
|
||||
|
||||
_setFullscreen: function(fullscreen) {
|
||||
this._isFullscreen = fullscreen;
|
||||
var container = this.getContainer();
|
||||
if (fullscreen) {
|
||||
L.DomUtil.addClass(container, 'leaflet-fullscreen-on');
|
||||
} else {
|
||||
L.DomUtil.removeClass(container, 'leaflet-fullscreen-on');
|
||||
}
|
||||
this.invalidateSize();
|
||||
},
|
||||
|
||||
_onFullscreenChange: function (e) {
|
||||
var fullscreenElement =
|
||||
document.fullscreenElement ||
|
||||
document.mozFullScreenElement ||
|
||||
document.webkitFullscreenElement ||
|
||||
document.msFullscreenElement;
|
||||
|
||||
if (fullscreenElement === this.getContainer() && !this._isFullscreen) {
|
||||
this._setFullscreen(true);
|
||||
this.fire('fullscreenchange');
|
||||
} else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {
|
||||
this._setFullscreen(false);
|
||||
this.fire('fullscreenchange');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
L.Map.mergeOptions({
|
||||
fullscreenControl: false
|
||||
});
|
||||
|
||||
L.Map.addInitHook(function () {
|
||||
if (this.options.fullscreenControl) {
|
||||
this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl);
|
||||
this.addControl(this.fullscreenControl);
|
||||
}
|
||||
|
||||
var fullscreenchange;
|
||||
|
||||
if ('onfullscreenchange' in document) {
|
||||
fullscreenchange = 'fullscreenchange';
|
||||
} else if ('onmozfullscreenchange' in document) {
|
||||
fullscreenchange = 'mozfullscreenchange';
|
||||
} else if ('onwebkitfullscreenchange' in document) {
|
||||
fullscreenchange = 'webkitfullscreenchange';
|
||||
} else if ('onmsfullscreenchange' in document) {
|
||||
fullscreenchange = 'MSFullscreenChange';
|
||||
}
|
||||
|
||||
if (fullscreenchange) {
|
||||
var onFullscreenChange = L.bind(this._onFullscreenChange, this);
|
||||
|
||||
this.whenReady(function () {
|
||||
L.DomEvent.on(document, fullscreenchange, onFullscreenChange);
|
||||
});
|
||||
|
||||
this.on('unload', function () {
|
||||
L.DomEvent.off(document, fullscreenchange, onFullscreenChange);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
L.control.fullscreen = function (options) {
|
||||
return new L.Control.Fullscreen(options);
|
||||
};
|
||||
1
views/third/leaflet-fullscreen/Leaflet.fullscreen.min.js
vendored
Executable file
@@ -0,0 +1 @@
|
||||
L.Control.Fullscreen=L.Control.extend({options:{position:"topleft",title:{"false":"View Fullscreen","true":"Exit Fullscreen"}},onAdd:function(map){var container=L.DomUtil.create("div","leaflet-control-fullscreen leaflet-bar leaflet-control");this.link=L.DomUtil.create("a","leaflet-control-fullscreen-button leaflet-bar-part",container);this.link.href="#";this._map=map;this._map.on("fullscreenchange",this._toggleTitle,this);this._toggleTitle();L.DomEvent.on(this.link,"click",this._click,this);return container},_click:function(e){L.DomEvent.stopPropagation(e);L.DomEvent.preventDefault(e);this._map.toggleFullscreen(this.options)},_toggleTitle:function(){this.link.title=this.options.title[this._map.isFullscreen()]}});L.Map.include({isFullscreen:function(){return this._isFullscreen||false},toggleFullscreen:function(options){var container=this.getContainer();if(this.isFullscreen()){if(options&&options.pseudoFullscreen){this._disablePseudoFullscreen(container)}else if(document.exitFullscreen){document.exitFullscreen()}else if(document.mozCancelFullScreen){document.mozCancelFullScreen()}else if(document.webkitCancelFullScreen){document.webkitCancelFullScreen()}else if(document.msExitFullscreen){document.msExitFullscreen()}else{this._disablePseudoFullscreen(container)}}else{if(options&&options.pseudoFullscreen){this._enablePseudoFullscreen(container)}else if(container.requestFullscreen){container.requestFullscreen()}else if(container.mozRequestFullScreen){container.mozRequestFullScreen()}else if(container.webkitRequestFullscreen){container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}else if(container.msRequestFullscreen){container.msRequestFullscreen()}else{this._enablePseudoFullscreen(container)}}},_enablePseudoFullscreen:function(container){L.DomUtil.addClass(container,"leaflet-pseudo-fullscreen");this._setFullscreen(true);this.fire("fullscreenchange")},_disablePseudoFullscreen:function(container){L.DomUtil.removeClass(container,"leaflet-pseudo-fullscreen");this._setFullscreen(false);this.fire("fullscreenchange")},_setFullscreen:function(fullscreen){this._isFullscreen=fullscreen;var container=this.getContainer();if(fullscreen){L.DomUtil.addClass(container,"leaflet-fullscreen-on")}else{L.DomUtil.removeClass(container,"leaflet-fullscreen-on")}this.invalidateSize()},_onFullscreenChange:function(e){var fullscreenElement=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(fullscreenElement===this.getContainer()&&!this._isFullscreen){this._setFullscreen(true);this.fire("fullscreenchange")}else if(fullscreenElement!==this.getContainer()&&this._isFullscreen){this._setFullscreen(false);this.fire("fullscreenchange")}}});L.Map.mergeOptions({fullscreenControl:false});L.Map.addInitHook(function(){if(this.options.fullscreenControl){this.fullscreenControl=new L.Control.Fullscreen(this.options.fullscreenControl);this.addControl(this.fullscreenControl)}var fullscreenchange;if("onfullscreenchange"in document){fullscreenchange="fullscreenchange"}else if("onmozfullscreenchange"in document){fullscreenchange="mozfullscreenchange"}else if("onwebkitfullscreenchange"in document){fullscreenchange="webkitfullscreenchange"}else if("onmsfullscreenchange"in document){fullscreenchange="MSFullscreenChange"}if(fullscreenchange){var onFullscreenChange=L.bind(this._onFullscreenChange,this);this.whenReady(function(){L.DomEvent.on(document,fullscreenchange,onFullscreenChange)});this.on("unload",function(){L.DomEvent.off(document,fullscreenchange,onFullscreenChange)})}});L.control.fullscreen=function(options){return new L.Control.Fullscreen(options)};
|
||||
BIN
views/third/leaflet-fullscreen/fullscreen.png
Executable file
|
After Width: | Height: | Size: 299 B |
BIN
views/third/leaflet-fullscreen/fullscreen@2x.png
Executable file
|
After Width: | Height: | Size: 420 B |
40
views/third/leaflet-fullscreen/leaflet.fullscreen.css
Executable file
@@ -0,0 +1,40 @@
|
||||
.leaflet-control-fullscreen a {
|
||||
background:#fff url(fullscreen.png) no-repeat 0 0;
|
||||
background-size:26px 52px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-fullscreen a {
|
||||
background-position: 2px 2px;
|
||||
}
|
||||
.leaflet-fullscreen-on .leaflet-control-fullscreen a {
|
||||
background-position:0 -26px;
|
||||
}
|
||||
.leaflet-touch.leaflet-fullscreen-on .leaflet-control-fullscreen a {
|
||||
background-position: 2px -24px;
|
||||
}
|
||||
|
||||
/* Do not combine these two rules; IE will break. */
|
||||
.leaflet-container:-webkit-full-screen {
|
||||
width:100%!important;
|
||||
height:100%!important;
|
||||
}
|
||||
.leaflet-container.leaflet-fullscreen-on {
|
||||
width:100%!important;
|
||||
height:100%!important;
|
||||
}
|
||||
|
||||
.leaflet-pseudo-fullscreen {
|
||||
position:fixed!important;
|
||||
width:100%!important;
|
||||
height:100%!important;
|
||||
top:0!important;
|
||||
left:0!important;
|
||||
z-index:99999;
|
||||
}
|
||||
|
||||
@media
|
||||
(-webkit-min-device-pixel-ratio:2),
|
||||
(min-resolution:192dpi) {
|
||||
.leaflet-control-fullscreen a {
|
||||
background-image:url(fullscreen@2x.png);
|
||||
}
|
||||
}
|
||||
BIN
views/third/leaflet/images/layers-2x.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
views/third/leaflet/images/layers.png
Executable file
|
After Width: | Height: | Size: 696 B |
BIN
views/third/leaflet/images/marker-icon-2x.png
Executable file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
views/third/leaflet/images/marker-icon.png
Executable file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
views/third/leaflet/images/marker-shadow.png
Executable file
|
After Width: | Height: | Size: 618 B |
13251
views/third/leaflet/leaflet-src.js
Executable file
1
views/third/leaflet/leaflet-src.map
Executable file
624
views/third/leaflet/leaflet.css
Executable file
@@ -0,0 +1,624 @@
|
||||
/* required styles */
|
||||
|
||||
.leaflet-pane,
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-tile-container,
|
||||
.leaflet-pane > svg,
|
||||
.leaflet-pane > canvas,
|
||||
.leaflet-zoom-box,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-layer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
||||
.leaflet-safari .leaflet-tile {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
}
|
||||
/* hack that prevents hw layers "stretching" when loading new tiles */
|
||||
.leaflet-safari .leaflet-tile-container {
|
||||
width: 1600px;
|
||||
height: 1600px;
|
||||
-webkit-transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
display: block;
|
||||
}
|
||||
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
||||
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
||||
.leaflet-container .leaflet-overlay-pane svg,
|
||||
.leaflet-container .leaflet-marker-pane img,
|
||||
.leaflet-container .leaflet-shadow-pane img,
|
||||
.leaflet-container .leaflet-tile-pane img,
|
||||
.leaflet-container img.leaflet-image-layer {
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
.leaflet-container.leaflet-touch-zoom {
|
||||
-ms-touch-action: pan-x pan-y;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag {
|
||||
-ms-touch-action: pinch-zoom;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.leaflet-tile {
|
||||
filter: inherit;
|
||||
visibility: hidden;
|
||||
}
|
||||
.leaflet-tile-loaded {
|
||||
visibility: inherit;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
width: 0;
|
||||
height: 0;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
z-index: 800;
|
||||
}
|
||||
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
||||
.leaflet-overlay-pane svg {
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
.leaflet-pane { z-index: 400; }
|
||||
|
||||
.leaflet-tile-pane { z-index: 200; }
|
||||
.leaflet-overlay-pane { z-index: 400; }
|
||||
.leaflet-shadow-pane { z-index: 500; }
|
||||
.leaflet-marker-pane { z-index: 600; }
|
||||
.leaflet-tooltip-pane { z-index: 650; }
|
||||
.leaflet-popup-pane { z-index: 700; }
|
||||
|
||||
.leaflet-map-pane canvas { z-index: 100; }
|
||||
.leaflet-map-pane svg { z-index: 200; }
|
||||
|
||||
.leaflet-vml-shape {
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
}
|
||||
.lvml {
|
||||
behavior: url(#default#VML);
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
/* control positioning */
|
||||
|
||||
.leaflet-control {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-top,
|
||||
.leaflet-bottom {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-top {
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-right {
|
||||
right: 0;
|
||||
}
|
||||
.leaflet-bottom {
|
||||
bottom: 0;
|
||||
}
|
||||
.leaflet-left {
|
||||
left: 0;
|
||||
}
|
||||
.leaflet-control {
|
||||
float: left;
|
||||
clear: both;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
float: right;
|
||||
}
|
||||
.leaflet-top .leaflet-control {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.leaflet-left .leaflet-control {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* zoom and fade animations */
|
||||
|
||||
.leaflet-fade-anim .leaflet-tile {
|
||||
will-change: opacity;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-popup {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
-o-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
||||
opacity: 1;
|
||||
}
|
||||
.leaflet-zoom-animated {
|
||||
-webkit-transform-origin: 0 0;
|
||||
-ms-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
will-change: transform;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-tile,
|
||||
.leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
-o-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-zoom-hide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
/* cursors */
|
||||
|
||||
.leaflet-interactive {
|
||||
cursor: pointer;
|
||||
}
|
||||
.leaflet-grab {
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
}
|
||||
.leaflet-crosshair,
|
||||
.leaflet-crosshair .leaflet-interactive {
|
||||
cursor: crosshair;
|
||||
}
|
||||
.leaflet-popup-pane,
|
||||
.leaflet-control {
|
||||
cursor: auto;
|
||||
}
|
||||
.leaflet-dragging .leaflet-grab,
|
||||
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
||||
.leaflet-dragging .leaflet-marker-draggable {
|
||||
cursor: move;
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
}
|
||||
|
||||
/* marker & overlays interactivity */
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-pane > svg path,
|
||||
.leaflet-tile-container {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.leaflet-marker-icon.leaflet-interactive,
|
||||
.leaflet-image-layer.leaflet-interactive,
|
||||
.leaflet-pane > svg path.leaflet-interactive {
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
/* visual tweaks */
|
||||
|
||||
.leaflet-container {
|
||||
background: #ddd;
|
||||
outline: 0;
|
||||
}
|
||||
.leaflet-container a {
|
||||
color: #0078A8;
|
||||
}
|
||||
.leaflet-container a.leaflet-active {
|
||||
outline: 2px solid orange;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
border: 2px dotted #38f;
|
||||
background: rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
|
||||
/* general typography */
|
||||
.leaflet-container {
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
/* general toolbar styles */
|
||||
|
||||
.leaflet-bar {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #ccc;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-control-layers-toggle {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
}
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.leaflet-bar a:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom: none;
|
||||
}
|
||||
.leaflet-bar a.leaflet-disabled {
|
||||
cursor: default;
|
||||
background-color: #f4f4f4;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
|
||||
/* zoom control */
|
||||
|
||||
.leaflet-control-zoom-in,
|
||||
.leaflet-control-zoom-out {
|
||||
font: bold 18px 'Lucida Console', Monaco, monospace;
|
||||
text-indent: 1px;
|
||||
}
|
||||
.leaflet-control-zoom-out {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-zoom-in {
|
||||
font-size: 22px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-zoom-out {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
|
||||
/* layers control */
|
||||
|
||||
.leaflet-control-layers {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers.png);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
.leaflet-retina .leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers-2x.png);
|
||||
background-size: 26px 26px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers-toggle {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
.leaflet-control-layers .leaflet-control-layers-list,
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
||||
display: none;
|
||||
}
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.leaflet-control-layers-expanded {
|
||||
padding: 6px 10px 6px 6px;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
}
|
||||
.leaflet-control-layers-scrollbar {
|
||||
overflow-y: scroll;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.leaflet-control-layers-selector {
|
||||
margin-top: 2px;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.leaflet-control-layers label {
|
||||
display: block;
|
||||
}
|
||||
.leaflet-control-layers-separator {
|
||||
height: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
margin: 5px -10px 5px -6px;
|
||||
}
|
||||
|
||||
/* Default icon URLs */
|
||||
.leaflet-default-icon-path {
|
||||
background-image: url(images/marker-icon.png);
|
||||
}
|
||||
|
||||
|
||||
/* attribution and scale controls */
|
||||
|
||||
.leaflet-container .leaflet-control-attribution {
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
margin: 0;
|
||||
}
|
||||
.leaflet-control-attribution,
|
||||
.leaflet-control-scale-line {
|
||||
padding: 0 5px;
|
||||
color: #333;
|
||||
}
|
||||
.leaflet-control-attribution a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.leaflet-control-attribution a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.leaflet-container .leaflet-control-attribution,
|
||||
.leaflet-container .leaflet-control-scale {
|
||||
font-size: 11px;
|
||||
}
|
||||
.leaflet-left .leaflet-control-scale {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control-scale {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.leaflet-control-scale-line {
|
||||
border: 2px solid #777;
|
||||
border-top: none;
|
||||
line-height: 1.1;
|
||||
padding: 2px 5px 1px;
|
||||
font-size: 11px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child) {
|
||||
border-top: 2px solid #777;
|
||||
border-bottom: none;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
||||
border-bottom: 2px solid #777;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-attribution,
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
box-shadow: none;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
border: 2px solid rgba(0,0,0,0.2);
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
|
||||
/* popup */
|
||||
|
||||
.leaflet-popup {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.leaflet-popup-content-wrapper {
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.leaflet-popup-content {
|
||||
margin: 13px 19px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.leaflet-popup-content p {
|
||||
margin: 18px 0;
|
||||
}
|
||||
.leaflet-popup-tip-container {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -20px;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-popup-tip {
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
padding: 1px;
|
||||
|
||||
margin: -10px auto 0;
|
||||
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-content-wrapper,
|
||||
.leaflet-popup-tip {
|
||||
background: white;
|
||||
color: #333;
|
||||
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 4px 4px 0 0;
|
||||
border: none;
|
||||
text-align: center;
|
||||
width: 18px;
|
||||
height: 14px;
|
||||
font: 16px/14px Tahoma, Verdana, sans-serif;
|
||||
color: #c3c3c3;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button:hover {
|
||||
color: #999;
|
||||
}
|
||||
.leaflet-popup-scrolled {
|
||||
overflow: auto;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
||||
zoom: 1;
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
width: 24px;
|
||||
margin: 0 auto;
|
||||
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
||||
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip-container {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-control-zoom,
|
||||
.leaflet-oldie .leaflet-control-layers,
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper,
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
|
||||
/* div icon */
|
||||
|
||||
.leaflet-div-icon {
|
||||
background: #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
|
||||
/* Tooltip */
|
||||
/* Base styles for the element that has a tooltip */
|
||||
.leaflet-tooltip {
|
||||
position: absolute;
|
||||
padding: 6px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 3px;
|
||||
color: #222;
|
||||
white-space: nowrap;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-tooltip.leaflet-clickable {
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-tooltip-top:before,
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border: 6px solid transparent;
|
||||
background: transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* Directions */
|
||||
|
||||
.leaflet-tooltip-bottom {
|
||||
margin-top: 6px;
|
||||
}
|
||||
.leaflet-tooltip-top {
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-top:before {
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-top:before {
|
||||
bottom: 0;
|
||||
margin-bottom: -12px;
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before {
|
||||
top: 0;
|
||||
margin-top: -12px;
|
||||
margin-left: -6px;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-left {
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-right {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
top: 50%;
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before {
|
||||
right: 0;
|
||||
margin-right: -12px;
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-right:before {
|
||||
left: 0;
|
||||
margin-left: -12px;
|
||||
border-right-color: #fff;
|
||||
}
|
||||