"\t<select class=\"select border data_$2\" data-column=\"$3\" data-id=\"\" data-selected=\"\" data-table=\"${4:table}\" id=\"$2_$3\"></select>",
"</div>"]
},
+ "checkbox": {
+ "scope":"html",
+ "prefix": "checkbox",
+ "body": ["<div class=\"cell\" style=\"width: 100%\">","\t<div class=\"container\">",
+ "\t\t<div class=\"cell-row\">",
+ "\t\t\t<div class=\"cell\" style=\"width: 40px;\">",
+ "\t\t\t\t<input class=\"check data_${2:formname}\" id=\"$2_${3:column}\"> data-column=\"$3\" data-table=\"$2\" data-id=\"\" value=\"\" type=\"checkbox\" />",
+ "\t\t\t</div>",
+ "\t\t\t<div class=\"cell\">${4: checkbox label text}</div>","\t\t</div>","\t</div>","</div>"]
+ },
"textarea": {
"scope":"html",
"prefix":"textarea",
-webkit-appearance: none;
margin: 0;
}
+.checkboxlabel{
+ font-size: 11pt;
+ padding: 6px;
+ padding-left: 1px;
+}
/* input[type=checkbox]{
appearance: none;
display:inline-block;
}
if (isset($vars["sid"]) && ($vars["sid"] != "")){
$vars["session"] = $sess->getSession($vars["sid"]);
+ } else {
+ error_log("No Session!");
}
$params = array();
$html["session"] = $vars["session"];
+ error_log(print_r($vars,true));
$params = json_decode(file_get_contents('php://input'), true);
//$params =$_GET;
$html["params"] = $params;
- if(count($vars["session"]) == 0) {
+ if((!isset($vars["session"]) || !is_array($vars["session"])) || count($vars["session"]) == 0) {
header('Content-Type: application/json');
echo json_encode($html);
exit(1);
$vars["config"] = $cfg;
$vars["requri"] = $_SERVER["REQUEST_URI"];
$postdata = [];
+ error_log(print_r(ini_get_all(),true));
if (isset($_POST)){
$postdata = $_POST;
}
setcookie($cfg["cookie"], $vars["session"]["id_session"], null, "/", null, false, true );
}
}
- if(count($vars["session"]) == 0) {
+ if ((!isset($vars["session"]) || !is_array($vars["session"])) || count($vars["session"]) == 0) {
$vars["skeleton"] = 'login.html';
if (($vars["page"] != 'login/forgotpassword.html') && ($vars["page"] != 'login/message.html')){
$vars["page"] = 'login/login.html';
-
-
let gallery = {
id_gallery: null,
gallery_folder: null,
selectable: true,
selectableRangeMode:"click",
- autoResize:false,
+ //autoResize:false,
rowFormatter:function(row, data){
//console.log(row);
add: function(){
myapp.viewdialog("addgalleryitem");
},
- uploadItem: function(){
+ uploadItem: async function(){
let data = {};
data["folder"] = "galleries/" + this.gallery_folder;
+ let publishnow = 0;
+ if (document.getElementById("addgalleryitem_publishnow").checked){
+ publishnow = 1;
+ }
myapp.closedlg("addgalleryitem");
var uplfiles = document.getElementById("addgalleryitem_file");
//console.log("files:",uplfiles.files);
- let progresssteps = uplfiles.files.length * 2;
- let cstep = 1;
- myapp.openDataLoad("Téléchargement en cours","Attendez s.v.p.!",progresssteps);
- for (let i = 0; i < uplfiles.files.length; i++) {
- console.log("Upload File " + uplfiles.files[i].name,cstep);
- myapp.setDataLoadMsg("Upload File " + uplfiles.files[i].name,cstep);
- let filedata = postFileSync(uplfiles.files[i],data);
- cstep++;
- let retdata = postDataSync({"cl":"gallery","fn":"addItem","idgallery":gallery.id_gallery,"filename":filedata.file});
- cstep++;
- }
- gallery.gettabledata();
- myapp.closeDataLoad();
- return false;
+ //let progresssteps = uplfiles.files.length;
+ //let cstep = 1;
+ myapp.openDataLoad("Téléchargement en cours","Attendez s.v.p.!",null);
+ postFile(uplfiles,data).then(filesdata => {
+ console.log(filesdata);
+ postData({"cl":"gallery","fn":"addItem","idgallery":gallery.id_gallery,"files":filesdata.file,"publish":publishnow}).then(res => {
+ gallery.gettabledata();
+ myapp.closeDataLoad();
+ });
+ });
},
+ // uploadRequest: async function(uplfile,upldata){
+ // await postFile(uplfile,upldata).then(filedata => {
+ // console.log("file uploaded ", filedata.file);
+ // postData({"cl":"gallery","fn":"addItem","idgallery":gallery.id_gallery,"filename":filedata.file}).then( data => {
+ // console.log("finally data", data);
+ // // if (last == true){
+ // // gallery.gettabledata();
+ // // myapp.closeDataLoad();
+ // // }
+ // // return data.data;
+ // // })
+ // });
+ // });
+ // },
// addItem: function(filename,last){
// console.log("Add Item " + filename);
// postData({"cl":"gallery","fn":"addItem","idgallery":gallery.id_gallery,"filename":filename}).then( data => {
},
changeDefaultImage: function(file){
- document.getElementById("gpreview").src = 'media/galleries/' + file;
+ document.getElementById("gpreview").src = 'media/galleries/' + file+ "?" + moment().format('YYYYMMDDhhmmss') ;
}
}
return response.json();
}
-function postDataSync(data = {}) {
- const response = await fetch(api + 'db.php', {
- method: 'POST',
- mode: 'same-origin',
- cache: 'no-cache',
- credentials: 'same-origin',
- headers: {
- 'Content-Type': 'application/json'
-
- },
- redirect: 'follow',
- referrerPolicy: 'strict-origin',
- body: JSON.stringify(data)
- });
-
- return response.json();
-}
-
async function postFile(fileobj,data = {}) {
var mfd = new FormData();
for (var o in data){
mfd.append(o,data[o]);
}
- console.log("Upload:" + fileobj.name);
- mfd.append('file', fileobj,fileobj.name);
- // }
- const response = await fetch(api + 'upload.php', {
- method: 'POST',
- // mode: 'same-origin',
- // cache: 'no-cache',
- // credentials: 'same-origin',
- // headers: {
- // 'Content-Type': undefined
- // },
- // redirect: 'follow',
- // referrerPolicy: 'strict-origin',
- body: mfd
- });
- console.log("postFIle response",response);
- return response.json();
-}
-
-function postFileSync(fileobj,data = {}) {
- var mfd = new FormData();
- for (var o in data){
- mfd.append(o,data[o]);
+ for (let i = 0; i < fileobj.files.length; i++) {
+ mfd.append('file'+ i, fileobj.files[i],fileobj.files[i].name);
}
- mfd.append('file', fileobj,fileobj.name);
+
const response = await fetch(api + 'upload.php', {
method: 'POST',
// mode: 'same-origin',
// referrerPolicy: 'strict-origin',
body: mfd
});
- console.log("postFIle response",response);
+ //console.log("postFile response",response);
return response.json();
}
+// var report ={
+// generate: function(repname,filename,data){
+// showdataloaddlg("Création PDF encours","Attendez s.v.p.");
+// postData("report.cgi",{"generate":repname,"file": filename + ".pdf","data":data}).then (data => {closedataloaddlg();report.openreport(data);});
+// return false;
+// },
+// openreport(data){
+// if (data && data.file){
+// window.open(api + "report.cgi?open=" + encodeURIComponent(data.file));
+// }
+// }
+// }
+
// async function syncData(url,username,password, data = {}) {
// //var decodedString = Base64.decode(encodedString);
// let hh = {};
class database {
private $conn;
private $dbconf;
- private $debug=0;
+ private $debug=1;
public function __construct($pdbconf){
$this->dbconf = $pdbconf;
try {
}
public function getItems($id){
- $sql = "select * from galleryitems where id_gallery='".$id."' order by filename;";
+ $sql = "select * from galleryitems where id_gallery='".$id."' order by publishdate desc NULLS LAST,filename desc;";
return $this->dbh->queryarray($sql);
}
public function setDefaultImage($thumbname,$galleryfolder){
$thbinfo = pathinfo($thumbname);
- copy($this->cfg["adminmediapath"]."/galleries/".$galleryfolder."/thumb/".$thumbname,$this->cfg["adminmediapath"]."/galleries/".$galleryfolder."/".$galleryfolder.".".$thbinfo['extension']);
- copy($this->cfg["webmediapath"]."/galleries/".$galleryfolder."/thumb/".$thumbname,$this->cfg["webmediapath"]."/galleries/".$galleryfolder."/".$galleryfolder.".".$thbinfo['extension']);
+ copy($this->cfg["adminmediapath"]."/galleries/".$galleryfolder."/thumb/".$thumbname,$this->cfg["adminmediapath"]."/galleries/".$galleryfolder.".".$thbinfo['extension']);
+ copy($this->cfg["webmediapath"]."/galleries/".$galleryfolder."/thumb/".$thumbname,$this->cfg["webmediapath"]."/galleries/".$galleryfolder.".".$thbinfo['extension']);
$sql = "update galleries set picture=".$galleryfolder.".".$thbinfo['extension']." where link=".$galleryfolder.";";
return array("folder" => $galleryfolder, "file" => $galleryfolder.".".$thbinfo['extension']);
}
- public function addItem($filename,$idgallery){
+ public function addItem($files,$idgallery,$publish){
error_log("Add gallery item: ".$filename." => ".$idgallery);
$gld = $this->dbh->query("select id,link from galleries where id=".$this->dbh->value($idgallery).";");
- $filepath = $this->cfg["adminmediapath"].'galleries/'.$gld["link"].'/'.$filename;
- if (file_exists($filepath)){
- $mt = mime_content_type($filepath);
- $newitemid = $this->dbh->newuuid();
- $thumbname = $filename;
- if (strpos($mt,'image/') !== 0){
- $findo =pathinfo($filename);
- $thumbname=$finfo["basename"].'.png';
+ foreach ($files as $filename){
+ $filepath = $this->cfg["adminmediapath"].'galleries/'.$gld["link"].'/'.$filename;
+ if (file_exists($filepath)){
+ $mt = mime_content_type($filepath);
+ $newitemid = $this->dbh->newuuid();
+ $thumbname = $filename;
+ if (strpos($mt,'image/') !== 0){
+ $findo =pathinfo($filename);
+ $thumbname=$finfo["basename"].'.png';
+ }
+ if ($publish == 1){
+
+ }
+ $data = array("id" => $newitemid,"id_gallery" => $gld["id"],"filename" => $filename,"filetype" => $mt,"thumbname" => $thumbname, "publishdate" => (($publish==1)?date('Y-m-d'):null));
+ $inssql = $this->dbh->createInsertDDL("public","galleryitems",$data);
+ error_log("SQL:".$inssql);
+ $this->dbh->exec($inssql);
+ $this->setItemCopies($newitemid);
}
- $data = array("id" => $newitemid,"id_gallery" => $gld["id"],"filename" => $filename,"filetype" => $mt,"thumbname" => $thumbname);
- $inssql = $this->dbh->createInsertDDL("public","galleryitems",$data);
- error_log("SQL:".$inssql);
- $this->dbh->exec($inssql);
- $this->setItemCopies($newitemid);
- } else {
- return 0;
- }
+ }
return 1;
}
if (($sid !== null) && ($sid != "")){
$this->session = $this->dbh->query("select u.id as id_user, u.username, u.id_usergroup as usergroup, s.id as id_session , s.sessiondata from sessions s join users u on (s.id_user=u.id) where s.id='".$sid."' and s.remote_addr='".$_SERVER["REMOTE_ADDR"]."';");
}
+ if (count($this->session) == 0){
+ return null;
+ }
return $this->session;
}
<input type="file" class="input data_addgalleryitem " id="addgalleryitem_file" data-column="filename" data-table="galleryitems" multiple data-id="" value="" />
</div>
</div>
+ <div class="row">
+ <div class="cell" style="width: 100%">
+ <div class="container">
+ <div class="cell-row">
+ <div class="cell" style="width: 40px;">
+ <input class="check data_addgallery" id="addgalleryitem_publishnow" data-column="pushlishnow" data-table="galleryitems" data-id="" value="" type="checkbox" checked/>
+ </div>
+ <div class="checkboxlabel cell">publier directement</div>
+ </div>
+ </div>
+ </div>
+ </div>
</form>
</div>
<a class="bar-item toolbarbtn" href="index.html"><span class="icon-home" style="font-size: 18px;"></span>Home</a>
<div class="bar-item PageHeadTitle">Galleries</div>
<div class="hide-small">
- <button class="bar-item toolbarbtn right" onclick="galleries.add();"><span class="icon-plus" style="font-size: 17px;"></span>ajouter</button>
+ <!-- <button class="bar-item toolbarbtn right" onclick="galleries.add();"><span class="icon-plus" style="font-size: 17px;"></span>ajouter</button> -->
<button class="bar-item toolbarbtn right" onclick="galleries.edit();"><span class="icon-edit" style="font-size: 17px;"></span>édit.</button>
- <button class="bar-item toolbarbtn right" onclick="galleries.confirmRemove();"><span class="icon-trash" style="font-size: 17px;"></span>suppr.</button>
- <button class="bar-item toolbarbtn right" onclick="galleries.duplicate()"><span class="icon-duplicate" style="font-size: 17px;"></span>dupl.</button>
+ <!-- <button class="bar-item toolbarbtn right" onclick="galleries.confirmRemove();"><span class="icon-trash" style="font-size: 17px;"></span>suppr.</button> -->
+ <!-- <button class="bar-item toolbarbtn right" onclick="galleries.duplicate()"><span class="icon-duplicate" style="font-size: 17px;"></span>dupl.</button> -->
</div>
<div class="hide-large hide-medium">
<button class="bar-item toolbarbtn right" onclick="myapp.togglemenu('mobilemenu_galleries');"><span class="icon-menu xxlarge" style="font-size: 20px;"></span></button>
</div>
<div class="toolbar" id="mobilemenu_galleries" style="display: none;">
<div class="bar">
- <button class="bar-item toolbarbtn" onclick="galleries.add();"><span class="icon-plus" style="font-size: 17px;"></span>ajouter</button>
+ <!-- <button class="bar-item toolbarbtn" onclick="galleries.add();"><span class="icon-plus" style="font-size: 17px;"></span>ajouter</button> -->
<button class="bar-item toolbarbtn" onclick="galleries.edit();"><span class="icon-edit" style="font-size: 17px;"></span>édit.</button>
- <button class="bar-item toolbarbtn" onclick="galleries.confirmRemove();"><span class="icon-trash" style="font-size: 17px;"></span>suppr.</button>
- <button class="bar-item toolbarbtn" onclick="galleries.duplicate()"><span class="icon-duplicate" style="font-size: 17px;"></span>dupl.</button>
+ <!-- <button class="bar-item toolbarbtn" onclick="galleries.confirmRemove();"><span class="icon-trash" style="font-size: 17px;"></span>suppr.</button> -->
+ <!-- <button class="bar-item toolbarbtn" onclick="galleries.duplicate()"><span class="icon-duplicate" style="font-size: 17px;"></span>dupl.</button> -->
</div>
</div>
</div>
<div class="bar-item PageHeadTitle">Gallerie</div>
<div class="hide-small">
<button class="bar-item toolbarbtn right" onclick="gallery.setAsDefault();"><span class="icon-image" style="font-size: 17px;"></span>Vorschau-Bild</button>
- <button class="bar-item toolbarbtn right" onclick="gallery.editImage();"><span class="icon-image" style="font-size: 17px;"></span>Bild edit.</button>
+ <!-- <button class="bar-item toolbarbtn right" onclick="gallery.editImage();"><span class="icon-image" style="font-size: 17px;"></span>Bild edit.</button> -->
<button class="bar-item toolbarbtn right" onclick="gallery.add();"><span class="icon-plus" style="font-size: 17px;"></span>ajouter</button>
<button class="bar-item toolbarbtn right" onclick="gallery.edit();"><span class="icon-edit" style="font-size: 17px;"></span>édit.</button>
<button class="bar-item toolbarbtn right" onclick="gallery.confirmRemove();"><span class="icon-trash" style="font-size: 17px;"></span>suppr.</button>
require("lib/config.php");
require("lib/database.php");
require("lib/session.php");
+ ini_set('upload_max_filesize', your_value_here);
$db = new database($cfg["db"]);
$sess = new session($db);
$vars = array();
$html = array();
+
if (isset($_COOKIE[$cfg["cookie"]])){
$vars["sid"] = $_COOKIE[$cfg["cookie"]];
}
// error_log("mediafolder: ".$cfg["adminmediapath"].$mfolder." exists!");
// }
$cnum = date('YmdHis');
- $cfiles = glob($cfg["adminmediapath"].$mfolder .'/'. "*");
- $xfiles = count($cfiles) + 1;
- $cnum = $cnum."_".$xfiles;
- $uplfi = pathinfo($_FILES['file']['name']);
- $newfilename = basename($mfolder)."_".$cnum.".".strtolower($uplfi['extension']);
- move_uploaded_file($_FILES['file']['tmp_name'],$cfg["adminmediapath"].$mfolder.'/'.$newfilename);
- $html["file"] = $newfilename;
+
+ $newfnames = array();
+ foreach ($_FILES as $file){
+ $cfiles = glob($cfg["adminmediapath"].$mfolder .'/'. "*");
+ $xfiles = count($cfiles) + 1;
+ $cnumnew = $cnum."_".$xfiles;
+ $uplfi = pathinfo($file['name']);
+ $newfilename = basename($mfolder)."_".$cnumnew.".".strtolower($uplfi['extension']);
+ move_uploaded_file($file['tmp_name'],$cfg["adminmediapath"].$mfolder.'/'.$newfilename);
+ array_push($newfnames,$newfilename);
+
+ }
+ $html["file"] = $newfnames;
}
header('Content-Type: application/json');
echo json_encode($html);
<?php
- require("lib/config.php");
- require("lib/database.php");
- require("lib/modules/RendezVous.php");
- require("lib/modules/Gallery.php");
- require("lib/modules/Shop.php");
- require("lib/modules/WebArticles.php");
+ require('lib/vendor/mustache/mustache/src/Mustache/Autoloader.php');
+ Mustache_Autoloader::register();
+ $mainclasses = scandir("lib");
+ foreach ($mainclasses as $key => $value)
+ {
+ if ((is_file("lib/".$value) && strpos($value,'.') !== 0) && substr_compare($value, ".php", -strlen(".php")) === 0){
+ require("lib/".$value);
+ }
+ }
+ $moduleclasses = scandir("lib/modules");
+ foreach ($moduleclasses as $key => $value)
+ {
+ if ((is_file("lib/modules/".$value) && strpos($value,'.') !== 0) && substr_compare($value, ".php", -strlen(".php")) === 0){
+ require("lib/modules/".$value);
+ }
+ }
+
$db = new database($cfg["db"]);
+
$vars = array();
$html = array();
-
+
$params = array();
+
$params = json_decode(file_get_contents('php://input'), true);
+ #$params =$_GET;
$html["params"] = $params;
- if (isset($params["get"])){
- if (strpos($params["get"], 'rdv_') === 0) {
- $rdv = new RendezVous($db);
- if ($params["get"] == 'rdv_services'){
- $html["data"] = $rdv->getServices();
- } elseif ($params["get"] == 'rdv_dates'){
- $html["data"] = $rdv->getRDVDates();
- } elseif ($params["get"] == 'rdv_freehours'){
- $html["data"] = $rdv->getRDVDayFreeTimes($db->securetext($params->{daydate}));
+
+ if (isset($params["cl"]) && isset($params["fn"])){
+ if (class_exists($params["cl"])) {
+ $strclass=$params["cl"];
+ $cl = new $strclass($db,$cfg);
+ if (!method_exists($cl,$params["fn"])){
+ $html["error"] = "class ".$params["cl"]."->method ".$params["fn"]." does not exist!";
}
- } elseif (strpos($params["get"], 'gallery_') === 0){
- $gal = new Gallery($db);
- if ($params["get"] == 'gallery_gallery'){
- $html["data"] = $gal->getGallery($params->{name});
- } elseif ($params["get"] == 'gallery_galleries'){
- $html["data"] = $gal->getGalleries($params->{names});
- } elseif ($params["get"] == 'gallery_galleryitems'){
- $html["data"] = $gal->getGalleryItems($params->{name});
+ $r = new ReflectionMethod($strclass, $params["fn"]);
+ $metparams = $r->getParameters();
+ $fnp = array();
+ $prcnt = 0;
+ foreach ($metparams as $p) {
+ if (isset($params[$p->getName()])){
+ array_push($fnp,$params[$p->getName()]);
+ }
+ if ($p->isOptional() === false){
+ $prcnt++;
+ }
+ $html["fnparams"][$p->getName()] = (($p->isOptional() === true)?"optional":"required");
}
- } elseif (strpos($params["get"], 'shop_') === 0){
- $shop = new Shop($db);
- } elseif (strpos($params["get"], 'page_') === 0){
- $shop = new WebPage($db);
- }
-
- }
- elseif (isset($params["fn"])){
- if (strpos($params["fn"], 'rdv_') === 0) {
- $rdv = new RendezVous($db);
- if ($params["fn"] == 'rdv_confirm'){
-
- }elseif ($params["fn"] == 'rdv_cancel'){
-
+ if (count($fnp) < $prcnt){
+ $html["error"] = "Function has ".$prcnt." required parameters!";
+ } else {
+ $html["data"] = call_user_func_array(array($cl, $params["fn"]), $fnp);
}
- }
- // else (strpos($params["fn"], 'shop_') === 0){
- // //$shop = new Shop($db);
- // if ($params["fn"] == 'shop_order'){
-
- // }
- // }
-
+ } else {
+ $html["error"] = "class ".$params["cl"]." does not exist!";
+ }
+ }
+ // elseif(isset($params["savefield"])){
+ // $html["data"] = $db->exec("UPDATE ".$params["table"]." set ".$params["column"]."=".$db->value($params["value"])." where id=".$db->value($params["id"]).";");
+ // }
+ // elseif(isset($params["saveform"])){
+ // $updsql = $db->createUpdateDDL($params["schema"],$params["table"],$params["idents"],$params["data"]);
+ // $html["sql"] = $updsql;
+ // $html["data"] = $db->exec($updsql);
+ // }
- }
- elseif(isset($params["save"])){
-
- }
header('Content-Type: application/json');
echo json_encode($html);
-?>
\ No newline at end of file
+
+?>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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:xlink="http://www.w3.org/1999/xlink"
+ id="svg5760"
+ height="128"
+ width="128"
+ version="1.0">
+ <metadata
+ id="metadata87">
+ <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>
+ <defs
+ id="defs5762">
+ <linearGradient
+ id="linearGradient8733">
+ <stop
+ id="stop8735"
+ style="stop-color:#f7f7f7;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8737"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8508">
+ <stop
+ id="stop8510"
+ style="stop-color:#545464;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8512"
+ style="stop-color:#727286;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient8104">
+ <stop
+ id="stop8106"
+ style="stop-color:#e0e0e8;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop8108"
+ style="stop-color:#80809b;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6446">
+ <stop
+ id="stop6448"
+ style="stop-color:#ff7575;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6450"
+ style="stop-color:#ffbbbb;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6392">
+ <stop
+ id="stop6394"
+ style="stop-color:#959595;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6396"
+ style="stop-color:#b1b1b1;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6386">
+ <stop
+ id="stop6388"
+ style="stop-color:#7e7e7e;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6390"
+ style="stop-color:#9e9e9e;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6380">
+ <stop
+ id="stop6382"
+ style="stop-color:#5d5d5d;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6384"
+ style="stop-color:#868686;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6374">
+ <stop
+ id="stop6376"
+ style="stop-color:#4a4a4a;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6378"
+ style="stop-color:#747474;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6350">
+ <stop
+ id="stop6352"
+ style="stop-color:#4a4a4a;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6354"
+ style="stop-color:#e3e3e3;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6342">
+ <stop
+ id="stop6344"
+ style="stop-color:#5d5d5d;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6346"
+ style="stop-color:#e4e4e4;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6328">
+ <stop
+ id="stop6330"
+ style="stop-color:#7e7e7e;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6332"
+ style="stop-color:#e3e3e3;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6320">
+ <stop
+ id="stop6322"
+ style="stop-color:#959595;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6324"
+ style="stop-color:#e4e4e4;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6312">
+ <stop
+ id="stop6314"
+ style="stop-color:#b8b8b8;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6316"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6294">
+ <stop
+ id="stop6296"
+ style="stop-color:#484848;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6298"
+ style="stop-color:#818181;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="42.770351"
+ y1="122.5565"
+ x2="83.518837"
+ y2="5.5990281"
+ id="linearGradient6300"
+ xlink:href="#linearGradient6294"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.770168"
+ y1="109.3042"
+ x2="43.770168"
+ y2="7.925601"
+ id="linearGradient6318"
+ xlink:href="#linearGradient6312"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.550217"
+ y1="112.82341"
+ x2="15.475091"
+ y2="37.290359"
+ id="linearGradient6326"
+ xlink:href="#linearGradient6320"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.081409"
+ y1="114.9356"
+ x2="15.538831"
+ y2="37.926037"
+ id="linearGradient6334"
+ xlink:href="#linearGradient6328"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.703526"
+ y1="120.3791"
+ x2="15.397327"
+ y2="41.059544"
+ id="linearGradient6356"
+ xlink:href="#linearGradient6350"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.550217"
+ y1="112.82341"
+ x2="112.29162"
+ y2="90.427177"
+ id="linearGradient6366"
+ xlink:href="#linearGradient6392"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.081409"
+ y1="114.9356"
+ x2="112.29162"
+ y2="93.016655"
+ id="linearGradient6368"
+ xlink:href="#linearGradient6386"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.547997"
+ y1="117.42406"
+ x2="112.29162"
+ y2="95.563515"
+ id="linearGradient6370"
+ xlink:href="#linearGradient6380"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.703526"
+ y1="120.3791"
+ x2="112.29162"
+ y2="97.827461"
+ id="linearGradient6372"
+ xlink:href="#linearGradient6374"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="43.547997"
+ y1="117.42406"
+ x2="15.397327"
+ y2="39.193195"
+ id="linearGradient6423"
+ xlink:href="#linearGradient6342"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="63.880966"
+ y1="89.984947"
+ x2="63.880966"
+ y2="39.510597"
+ id="linearGradient6452"
+ xlink:href="#linearGradient6446"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="25.98385"
+ y1="21.211182"
+ x2="33.244446"
+ y2="16.998817"
+ id="linearGradient8514"
+ xlink:href="#linearGradient8508"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0625001,0,0,1.3796296,-1.89323,-6.12777)" />
+ <radialGradient
+ cx="30.351164"
+ cy="21.367149"
+ r="5.1293926"
+ fx="30.351164"
+ fy="21.367149"
+ id="radialGradient8668"
+ xlink:href="#linearGradient8104"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.09429106,2.1170458,-1.138571,-0.05071181,57.54103,-42.235)" />
+ <filter
+ id="filter8676">
+ <feGaussianBlur
+ id="feGaussianBlur8678"
+ stdDeviation="1.1237103" />
+ </filter>
+ <linearGradient
+ x1="45.741814"
+ y1="106.85056"
+ x2="45.741814"
+ y2="11.620106"
+ id="linearGradient8739"
+ xlink:href="#linearGradient8733"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <path
+ d="m 13.55981,29.57925 v 14.77522 c 0,0 19.40509,58.90236 28.6367,80.17497 0.74978,1.72773 4.25203,0.89622 5.80803,0.434 20.71817,-6.15447 70.18496,-23.00394 70.53705,-22.62843 0,0 0.17309,-5.68037 0.17532,-9.27529 0,-2.48554 -1.56957,-5.30116 -2.08055,-6.5959 C 107.3695,62.98292 93.39035,20.54591 88.6801,8.11631 87.9097,6.08334 84.64387,5.50017 81.99053,6.39897 Z"
+ id="path8672"
+ style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter8676)" />
+ <path
+ d="m 38.160499,23.80438 a 6.9943756,7.6629548 0 1 1 -13.988751,0 6.9943756,7.6629548 0 1 1 13.988751,0 z"
+ id="path8498"
+ style="fill:url(#linearGradient8514);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.81609;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:7.26435, 7.26435;stroke-dashoffset:13.0758;stroke-opacity:1" />
+ <use
+ transform="translate(9.53155,-3.08575)"
+ id="use8516"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path8498" />
+ <use
+ transform="translate(19.0631,-6.17151)"
+ id="use8518"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path8498" />
+ <use
+ transform="translate(28.59465,-9.25726)"
+ id="use8520"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path8498" />
+ <path
+ d="M 11.66464,27.68408 V 42.4593 c 0,0 19.40509,58.90236 28.6367,80.17497 0.74978,1.72773 4.25203,0.89622 5.80803,0.434 20.71817,-6.15447 70.18496,-23.00394 70.53705,-22.62843 0,0 0.17309,-5.68037 0.17532,-9.27529 0,-2.48554 -1.56957,-5.30116 -2.08055,-6.5959 C 105.47433,61.08775 91.49518,18.65074 86.78493,6.22114 86.01453,4.18817 82.7487,3.605 80.09536,4.5038 Z"
+ id="path5783"
+ style="fill:url(#linearGradient6300);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 15.397327,40.90401 c 9.092288,29.312955 16.665337,50.393433 27.99514,79.31956 L 112.29162,98.138518 V 87.873633 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 L 15.708384,30.328068 Z"
+ id="path6302"
+ style="fill:url(#linearGradient6356);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 83.21875,8.25 -67.5,22.0625 -0.28125,9.03125 c 0.003,0.0098 -0.003,0.02143 0,0.03125 C 24.503492,68.586878 31.944197,88.635136 43.25,117.5 L 112.28125,95.03125 V 87.875 C 101.00147,60.274693 92.91336,34.79354 83.21875,8.25 Z"
+ id="path6304"
+ style="fill:url(#linearGradient6423);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 83.21875,8.25 -67.5,22.0625 -0.21875,7.625 c 9.077873,29.256883 16.276615,48.106205 27.59375,77 l 69.1875,-21.46875 V 87.875 C 101.00147,60.274681 92.913365,34.79354 83.21875,8.25 Z"
+ id="path6306"
+ style="fill:url(#linearGradient6334);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 83.21875,8.25 -67.5,22.0625 -0.1875,6.46875 c 9.06427,29.19727 16.445599,47.294965 27.75,76.15625 l 69,-21.75 V 87.875 C 101.00147,60.274693 92.91336,34.79354 83.21875,8.25 Z"
+ id="path6308"
+ style="fill:url(#linearGradient6326);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 43.392467,120.22357 112.29162,98.138518 V 87.873633 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 Z"
+ id="path6358"
+ style="fill:url(#linearGradient6372);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 43.236939,117.50182 112.29162,95.54754 V 87.873633 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 Z"
+ id="path6360"
+ style="fill:url(#linearGradient6370);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 43.08141,114.9356 112.29162,93.008721 V 87.873633 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 Z"
+ id="path6362"
+ style="fill:url(#linearGradient6368);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 43.275821,112.95261 112.29162,90.423933 v -2.5503 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 Z"
+ id="path6364"
+ style="fill:url(#linearGradient6366);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="m 15.747266,33.717821 c 8.675008,28.687034 15.682262,47.169458 27.748506,77.200249 L 112.29162,87.873633 C 101.01184,60.273315 92.902391,34.786553 83.207776,8.2430133 L 15.708384,30.328068 Z"
+ id="path6310"
+ style="fill:url(#linearGradient6318);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 45.096085,107.50178 108.41281,87.003559 C 98.332657,62.536321 89.644822,37.372923 81.992883,11.691578 L 18.676157,32.493476 c 8.006225,25.402977 16.039829,50.792264 26.419928,75.008304 z"
+ id="path6438"
+ style="fill:url(#linearGradient8739);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 20.73992,39.40726 83.72782,18.92339"
+ id="path6456"
+ style="fill:none;fill-rule:evenodd;stroke:#636464;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:10.8;stroke-opacity:1;marker-start:none;marker-end:none" />
+ <use
+ transform="translate(9.57286,-3.12935)"
+ id="use8096"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path7482" />
+ <use
+ transform="translate(19.14572,-6.2587)"
+ id="use8098"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path7482" />
+ <use
+ transform="translate(28.71858,-9.38806)"
+ id="use8102"
+ x="0"
+ y="0"
+ width="128"
+ height="128"
+ xlink:href="#path7482" />
+ <path
+ d="m 31.40625,19.72179 c -1.55287,-0.0385 -2.97112,1.0235 -3.4375,2.59375 -0.39788,1.26972 -0.38997,2.66513 -0.0312,4 l 0.875,-0.28125 c -0.0653,-0.64109 -0.007,-1.27353 0.1875,-1.875 0.38663,-1.26376 1.66688,-2.03766 2.96875,-1.75 1.45349,0.27577 2.72643,1.40827 3.46875,2.75 0.89996,1.59124 1.15593,3.75999 0.0625,5.125 -1.09607,0.58884 -0.61949,0.73542 -0.78125,1.5625 l 2.125,-0.6875 c 0.0336,-0.0396 0.0618,-0.0831 0.0937,-0.125 1.50739,-1.93836 1.14692,-5.02163 -0.0937,-7.28125 -1.02336,-1.90531 -2.74623,-3.5459 -4.75,-3.9375 -0.22434,-0.0511 -0.46566,-0.0883 -0.6875,-0.0937 z"
+ id="path7482"
+ style="fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:10.8;stroke-opacity:1" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:23.4372px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.585929"
+ x="57.859184"
+ y="29.788393"
+ id="text113"
+ transform="matrix(0.77679743,0.38882855,-0.51527639,1.0294136,0,0)"><tspan
+ id="tspan111"
+ x="57.859184"
+ y="29.788393"
+ style="stroke-width:0.585929">Events</tspan></text>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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"
+ enable-background="new 0 0 120 120"
+ xml:space="preserve"
+ height="120px"
+ width="120px"
+ version="1.0"
+ y="0px"
+ x="0px"
+ viewBox="0 0 120 120"
+ id="svg174"><metadata
+ id="metadata180"><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><defs
+ id="defs178">
+
+
+</defs>
+<g
+ id="g170">
+
+
+
+
+
+
+
+
+ <g
+ id="g189"><g
+ id="Layer_15"
+ opacity="0.19">
+ <path
+ d="m 15.413,37.116 71.89,-17.145 c 0,0 12.998,39.112 29.947,50.217 0,0 0.958,0.708 0.75,1.25 -0.141,0.365 -0.888,0.621 -1.515,0.873 -11.396,4.57 -63.97,25.402 -78.985,33.314 0,0 -7.963,-4.705 -17.314,-22.531 C 13.998,71.292 4.702,42.478 4.702,42.478 l 3.653,-0.73 0.828,-2.97 2.679,-0.537 3.556,-1.12 z"
+ id="path2" />
+ </g><g
+ id="Layer_8">
+ <g
+ id="Layer_3">
+ <linearGradient
+ id="SVGID_1_"
+ y2="85.660004"
+ gradientUnits="userSpaceOnUse"
+ x2="70.039001"
+ y1="26.042999"
+ x1="41.009998">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop5" />
+ <stop
+ stop-color="#B8B8B8"
+ offset="1"
+ id="stop7" />
+ </linearGradient>
+ <path
+ d="m 14.536,35.947 71.89,-17.145 c 0,0 7.014,38.965 23.963,50.069 0,0 -69.747,32.926 -74.13,34.971 0,0 -7.598,-4.092 -16.95,-21.918 C 13.115,70.121 3.819,41.306 3.819,41.306 l 3.653,-0.73 0.828,-2.971 2.679,-0.536 3.556,-1.12 z"
+ fill="url(#SVGID_1_)"
+ id="path10"
+ style="fill:url(#SVGID_1_)" />
+ <linearGradient
+ id="SVGID_2_"
+ y2="61.278999"
+ gradientUnits="userSpaceOnUse"
+ x2="112.06"
+ y1="61.278999"
+ x1="2.7598">
+ <stop
+ stop-color="#8C94A3"
+ offset="0"
+ id="stop12" />
+ <stop
+ stop-color="#616161"
+ offset="1"
+ id="stop14" />
+ </linearGradient>
+ <path
+ d="M 35.871,104.56 C 35.709,104.476 27.993,100.242 18.582,82.3 12.325,70.357 3.051,41.58 3.042,41.555 l -0.282,-0.873 4.059,-0.813 0.829,-2.972 3.12,-0.623 3.522,-1.108 0.246,0.78 -0.19,-0.796 72.731,-17.346 0.154,0.852 c 0.01,0.02 1.743,9.686 5.593,20.747 3.831,11.066 9.842,23.464 18.012,28.783 l 1.227,0.801 -1.325,0.623 c 0,0.004 -69.744,32.924 -74.131,34.973 l -0.374,0.174 -0.364,-0.19 z M 10.013,56.911 c 3.089,8.662 6.965,18.816 10.021,24.632 6.968,13.283 12.921,18.828 15.391,20.732 0.39,0.301 0.684,0.506 0.886,0.639 C 39.784,101.285 57.454,92.949 74.618,84.85 89.744,77.709 104.457,70.766 108.773,68.729 93.659,57.348 86.921,25.407 85.793,19.794 l -71.056,16.941 -3.548,1.12 -2.233,0.444 -0.828,2.971 -3.242,0.649 c 0.708,2.166 2.673,8.107 5.13,14.986 z"
+ fill="url(#SVGID_2_)"
+ id="path17"
+ style="fill:url(#SVGID_2_)" />
+ </g>
+ <g
+ id="Layer_5">
+ <linearGradient
+ id="SVGID_3_"
+ y2="96.068001"
+ gradientUnits="userSpaceOnUse"
+ x2="31.704"
+ y1="43.903999"
+ x1="8.0332003">
+ <stop
+ stop-color="#E8E8E8"
+ offset=".1099"
+ id="stop20" />
+ <stop
+ stop-color="#B7B7B7"
+ offset=".1209"
+ id="stop22" />
+ <stop
+ stop-color="#BDBDBD"
+ offset=".5"
+ id="stop24" />
+ <stop
+ stop-color="#A1A1A0"
+ offset="1"
+ id="stop26" />
+ </linearGradient>
+ <path
+ d="M 21.062,70.332 C 18.033,63.396 9.665,42.473 9.665,42.473 l -1.899,0.731 c 0,0 12.858,40.037 25.424,55.816 4.478,5.625 1.169,1.607 1.169,1.607 v -1.61 c 0,0 -10.152,-21.487 -13.297,-28.688 z"
+ fill="url(#SVGID_3_)"
+ id="path29"
+ style="fill:url(#SVGID_3_)" />
+ <linearGradient
+ id="SVGID_4_"
+ y2="87.929001"
+ gradientUnits="userSpaceOnUse"
+ x2="41.183998"
+ y1="36.577"
+ x1="17.882">
+ <stop
+ stop-color="#E8E8E8"
+ offset="0"
+ id="stop31" />
+ <stop
+ stop-color="#BDBDBD"
+ offset="1"
+ id="stop33" />
+ </linearGradient>
+ <path
+ d="m 10.834,38.966 c 0,0 7.598,21.041 11.543,30.685 3.945,9.645 13.297,28.348 13.297,28.348 L 48.678,86.31 27.345,33.998 Z"
+ fill="url(#SVGID_4_)"
+ id="path36"
+ style="fill:url(#SVGID_4_)" />
+ </g>
+ <g
+ id="Layer_7">
+ <linearGradient
+ id="SVGID_5_"
+ y2="71.879997"
+ gradientUnits="userSpaceOnUse"
+ x2="39.993999"
+ y1="35.227001"
+ x1="23.361">
+ <stop
+ stop-color="#D6D6D6"
+ offset="0"
+ id="stop39" />
+ <stop
+ stop-color="#969696"
+ offset="1"
+ id="stop41" />
+ </linearGradient>
+ <path
+ d="m 11.272,40.135 c 0,0 16.949,25.133 19.872,34.484 2.923,9.351 21.771,-4.531 21.771,-4.531 L 36.258,32.099 Z"
+ fill="url(#SVGID_5_)"
+ id="path44"
+ style="fill:url(#SVGID_5_)" />
+ </g>
+ <g
+ id="Layer_6">
+ <path
+ d="m 9.665,31.605 c 0,0 43.25,-13.248 60.298,-15.099 C 83.92,14.992 86.23,15.24 86.23,15.24 c 0,0 11.763,43.908 28.712,55.014 l -1.826,0.949 c 0,0 -69.771,27.16 -76.2,31.836 0,0 -0.17,-13.961 -9.132,-40.457 C 21.69,44.547 9.671,31.604 9.671,31.604 Z"
+ fill="#ffffff"
+ id="path47" />
+ <linearGradient
+ id="SVGID_6_"
+ y2="59.518002"
+ gradientUnits="userSpaceOnUse"
+ x2="116.56"
+ y1="59.518002"
+ x1="8.1781998">
+ <stop
+ stop-color="#8C94A3"
+ offset="0"
+ id="stop49" />
+ <stop
+ stop-color="#616161"
+ offset="1"
+ id="stop51" />
+ </linearGradient>
+ <path
+ d="M 36.097,103.05 C 36.09,103.042 36.058,99.646 34.904,92.886 33.747,86.126 31.475,76.056 27.008,62.847 23.992,53.928 19.498,46.244 15.763,40.796 12.025,35.352 9.072,32.173 9.065,32.164 L 9.666,31.609 9.905,32.391 9.666,31.609 9.065,32.164 8.179,31.208 9.425,30.827 c 0.033,-0.005 43.22,-13.252 60.449,-15.13 10.527,-1.142 14.448,-1.287 15.791,-1.287 0.443,0 0.612,0.017 0.655,0.021 l 0.555,0.061 0.146,0.541 c 0.013,0.022 2.929,10.931 7.969,23.244 5.015,12.31 12.232,25.981 20.4,31.296 l 1.171,0.764 c 0,0 -20.586,8.422 -38.827,15.791 -18.194,7.344 -37.383,15.396 -40.336,17.578 l -1.283,0.928 -0.017,-1.59 z M 28.558,62.32 c 7.361,21.76 8.819,35.123 9.106,39.297 C 43.16,98.529 60.395,91.375 77.12,84.607 94.872,77.433 113.374,70.146 113.374,70.146 97.732,58.386 87.071,21.183 85.609,16.042 c -1.29,0.002 -5.216,0.154 -15.561,1.277 -8.402,0.906 -23.484,4.678 -36.408,8.216 -10.366,2.838 -19.348,5.523 -22.515,6.481 2.868,3.334 12.245,14.967 17.437,30.301 z"
+ fill="url(#SVGID_6_)"
+ id="path54"
+ style="fill:url(#SVGID_6_)" />
+ </g>
+ </g><g
+ id="Layer_9">
+ <path
+ stroke="#979797"
+ d="m 29.099,45.688 c 0,0 18.045,-7.16 27.981,-10.74 8.738,-3.148 26.228,-7.744 26.228,-7.744"
+ fill="none"
+ id="path58" />
+ </g><g
+ id="Layer_10">
+ <linearGradient
+ id="SVGID_7_"
+ y2="39.804001"
+ gradientUnits="userSpaceOnUse"
+ x2="36.139999"
+ y1="35.323002"
+ x1="23.476999">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop61" />
+ <stop
+ stop-color="#F4F4F4"
+ offset=".1283"
+ id="stop63" />
+ <stop
+ stop-color="#D7D7D7"
+ offset=".354"
+ id="stop65" />
+ <stop
+ stop-color="#A7A7A7"
+ offset=".6504"
+ id="stop67" />
+ <stop
+ stop-color="#666"
+ offset="1"
+ id="stop69" />
+ </linearGradient>
+ <polygon
+ points="27.199,43.836 22.913,35.167 32.362,31.271 36.648,39.843 "
+ fill="url(#SVGID_7_)"
+ id="polygon72"
+ style="fill:url(#SVGID_7_)" />
+ </g><g
+ id="Layer_11">
+ <g
+ fill="#7f7f7f"
+ id="g83">
+ <path
+ d="m 39.429,31.211 c -0.294,-0.601 -0.81,-0.833 -1.237,-0.718 l -0.485,0.13 c -0.059,0.017 -0.09,-0.02 -0.106,-0.05 l -0.129,-0.265 c -0.021,-0.04 -0.018,-0.063 0.04,-0.081 0.059,-0.017 0.158,-0.034 0.334,-0.086 0.18,-0.041 0.443,-0.107 0.842,-0.224 0.398,-0.117 0.635,-0.209 0.773,-0.252 0.153,-0.045 0.267,-0.031 0.406,0.032 0.089,0.044 3.616,1.937 3.815,2.042 0.199,0.104 3.209,1.625 3.65,1.868 l 0.046,-0.014 -0.591,-1.208 c -0.444,-0.905 -0.7,-1.399 -0.972,-1.9 -0.207,-0.393 -0.753,-1.373 -0.909,-1.524 -0.218,-0.228 -0.51,-0.305 -0.838,-0.208 l -0.374,0.11 c -0.048,0.014 -0.081,0.001 -0.107,-0.051 l -0.128,-0.264 c -0.02,-0.041 -0.005,-0.067 0.041,-0.081 0.165,-0.048 0.554,-0.128 1.303,-0.349 0.703,-0.208 0.97,-0.319 1.123,-0.364 0.083,-0.026 0.108,10e-4 0.128,0.042 l 0.125,0.255 c 0.02,0.04 0.012,0.077 -0.035,0.091 l -0.317,0.092 c -0.316,0.093 -0.348,0.299 -0.183,0.694 0.287,0.693 0.78,1.701 1.105,2.362 l 1.862,3.798 c 0.07,0.145 0.107,0.25 0.061,0.264 -0.141,0.04 -0.307,-0.051 -0.362,-0.081 -0.021,-0.016 -1.081,-0.566 -2.195,-1.144 -1.255,-0.645 -2.567,-1.328 -2.669,-1.368 -0.177,-0.063 -3.484,-1.777 -3.594,-1.837 l -0.07,0.02 1.105,2.256 c 0.463,0.946 1.369,2.575 1.491,2.771 0.241,0.383 0.407,0.555 0.723,0.462 l 0.351,-0.104 c 0.083,-0.025 0.109,0.003 0.14,0.064 l 0.109,0.223 c 0.031,0.062 0.028,0.084 -0.054,0.109 -0.118,0.034 -0.836,0.211 -1.151,0.304 -0.247,0.072 -1.04,0.341 -1.157,0.374 -0.047,0.014 -0.067,-0.002 -0.093,-0.052 l -0.131,-0.265 c -0.014,-0.029 -0.017,-0.063 0.041,-0.081 l 0.398,-0.117 c 0.34,-0.099 0.41,-0.26 0.223,-0.775 -0.07,-0.199 -0.615,-1.365 -1.501,-3.174 z"
+ id="path75" />
+ <path
+ d="m 50.926,30.098 c 0.094,-0.027 1.327,-0.438 1.458,-0.5 0.315,-0.151 0.369,-0.26 0.321,-0.604 -0.015,-0.112 -0.067,-0.33 -0.15,-0.527 -0.025,-0.051 10e-4,-0.081 0.047,-0.094 l 0.297,-0.076 c 0.06,-0.018 0.102,0.015 0.11,0.059 0.05,0.185 0.459,1.018 0.534,1.17 0.175,0.356 0.459,0.831 0.588,1.037 0.025,0.05 0.012,0.077 -0.03,0.101 l -0.241,0.107 c -0.054,0.025 -0.094,0.003 -0.14,-0.065 -0.088,-0.124 -0.273,-0.337 -0.364,-0.44 -0.175,-0.191 -0.376,-0.307 -0.698,-0.248 -0.575,0.112 -1.383,0.351 -1.571,0.405 l 0.309,0.629 c 0.269,0.549 0.775,1.53 0.875,1.732 0.271,0.526 0.663,0.642 1.056,0.596 0.255,-0.028 0.609,-0.098 0.902,-0.184 0.199,-0.058 0.782,-0.241 1.017,-0.334 0.189,-0.078 0.65,-0.342 0.845,-0.654 0.091,-0.144 0.389,-1.068 0.438,-1.352 0.011,-0.06 0.025,-0.111 0.112,-0.102 l 0.232,0.038 c 0.074,0.012 0.087,0.042 0.093,0.135 l 0.11,1.676 c 0.01,0.104 -0.043,0.187 -0.183,0.229 -0.06,0.017 -0.321,0.083 -1.029,0.28 -0.703,0.207 -1.845,0.53 -3.673,1.066 -0.433,0.128 -0.756,0.236 -0.989,0.304 -0.243,0.083 -0.39,0.138 -0.496,0.169 -0.071,0.019 -0.114,0.012 -0.14,-0.041 l -0.134,-0.274 c -0.02,-0.041 0.01,-0.062 0.093,-0.084 l 0.467,-0.138 c 0.54,-0.159 0.552,-0.243 0.368,-0.62 l -1.182,-2.409 -0.487,-0.996 c -0.414,-0.844 -1.058,-2.107 -1.119,-2.206 -0.208,-0.312 -0.36,-0.348 -0.793,-0.221 l -0.422,0.124 c -0.06,0.018 -0.099,0.018 -0.129,-0.043 L 47.094,27.47 c -0.017,-0.032 -10e-4,-0.059 0.057,-0.075 0.257,-0.076 0.683,-0.167 1.456,-0.394 l 0.517,-0.152 c 1.159,-0.341 2.315,-0.692 3.474,-1.034 0.188,-0.054 0.401,-0.139 0.458,-0.157 0.06,-0.018 0.092,-0.004 0.119,0.023 0.117,0.127 1.315,1.369 1.399,1.46 0.032,0.038 0.046,0.068 0.011,0.102 l -0.137,0.134 c -0.024,0.03 -0.087,0.013 -0.109,-0.004 -0.043,-0.035 -1.382,-0.745 -1.739,-0.815 -0.316,-0.071 -0.702,-0.094 -1.026,-0.013 l -2.105,0.573 z"
+ id="path77" />
+ <path
+ d="m 61.129,30.039 0.023,-0.007 c -0.037,-0.187 -0.42,-5.041 -0.581,-5.48 -0.028,-0.084 -0.196,-0.234 -0.359,-0.324 -0.167,-0.091 -0.354,-0.116 -0.564,-0.055 l -0.294,0.086 c -0.059,0.017 -0.079,0.002 -0.109,-0.061 l -0.12,-0.244 c -0.02,-0.041 -0.023,-0.075 0.047,-0.094 0.105,-0.031 0.533,-0.122 1.445,-0.391 0.984,-0.289 1.415,-0.45 1.532,-0.485 0.069,-0.021 0.096,0.007 0.115,0.047 l 0.125,0.254 c 0.021,0.041 0.023,0.075 -0.047,0.094 l -0.468,0.139 c -0.295,0.086 -0.29,0.341 -0.13,0.503 l 4.328,4.565 0.023,-0.007 c -0.029,-0.363 -0.433,-5.151 -0.718,-5.73 -0.079,-0.163 -0.247,-0.288 -0.564,-0.196 l -0.315,0.094 c -0.069,0.02 -0.097,-0.007 -0.127,-0.067 l -0.114,-0.234 c -0.02,-0.041 -0.023,-0.074 0.061,-0.098 0.115,-0.034 0.541,-0.124 1.266,-0.338 0.658,-0.192 0.982,-0.324 1.076,-0.351 0.07,-0.02 0.092,-0.004 0.116,0.047 l 0.125,0.253 c 0.02,0.041 0.035,0.071 -0.048,0.095 l -0.28,0.083 c -0.199,0.058 -0.309,0.219 -0.334,0.412 -0.024,0.17 0.4,6.755 0.404,7.312 -0.003,0.129 0.013,0.297 -0.116,0.335 -0.141,0.042 -0.238,-0.021 -0.366,-0.147 l -4.902,-4.942 -0.024,0.007 c 0.03,0.305 0.457,6.156 0.442,6.29 -0.01,0.119 -0.034,0.23 -0.141,0.26 -0.093,0.028 -0.185,0.007 -0.291,-0.099 l -5.8,-5.737 c -0.255,-0.25 -0.46,-0.283 -0.683,-0.218 l -0.398,0.118 c -0.059,0.017 -0.09,-0.021 -0.11,-0.063 l -0.119,-0.242 c -0.025,-0.053 -0.023,-0.075 0.058,-0.1 0.095,-0.028 0.472,-0.103 1.269,-0.338 0.844,-0.247 1.31,-0.419 1.427,-0.454 0.082,-0.025 0.108,0.002 0.123,0.033 l 0.124,0.254 c 0.025,0.051 0.028,0.084 -0.054,0.109 l -0.199,0.058 c -0.305,0.09 -0.34,0.264 -0.16,0.467 z"
+ id="path79" />
+ <path
+ d="m 71.345,28.116 c -0.185,-0.049 -0.27,-0.058 -0.327,-0.041 -0.072,0.021 -0.083,0.105 -0.104,0.227 -0.017,0.132 -0.067,0.16 -0.15,0.185 -0.07,0.021 -0.156,-0.013 -0.186,-0.131 -0.077,-0.269 -0.593,-1.593 -0.702,-1.898 -0.019,-0.064 0.005,-0.071 0.051,-0.085 l 0.181,-0.042 c 0.046,-0.015 0.081,0 0.11,0.06 0.171,0.32 0.358,0.651 1,1.057 0.585,0.373 1.364,0.458 2.01,0.269 0.703,-0.207 1.408,-0.844 0.96,-1.76 -0.514,-1.047 -1.57,-1.178 -2.645,-1.188 -0.42,-0.004 -1.388,-0.01 -2.115,-0.319 -0.551,-0.222 -0.984,-0.64 -1.313,-1.312 -0.25,-0.508 -0.13,-1.112 0.088,-1.515 0.253,-0.469 0.771,-0.783 1.403,-0.969 0.666,-0.196 1.268,-0.174 1.505,-0.152 0.133,0.019 0.185,-0.009 0.222,-0.076 l 0.089,-0.167 c 0.04,-0.059 0.065,-0.088 0.125,-0.105 0.058,-0.018 0.132,0.053 0.177,0.144 0.175,0.356 0.836,1.348 0.955,1.568 0.026,0.053 0.023,0.075 -0.017,0.1 l -0.127,0.071 c -0.031,0.02 -0.059,0.017 -0.084,-0.01 -0.24,-0.267 -0.587,-0.619 -1.279,-0.915 -0.462,-0.201 -0.941,-0.224 -1.491,-0.063 -1.043,0.307 -1.091,1.089 -0.837,1.606 0.14,0.284 0.375,0.601 0.798,0.779 0.485,0.195 1.25,0.224 1.634,0.216 0.917,-0.013 1.657,-0.036 2.301,0.29 0.459,0.224 0.863,0.558 1.191,1.23 0.59,1.2 0.248,2.474 -1.296,2.928 -0.824,0.24 -1.504,0.197 -2.127,0.018 z"
+ id="path81" />
+ </g>
+ </g><g
+ id="Layer_13">
+ <line
+ y2="32.439999"
+ x2="79.801003"
+ stroke="#999999"
+ y1="36.530998"
+ x1="68.306999"
+ fill="none"
+ id="line86" />
+ <linearGradient
+ id="SVGID_8_"
+ y2="46.185001"
+ gradientUnits="userSpaceOnUse"
+ x2="89.502998"
+ y1="51.348"
+ x1="73.625">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop88" />
+ <stop
+ stop-color="#9C9C9C"
+ offset="1"
+ id="stop90" />
+ </linearGradient>
+ <polygon
+ stroke="#cccccc"
+ points="96.264,56.5 79.021,64.488 68.404,39.648 84.77,32.829 "
+ fill="url(#SVGID_8_)"
+ id="polygon93"
+ style="fill:url(#SVGID_8_)" />
+ </g><g
+ id="Layer_16">
+ <linearGradient
+ id="SVGID_9_"
+ y2="66.746002"
+ gradientUnits="userSpaceOnUse"
+ x2="37.953999"
+ y1="66.746002"
+ x1="10.891">
+ <stop
+ stop-color="#424242"
+ offset="0"
+ id="stop103" />
+ <stop
+ stop-color="#8C94A3"
+ offset="1"
+ id="stop105" />
+ </linearGradient>
+ <path
+ d="M 34.91,87.414 C 33.278,79.252 30.848,69.006 27.657,60.695 22.13,46.29 10.913,32.226 10.891,32.202 h 0.002 l 0.456,-0.366 c 0.01,0.012 11.275,14.126 16.853,28.65 6.42,16.727 9.749,41.079 9.753,41.094 l -0.58,0.076 C 37.371,101.636 36.541,95.574 34.91,87.41 Z"
+ fill="url(#SVGID_9_)"
+ id="path108"
+ style="fill:url(#SVGID_9_)" />
+ </g><g
+ id="Layer_1"
+ stroke="#8b9298"
+ stroke-width="0.5"
+ fill="none">
+ <line
+ y2="42.473"
+ x1="31.437"
+ x2="55.546001"
+ y1="50.801998"
+ id="line111" />
+ <line
+ y2="41.450001"
+ x1="31.875"
+ x2="63.290001"
+ y1="53.139"
+ id="line113" />
+ <line
+ y2="44.373001"
+ x1="32.896999"
+ x2="60.952"
+ y1="54.747002"
+ id="line115" />
+ <line
+ y2="45.688"
+ x1="33.335999"
+ x2="64.313004"
+ y1="56.938"
+ id="line117" />
+ <line
+ y2="47.147999"
+ x1="34.213001"
+ x2="66.211998"
+ y1="58.838001"
+ id="line119" />
+ <line
+ y2="48.902"
+ x1="34.943001"
+ x2="66.211998"
+ y1="61.028999"
+ id="line121" />
+ <line
+ y2="50.948002"
+ x1="35.528"
+ x2="66.358002"
+ y1="63.075001"
+ id="line123" />
+ <line
+ y2="52.409"
+ x1="36.403999"
+ x2="68.987999"
+ y1="65.267998"
+ id="line125" />
+ <line
+ y2="55.039001"
+ x1="37.134998"
+ x2="67.819"
+ y1="67.313004"
+ id="line127" />
+ <line
+ y2="57.23"
+ x1="38.158001"
+ x2="67.674004"
+ y1="69.212997"
+ id="line129" />
+ <line
+ y2="59.568001"
+ x1="39.181"
+ x2="67.527"
+ y1="71.403999"
+ id="line131" />
+ <line
+ y2="60.153"
+ x1="39.473"
+ x2="70.596001"
+ y1="73.448997"
+ id="line133" />
+ <line
+ y2="62.199001"
+ x1="40.349998"
+ x2="71.473"
+ y1="75.787003"
+ id="line135" />
+ <line
+ y2="64.828003"
+ x1="41.226002"
+ x2="70.888"
+ y1="77.688004"
+ id="line137" />
+ <line
+ y2="65.121002"
+ x1="42.249001"
+ x2="74.833"
+ y1="80.171997"
+ id="line139" />
+ <line
+ y2="68.335999"
+ x1="42.833"
+ x2="72.933998"
+ y1="81.924004"
+ id="line141" />
+ <line
+ y2="70.527"
+ x1="43.709999"
+ x2="73.664001"
+ y1="84.700996"
+ id="line143" />
+ <line
+ y2="73.012001"
+ x1="44.441002"
+ x2="73.957001"
+ y1="86.746002"
+ id="line145" />
+ <line
+ y2="74.18"
+ x1="45.171001"
+ x2="75.271004"
+ y1="89.084"
+ id="line147" />
+ <line
+ y2="75.640999"
+ x1="46.486"
+ x2="78.925003"
+ y1="91.130997"
+ id="line149" />
+ <line
+ y2="80.609001"
+ x1="46.778999"
+ x2="73.518997"
+ y1="93.760002"
+ id="line151" />
+ <line
+ y2="59.715"
+ x1="80.531998"
+ x2="99.234001"
+ y1="67.896004"
+ id="line153" />
+ <line
+ y2="60.883999"
+ x1="81.115997"
+ x2="99.819"
+ y1="69.066002"
+ id="line155" />
+ <line
+ y2="63.222"
+ x1="81.75"
+ x2="97.969002"
+ y1="70.234001"
+ id="line157" />
+ <line
+ y2="64.537003"
+ x1="81.992996"
+ x2="98.211998"
+ y1="71.551003"
+ id="line159" />
+ <line
+ y2="64.244003"
+ x1="82.577003"
+ x2="101.62"
+ y1="72.816002"
+ id="line161" />
+ <line
+ y2="67.07"
+ x1="82.772003"
+ x2="98.698997"
+ y1="73.986"
+ id="line163" />
+ <line
+ y2="71.987999"
+ x1="83.307999"
+ x2="94.413002"
+ y1="76.810997"
+ id="line165" />
+ <line
+ y2="68.773003"
+ x1="83.307999"
+ x2="98.308998"
+ y1="75.056999"
+ id="line167" />
+ </g></g>
+ </g>
+</svg>
{
$vars["page"] = 'error.html';
}
- if (file_exists($cfg["templatepath"].'/pages/'.$vars["page"].'.json')){
- $db = new database($cfg["db"]);
- $tmpdata = file_get_contents($cfg["templatepath"].'/pages/'.$vars["page"].'.json');
- try {
- $vars["data"] = json_decode($tmpdata,true);
- foreach ($vars["data"] as $key => $value) {
- if ($value["sql"]){
- if ($value["sqltype"] == "query"){
- $vars["data"][$key] = $db->query($value["sql"]);
- } elseif ($value["sqltype"] == "queryarray"){
- $vars["data"][$key] = $db->queryarray($value["sql"]);
- }
- }
- }
- } catch(JsonException $je){
- fwrite(STDERR, "JSON ERROR: ".$je->getMessage()."\n");
- }
+ // if (file_exists($cfg["templatepath"].'/pages/'.$vars["page"].'.json')){
+ // $db = new database($cfg["db"]);
+ // $tmpdata = file_get_contents($cfg["templatepath"].'/pages/'.$vars["page"].'.json');
+ // try {
+ // $vars["data"] = json_decode($tmpdata,true);
+ // foreach ($vars["data"] as $key => $value) {
+ // if ($value["sql"]){
+ // if ($value["sqltype"] == "query"){
+ // $vars["data"][$key] = $db->query($value["sql"]);
+ // } elseif ($value["sqltype"] == "queryarray"){
+ // $vars["data"][$key] = $db->queryarray($value["sql"]);
+ // }
+ // }
+ // }
+ // } catch(JsonException $je){
+ // fwrite(STDERR, "JSON ERROR: ".$je->getMessage()."\n");
+ // }
- }
+ // }
$vars["page"] = 'pages/'.$vars["page"];
$m = new Mustache_Engine(array(
'loader' => new Mustache_Loader_FilesystemLoader($cfg["templatepath"]),
'entity_flags' => ENT_HTML5
));
-
+ $fpinfo = pathinfo($vars["page"]);
+ $vars["pagescript"] = $fpinfo['filename'].".js";
$vars["pagedata"] = $m->render($vars["page"],$vars);
$vars["version"] = date("YmdHis");
$mainsite = $m->render('index.html',$vars);
-if ('serviceWorker' in navigator) {
- navigator.serviceWorker
- .register('./js/sw.js');
-}
+// if ('serviceWorker' in navigator) {
+// navigator.serviceWorker
+// .register('./js/sw.js');
+// }
-let deferredPrompt;
-const addBtn = document.querySelector('.add-button');
-addBtn.style.display = 'none';
+// let deferredPrompt;
+// const addBtn = document.querySelector('.add-button');
+// addBtn.style.display = 'none';
-window.addEventListener('beforeinstallprompt', (e) => {
-// Prevent Chrome 67 and earlier from automatically showing the prompt
-e.preventDefault();
-// Stash the event so it can be triggered later.
-deferredPrompt = e;
-// Update UI to notify the user they can add to home screen
-addBtn.style.display = 'block';
+// window.addEventListener('beforeinstallprompt', (e) => {
+// // Prevent Chrome 67 and earlier from automatically showing the prompt
+// e.preventDefault();
+// // Stash the event so it can be triggered later.
+// deferredPrompt = e;
+// // Update UI to notify the user they can add to home screen
+// addBtn.style.display = 'block';
-addBtn.addEventListener('click', (e) => {
- // hide our user interface that shows our A2HS button
- addBtn.style.display = 'none';
- // Show the prompt
- deferredPrompt.prompt();
- // Wait for the user to respond to the prompt
- deferredPrompt.userChoice.then((choiceResult) => {
- if (choiceResult.outcome === 'accepted') {
- console.log('User accepted the A2HS prompt');
- } else {
- console.log('User dismissed the A2HS prompt');
- }
- deferredPrompt = null;
- });
-});
-});
+// addBtn.addEventListener('click', (e) => {
+// // hide our user interface that shows our A2HS button
+// addBtn.style.display = 'none';
+// // Show the prompt
+// deferredPrompt.prompt();
+// // Wait for the user to respond to the prompt
+// deferredPrompt.userChoice.then((choiceResult) => {
+// if (choiceResult.outcome === 'accepted') {
+// console.log('User accepted the A2HS prompt');
+// } else {
+// console.log('User dismissed the A2HS prompt');
+// }
+// deferredPrompt = null;
+// });
+// });
+// });
function initpage(){
-
+ index.init();
+}
+
+let index= {
+ init: function(){
+ postData({"cl":"webpage","fn":"getsections","page":"index"}).then(data => {
+ for (var i in data.data){
+ if (document.getElementById(i)){
+ document.getElementById(i).insertAdjacentHTML('afterbegin', data.data[i]);
+ }
+ }
+ console.log(data);
+ });
+ }
}
\ No newline at end of file
if (($text == "") || ($text == null)){
return 'null';
}
- return "'".$text."'";
+ return "'".$this->securetext($text)."'";
}
public function query($sql){
}
try {
if ($this->conn){
- return $this->conn->query($sql);
+ $sth = $this->conn->prepare($sql);
+ $sth->execute();
+ $result = $sth->fetch(PDO::FETCH_ASSOC);
+ return $result;
}
} catch(PDOException $e){
error_log("QUERY ERROR: ".$sql);
}
try {
if ($this->conn){
- return $this->exec($sql);
+ return $this->conn->exec($sql);
}
} catch (PDOException $e){
error_log("EXEC ERROR: ".$sql);
return -1;
}
+ public function createUpdateDDL($schema,$table,$idents,$data){
+ $da = array();
+ $di = array();
+ foreach ($data as $col => $val){
+ array_push($da,$col."=".$this->value($val));
+ }
+ foreach ($idents as $col => $val){
+ array_push($di,$col."=".$this->value($val));
+ }
+ $updsql = "UPDATE ".$schema.".".$table." SET ".join(",",$da)." WHERE ".join(" AND ",$di).";";
+ return $updsql;
+ }
+
+ public function createInsertDDL($schema,$table,$data){
+ $dc = array();
+ $dv = array();
+ foreach ($data as $col => $val){
+ array_push($dc,$col);
+ array_push($dv,$this->value($val));
+ }
+ $inssql = "INSERT INTO ".$schema.".".$table." (".join(",",$dc).") VALUES (".join(",",$dv).");";
+ return $inssql;
+ }
+
public function newuuid(){
$nid = $this->query("SELECT uuid_in(md5(random()::text || clock_timestamp()::text)::cstring) as id");
return $nid["id"];
<?php
- class Gallery {
+ class gallery {
private $dbh;
public function __construct($dblink){
$this->dbh = $dblink;
<?php
- class Shop {
+ class shop {
private $dbh;
public function __construct($dblink){
$this->dbh = $dblink;
<?php
- class WebArticles {
+ class webarticles {
private $dbh;
public function __construct($dblink){
$this->dbh = $dblink;
--- /dev/null
+<?php
+class webpage {
+ private $dbh;
+ private $cfg;
+ public function __construct($dblink,$cfg){
+ $this->dbh = $dblink;
+ $this->cfg = $cfg;
+ }
+ public function __destruct(){
+ $this->dbh = null;
+ }
+
+ public function getsections($page){
+ $sections = $this->dbh->queryarray("select * from sections where page=".$this->dbh->value($page).";");
+ $retsections = array();
+ $m = new Mustache_Engine(array(
+ 'loader' => new Mustache_Loader_FilesystemLoader($this->cfg["templatepath"].'/sections'),
+ 'partials_loader' => new Mustache_Loader_FilesystemLoader($this->cfg["templatepath"].'/blocks'),
+ 'escape' => function($value) {
+ return $value;
+ },
+ 'entity_flags' => ENT_HTML5
+ ));
+
+ foreach ($sections as $key => $value){
+ if (file_exists($this->cfg["templatepath"].'/sections/'.$value["templatefile"].'.html.mustache')){
+ $sdata = $this->dbh->query("select * from ".$value["datatable"]." where id=".$this->dbh->value($value["id_data"]).";");
+ $data["version"] = date("YmdHis");
+ //error_log("sdata: ".print_r($sdata,true));
+ $retsections[$value["id_section"]] = $m->render($value["templatefile"].'.html',$sdata);
+
+ }
+ }
+ //error_log("sdata: ".print_r($retsections,true));
+ return $retsections;
+ }
+}
+
+?>
\ No newline at end of file
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#c42027">
<link rel="stylesheet" href="js/vendor/tabulator/css/tabulator_site.css?v={{ version }}" />
-<!-- <link rel="stylesheet" href="js/vendor/photoswipe/photoswipe.css?v=1" />
-<link rel="stylesheet" href="js/vendor/photoswipe/default-skin.css?v=1"> -->
<link rel="stylesheet" href="css/icons.css?v={{ version }}">
<link rel="stylesheet" href="css/theme.css?v={{ version }}">
<link rel="stylesheet" href="css/site.css?v={{ version }}">
</div>
<script src="js/vendor/tabulator/js/tabulator.js?v={{ version }}" type="text/javascript"></script>
<script src="js/vendor/moment/moment-with-locales.min.js?v={{ version }}" type="text/javascript"></script>
- <!-- <script src="js/vendor/photoswipe/photoswipe.min.js" type="text/javascript"></script>
- <script src="js/vendor/photoswipe/photoswipe-ui-default.min.js"></script> -->
<script src="js/myapp.js?v={{ version }}" type="text/javascript"></script>
<script src="js/request.js?v={{ version }}" type="text/javascript"></script>
+ <script src="js/{{pagescript}}?v={{ version }}" type="text/javascript"></script>
</body>
</html>
<div class="bar red-white">
<img class="bar-item" src="img/oldbell_logo2.svg" style="height: 70px;" alt="logo oldbell" />
<div class="bar-item" style="color: #fff; font-variant: small-caps; padding: 8px 8px;">Marc de Barbir<br/>Haircuts & Shaves<br/>For Men </div>
- <!-- <button class="bar-item button right" onclick="index.loadintro();" style="padding-top: 15px;"><span class="icon-cart" style="font-size: 28px;"></span><br/>Offre</button> -->
</div>
</div>
<div class="display-container dark" style="margin-top: 70px; height: calc(100vh - 70px); overflow-y: scroll;">
- <div class="row center" style="max-width: 1024px; margin: auto; margin-bottom: 8px;margin-top: 8px;">
- <div class="col s8">
- <div class="row">
- <div class="col s3">
-
- </div>
- <div class="col s6">
- <a class="button" href="shop.html">
- <div style="display: block; position: relative;">
- <img src="img/Online_shop.svg" style="width: 100%;"/>
- </div>
- </a>
- </div>
- <div class="col s3">
-
- </div>
- </div>
-
+ <div class="row center" style="max-width: 1024px; height: 15vh; margin: auto; margin-bottom: 8px;margin-top: 8px;">
+ <div class="col s4" >
+ <a class="button block" href="shop.html"><img src="img/Online_shop.svg" /></a>
</div>
- <div class="col s4 border">
- <a href="gallery.html?name=weeklysoap">
- <div style="display: block; position: relative;">
- <img src="media/galleries/photos.png" style="display: block;width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Weekly Soap</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
- <!-- <div style="z-index: 1;">Gallery</div> -->
- </a>
+ <div class="col s4">
+
+ </div>
+ <div class="col s4 border" id="section_13">
+
</div>
</div>
<div class="row center" style="max-width: 1024px;margin: auto;">
- <div class="col s4 border">
- <a href="gallery.html?name=suggestion">
- <div style="display: block; position: relative;">
- <img src="media/galleries/photos.png" style="display: block;width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Suggestions</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
- <!-- <label class="label">Gallery</label></a> -->
+ <div class="col s4 border" id="section_21">
</div>
- <div class="col s4 border">
- <a href="gallery.html?name=ourspecials">
- <div style="display: block; position: relative;">
- <img src="media/galleries/photos.png" style="display: block;width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Our Specials</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
-
- <!-- <label class="label">Gallery</label></a> -->
+ <div class="col s4 border" id="section_22">
</div>
- <div class="col s4 border">
- <a href="gallery.html?name=aboutus">
- <div style="display: block; position: relative;">
- <img src="media/galleries/photos.png" style="display: block;width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8x;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">About us</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
- <!-- <label class="label">Gallery</label></a> -->
+ <div class="col s4 border" id="section_23">
</div>
</div>
<div class="row dark" id="newrdv" style="max-width: 1024px; margin: auto;">
</div>
</div>
<div class="row" style="max-width: 1024px;margin: auto;">
- <div class="col s4">
- <a href="gallery.html?name=photos">
- <div style="display: block; position: relative;">
- <img src="media/galleries/photos.png" style="display: block;width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Photos</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
- <!-- <label class="label">Gallery</label> -->
- </div>
- <div class="col s4">
- <a href="gallery.html?name=videos">
- <div style="display: block; position: relative;">
- <img src="media/galleries/videos.png" style="width: 100%; overflow-y: hidden;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Videos</tspan></tspan></text>
- </svg>
- </div>
- </div>
- </a>
+ <div class="col s4" id="section_31">
+
</div>
- <div class="col s4">
+ <div class="col s4" id="section_32">
- <a href="gallery.html?name=productions">
- <div style="display: block; position: relative;">
- <img src="media/galleries/productions.png" style="width: 100%;"/>
- <div class="font-gallerytile" style="width: 100%;">
- <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
- <text
- fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)"
- id="text835"
- y="82.398804"
- x="35.529758"
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583"
- xml:space="preserve"><tspan
- x="35.529758"
- y="82.398804"><tspan
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">Productions</tspan></tspan></text>
- </svg>
- </div>
</div>
- </a>
-
+ <div class="pagecontent col s4" id="section_33">
+
</div>
</div>
<div class="row" style="max-width: 1024px;margin: auto;">
- <div class="col s6 padding">
- <a class="button block mobile gold-white" href="events.html" style="font-size: 22px;"><span class="icon-calendar"></span> Events</a>
+ <div class="col s4 padding">
+
+ <a class="button block" href="events.html">
+ <div style="display: block; position: relative;">
+ <img src="img/events.svg" style="width: 100%;"/>
+ </div>
+ </a>
+ </div>
+ <div class="col s4 padding">
+
</div>
- <div class="col s6 padding">
- <a class="button block mobile gold-white" href="press.html" style="font-size: 22px;"><span class="icon-news"></span> Press</a>
+ <div class="col s4 padding">
+ <a class="button block" href="press.html">
+ <div style="display: block; position: relative;">
+ <img src="img/newspaper.svg" style="width: 100%;"/>
+ </div>
+ </a>
</div>
</div>
</div>
- <div class="bottom">
+ <div class="bottom" style="z-index: 20;">
<div class="bar red-white">
<a class="bar-item add-button">installer App</button>
<a class="bar-item button" href="salon.html"><span class="icon-location" style="font-size: 40px;"></span><br/>Salon</a>
<a class="bar-item button right"><span class="icon-facebook" style="font-size: 40px;"></span><br/>facebook</a>
</div>
</div>
-
-<script src="js/index.js?v={{ version }}" type="text/javascript"></script>
--- /dev/null
+<a href="gallery.html?name={{link}}">
+ <div style="display: block; position: relative;">
+ <img src="media/galleries/{{picture}}?v={{version}}" style="display: block;width: 100%;"/>
+ <div class="font-gallerytile" style="width: 100%;">
+ <svg version="1.1" viewBox="0 0 200 150" height="100%" width="100%">
+ <text fill="#fff" transform="matrix(4.4346399,-2.1554661,2.1985079,4.3478197,-300.78939,-162.28939)" y="10.398804" x="35.529758" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.46667px;line-height:1.25;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:0px;word-spacing:0px;white-space:pre;inline-size:55.7223;stroke-width:0.264583" xml:space="preserve">
+ <tspan x="10.529758" y="82.398804">
+ <tspan style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8px;font-family:'DancingScript';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583">{{gallery}}</tspan>
+ </tspan>
+ </text>
+ </svg>
+ </div>
+ </div>
+</a>
\ No newline at end of file