v20201205
authorKilian Saffran <ksaffran@dks.lu>
Sun, 6 Dec 2020 07:05:30 +0000 (08:05 +0100)
committerKilian Saffran <ksaffran@dks.lu>
Sun, 6 Dec 2020 07:05:30 +0000 (08:05 +0100)
28 files changed:
.vscode/snippets.code-snippets
admin/css/theme.css
admin/db.php
admin/index.php
admin/js/modules/gallery.js
admin/js/request.js
admin/lib/database.php
admin/lib/modules/Gallery.php
admin/lib/session.php
admin/tmpl/elements/dialogs/dlgaddgalleryitem.html.mustache
admin/tmpl/elements/panels/pnl_galleries.html.mustache
admin/tmpl/elements/panels/pnl_gallery.html.mustache
admin/upload.php
website/db.php
website/img/IMG_20201029_105226.jpg [deleted file]
website/img/events.svg [new file with mode: 0644]
website/img/newspaper.svg [new file with mode: 0644]
website/img/nopic.png [new file with mode: 0644]
website/index.php
website/js/index.js
website/lib/database.php
website/lib/modules/Gallery.php
website/lib/modules/Shop.php
website/lib/modules/WebArticles.php
website/lib/modules/webpage.php [new file with mode: 0644]
website/tmpl/index.html.mustache
website/tmpl/pages/index.html.mustache
website/tmpl/sections/galleries_preview.html.mustache [new file with mode: 0644]

index e2af45f..a7d1f3d 100644 (file)
           "\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",
index 2dc74f1..036b993 100644 (file)
@@ -709,6 +709,11 @@ input[type=number]::-webkit-outer-spin-button {
   -webkit-appearance: none; 
   margin: 0; 
 }
+.checkboxlabel{
+  font-size: 11pt;
+  padding: 6px;
+  padding-left: 1px;
+}
 /* input[type=checkbox]{
   appearance: none;
   display:inline-block;
index 81e179c..46cce8c 100644 (file)
    }
    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);
index 9719cdf..2850bd0 100644 (file)
@@ -10,6 +10,7 @@
   $vars["config"] = $cfg;
   $vars["requri"] = $_SERVER["REQUEST_URI"];
   $postdata = [];
+  error_log(print_r(ini_get_all(),true));
   if (isset($_POST)){
     $postdata = $_POST;
   }
@@ -59,7 +60,7 @@
       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';
index 7a0203b..7a699e5 100644 (file)
@@ -1,5 +1,3 @@
-
-
 let gallery = {
   id_gallery: null,
   gallery_folder: null,
@@ -66,7 +64,7 @@ let gallery = {
       
       selectable: true,
       selectableRangeMode:"click",
-      autoResize:false,
+      //autoResize:false,
       rowFormatter:function(row, data){
         //console.log(row);
 
@@ -91,27 +89,41 @@ let gallery = {
   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 => {
@@ -189,7 +201,7 @@ let gallery = {
     
   },
   changeDefaultImage: function(file){
-    document.getElementById("gpreview").src = 'media/galleries/' + file;
+    document.getElementById("gpreview").src = 'media/galleries/' + file+ "?" + moment().format('YYYYMMDDhhmmss') ;
   }
 
 }
index a6acc3b..e2fa6ad 100644 (file)
@@ -20,54 +20,15 @@ async function postData(data = {}) {
   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', 
@@ -80,10 +41,23 @@ function postFileSync(fileobj,data = {}) {
     // 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 = {};
index 4467d05..c873509 100644 (file)
@@ -2,7 +2,7 @@
 class database {
   private $conn;
   private $dbconf;
-  private $debug=0;
+  private $debug=1;
   public function __construct($pdbconf){
     $this->dbconf = $pdbconf;
     try {
index 395ed6f..58cf9d2 100644 (file)
@@ -18,38 +18,41 @@ class gallery {
   }
 
   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;
   }
 
index ec7ec78..558e3c3 100644 (file)
@@ -10,6 +10,9 @@ class session {
     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;
   }
   
index 8ebfa09..422c299 100644 (file)
                   <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>
index 057d113..c45695b 100644 (file)
@@ -3,20 +3,20 @@
   <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>
index db1b729..88f9146 100644 (file)
@@ -4,7 +4,7 @@
   <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>
index 23bb36b..45c693d 100644 (file)
@@ -2,10 +2,12 @@
    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);
index 25ec36c..c8aab74 100644 (file)
@@ -1,64 +1,71 @@
 <?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
+
+?>
diff --git a/website/img/IMG_20201029_105226.jpg b/website/img/IMG_20201029_105226.jpg
deleted file mode 100644 (file)
index cefd546..0000000
Binary files a/website/img/IMG_20201029_105226.jpg and /dev/null differ
diff --git a/website/img/events.svg b/website/img/events.svg
new file mode 100644 (file)
index 0000000..3b9c9dc
--- /dev/null
@@ -0,0 +1,422 @@
+<?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>
diff --git a/website/img/newspaper.svg b/website/img/newspaper.svg
new file mode 100644 (file)
index 0000000..3b310db
--- /dev/null
@@ -0,0 +1,489 @@
+<?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>
diff --git a/website/img/nopic.png b/website/img/nopic.png
new file mode 100644 (file)
index 0000000..f87b118
Binary files /dev/null and b/website/img/nopic.png differ
index ed60d1a..c0b94ad 100644 (file)
   {
     $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"]),
@@ -58,7 +58,8 @@
     '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);
index 528feae..87220fe 100644 (file)
@@ -1,37 +1,50 @@
-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
index 80fedb6..c873509 100644 (file)
@@ -22,7 +22,7 @@ class database {
     if (($text == "") || ($text == null)){
       return 'null';
     }
-    return "'".$text."'";
+    return "'".$this->securetext($text)."'";
   }
 
   public function query($sql){
@@ -32,7 +32,10 @@ class database {
     } 
     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);
@@ -87,7 +90,7 @@ class database {
     }
     try {
       if ($this->conn){
-        return  $this->exec($sql);
+        return $this->conn->exec($sql);
       }
     } catch (PDOException $e){
       error_log("EXEC ERROR: ".$sql);
@@ -95,6 +98,30 @@ class database {
                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"];
index 9e50806..636c999 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-  class Gallery {
+  class gallery {
     private $dbh;
     public function __construct($dblink){
       $this->dbh = $dblink;
index e2d6c8e..dcd772c 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-  class Shop {
+  class shop {
     private $dbh;
     public function __construct($dblink){
       $this->dbh = $dblink;
index e80e3ce..10d4fb5 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-  class WebArticles {
+  class webarticles {
     private $dbh;
     public function __construct($dblink){
       $this->dbh = $dblink;
diff --git a/website/lib/modules/webpage.php b/website/lib/modules/webpage.php
new file mode 100644 (file)
index 0000000..e6390ca
--- /dev/null
@@ -0,0 +1,39 @@
+<?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
index 410381a..659994d 100644 (file)
@@ -30,8 +30,6 @@
 <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 }}">
@@ -43,9 +41,8 @@
     </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>
index 221ba46..48e8324 100644 (file)
       <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">
-            &nbsp;
-          </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">
-            &nbsp;
-          </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">
+        &nbsp;
+      </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>&nbsp;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>&nbsp;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>
diff --git a/website/tmpl/sections/galleries_preview.html.mustache b/website/tmpl/sections/galleries_preview.html.mustache
new file mode 100644 (file)
index 0000000..daee2be
--- /dev/null
@@ -0,0 +1,14 @@
+<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