--- /dev/null
+{
+ "perlSyntax.includePaths": [
+ "${workspaceFolder}/backoffice/api/lib/perl5",
+ "${workspaceFolder}/backoffice/api/lib",
+],
+"tidyHtml.optionsTidy": {
+ "indent-attributes": false,
+ "tab-size":2,
+ "indent":true,
+ "show-body-only":false,
+ "fix-uri": false,
+ "newline":"LF",
+ "drop-empty-elements": false,
+ "hide-comments": true,
+}
+
+}
\ No newline at end of file
-#!/Users/kilian/perl5/perlbrew/perls/perl-5.24.1/bin/perl
+#!/usr/local/bin/perl
use strict;
use lib ('./lib/perl5');
use lib ('./lib');
use lib ('./');
use File::Basename;
use Exporter 'import';
-our @EXPORT_OK = qw($sitecfg);
+our @EXPORT_OK = qw($sitecfg $messages);
our $sitecfg ={
- cookiename => 'potlu',
- dbtype => 'PgPP',
- dsn => 'DBI:PgPP:dbname=potlu_db;host=DKS-LAPTOP.fritz.box',
- #dsn => 'DBI:PgPP:dbname=solarch_db;host=sql629.your-server.de',
- dbuser => 'potlu_user',
- dbpassword => 'r2btTTRfuJz4whez',
+ cookiename => 'saffranlu',
+ gdpr => 'saffranlu_gdpr',
+ # dbtype => 'PgPP',
+ # dsn => 'DBI:PgPP:dbname=potlu_db;host=DKS-LAPTOP.fritz.box',
+ # #dsn => 'DBI:PgPP:dbname=solarch_db;host=sql629.your-server.de',
+ # dbuser => 'potlu_user',
+ # dbpassword => 'r2btTTRfuJz4whez',
page => 'index.tt',
pagename => 'index',
basepath => substr((exists($ENV{"SCRIPT_FILENAME"})?dirname($ENV{"SCRIPT_FILENAME"}):dirname($0)),length($ENV{"DOCUMENT_ROOT"})),
sitename => 'Accès - Client'
};
+our $messages ={
+ de => {
+ gdpr_notice => "Diese Seite verwendet Cookies zur Optimierung der Browserfunktion.",
+ unknown_login => "Passwort oder Login unbekannt!",
+ service_error =>"Dieser Dienst ist leider zur Zeit nicht verfügbar!",
+ sent_newpassword =>"Wir haben dir eine E-Mail mit neuem Passwort geschickt!",
+ common_error => "Es ist ein Fehler aufgetreten, bitte später probieren!",
+ fill_all_fields => "Bitte alle Felder ausfüllen!",
+ user_exists_already => "Es existiert bereits ein Benutzer mit derselben E-Mail-Addresse!",
+ verification_mail_sent =>"Danke,<br/>wir haben dir eine E-Mail mit Verifizierungs-Code geschickt!<br/>Diesen Code bitte hier unten eintragen, um dein Konto zu validieren!",
+ sending_mail_failed => "Wir konnten dir leider keine E-Mail schicken!",
+ code_unknown => "Unbekannter Code!"
+ },
+ lb => {
+ gdpr_notice => "Dësen Site benotzt Cookies fir är Navigatioun ze optiméieren.",
+ unknown_login => "Passwuert oder Login onbekannt!",
+ service_error =>"Dësen Service fonktionnéiert zur Zait leider net!",
+ sent_newpassword =>"Mir hun dir eng E-Mail matt engem neien PAsswuert gescheckt!",
+ common_error => "Et ass een Fehler opgetratt, probéier et spéider w.e.g.!",
+ fill_all_fields => "we.g. all Felder ausfëllen!",
+ user_exists_already => "Et existéirt schon een Benotzer mit dëser E-Mail-Address!",
+ verification_mail_sent =>"Merci,<br/>mir hun dir eng E-Mail matt Vérifiziéierungs-Code geschëckt!<br/>Dësen Code w.e.g hei drënner androën, fir dain Kont ze validéieren!",
+ sending_mail_failed => "Mir konnten dir leider keng E-Mail schëcken!",
+ code_unknown => "Unbekannten Code!"
+ },
+ fr => {
+ gdpr_notice => "Ce site utilise des cookies pour améliorer votre navigation.",
+ unknown_login => "Passwort oder Login unbekannt!",
+ service_error =>"Dieser Dienst ist leider zur Zeit nicht verfügbar!",
+ sent_newpassword =>"Wir haben dir eine E-Mail mit neuem Passwort geschickt!",
+ common_error => "Es ist ein Fehler aufgetreten, bitte später probieren!",
+ fill_all_fields => "Bitte alle Felder ausfüllen!",
+ user_exists_already => "Es existiert bereits ein Benutzer mit derselben E-Mail-Addresse!",
+ verification_mail_sent =>"Danke,<br/>wir haben dir eine E-Mail mit Verifizierungs-Code geschickt!<br/>Diesen Code bitte hier unten eintragen, um dein Konto zu validieren!",
+ sending_mail_failed => "Wir konnten dir leider keine E-Mail schicken!",
+ code_unknown => "Unbekannter Code!"
+ },
+ en => {
+ gdpr_notice => "This site uses cookies to offer you a better browsing experience.",
+ unknown_login => "Passwort oder Login unbekannt!",
+ service_error =>"Dieser Dienst ist leider zur Zeit nicht verfügbar!",
+ sent_newpassword =>"Wir haben dir eine E-Mail mit neuem Passwort geschickt!",
+ common_error => "Es ist ein Fehler aufgetreten, bitte später probieren!",
+ fill_all_fields => "Bitte alle Felder ausfüllen!",
+ user_exists_already => "Es existiert bereits ein Benutzer mit derselben E-Mail-Addresse!",
+ verification_mail_sent =>"Danke,<br/>wir haben dir eine E-Mail mit Verifizierungs-Code geschickt!<br/>Diesen Code bitte hier unten eintragen, um dein Konto zu validieren!",
+ sending_mail_failed => "Wir konnten dir leider keine E-Mail schicken!",
+ code_unknown => "Unbekannter Code!"
+ }
+};
+
1;
\ No newline at end of file
package sendemail;
use strict;
-use lib ('./lib/perl5');
-use lib ('./lib');
+use lib ('/usr/home/dksalu/public_html/luxopen_lu/backoffice/api/lib/perl5');
+use lib ('lib');
use lib ('./');
use Data::Dumper;
+use Template;
+use CGI;
+use Cwd;
use File::Basename qw/dirname basename/;
use dksdb;
+use dksconfig qw($sitecfg);
+
sub new {
my $class = shift;
my $self = bless {}, $class;
- $self->{server} = "mail.your-server.de";
- $self->{port} = "587";
- $self->{user} = 'webmaster@solana-architecture.lu';
- $self->{password} = "FLxCtIQs720K8n79";
- $self->{from} = 'webmaster@solana-architecture.lu';
+ $self->{server} = $sitecfg->{mail}->{server};
+ $self->{port} = $sitecfg->{mail}->{port};
+ $self->{user} = $sitecfg->{mail}->{user};
+ $self->{password} = $sitecfg->{mail}->{password};
+ $self->{from} = $sitecfg->{mail}->{from};
+ $self->{templates} = $sitecfg->{mail}->{templates};
return $self;
}
-sub sendemail(){
+sub gentemplate(){
my $self = shift;
- my $template = shift;
- my $iduser = shift;
- my $sendto = shift;
- my $data = shift;
- my $attach = shift;
- my $body = "";
- my $subject = "";
- my $maildata = ();
- my $db = dksdb->new();
- my $send = -1;
- my $tmpl = $db->dbquerysorted("select *,ml.mailtemplate from mailtemplates mt join maillayouts ml on (mt.id_maillayout=ml.id) where templatename='".$template."';");
- if (keys(%{$tmpl}) > 0){
- $tmpl = $tmpl->{0};
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG $ENV{SCRIPT_FILENAME};
- # print LOG "SEND EMAIL:".Dumper($data)."\n";
- # close(LOG);
- my $datasql = $tmpl->{'emaildatasql'};
- $data->{id} = $iduser;
- foreach my $key (keys(%{$data})){
- my $srch = '%%'.lc($key).'%%';
- my $repl = $data->{$key};
- $datasql =~ s/$srch/$repl/g;
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "TEMPLATE DATA:".$datasql."\n";
- # close(LOG);
- $maildata = $db->dbquerysorted($datasql);
+ my $mailtemplate = shift;
+ my $email = shift;
+ my $vars = $sitecfg;
+ $vars->{data} = shift;
+ $vars->{bodytemplate} = $mailtemplate.".tt";
+ #$vars->{siteurl} = CGI::url({-base=>1}).dirname($vars->{basepath});
+
- $body = $tmpl->{'emailtext'};
- $subject = $tmpl->{'mailsubject'};
- foreach my $key (keys(%{$maildata->{0}})){
- $data->{$key} = $maildata->{0}->{$key};
- }
- foreach my $key (keys(%{$data})){
- my $srch = '%%'.lc($key).'%%';
- my $repl = $data->{$key};
- $body =~ s/$srch/$repl/g;
- $subject =~ s/$srch/$repl/g;
- }
- my $bodytmpl = $tmpl->{mailtemplate};
- $bodytmpl =~ s/%%BODYCONTENT%%/$body/;
- my $siteurl = $ENV{'REQUEST_SCHEME'}.'://'.$ENV{"HTTP_HOST"};
- $bodytmpl =~ s/%%siteurl%%/$siteurl/g;
- $bodytmpl =~ s/%%SITEURL%%/$siteurl/g;
- $bodytmpl =~ s/\r//g;
- #$bodytmpl =~ s/"/\\\"/g;
- #PROD REPLACE all not replaced DATA
- #$bodytmpl =~ s/%%\w+%%//g;
- #$sendto = 'ksaffran@dks.lu';
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "SUBJECT:".$subject."\n";
- # print LOG "BODY TEXT:".$bodytmpl."\n";
- # close(LOG);
- if (($bodytmpl ne "") && ($subject ne "") && ($sendto =~ /.+\@.+\..+/)){
+ chdir($sitecfg->{docroot}.$sitecfg->{apidatapath}.'mail');
+ my $bodyfile = dirname($ENV{SCRIPT_FILENAME}).'/tmp/'.$mailtemplate.'_'.$$.'.mail';
+ my $template = Template->new({INCLUDE_PATH => [$sitecfg->{docroot}.$sitecfg->{apidatapath}.'mail'],OUTPUT => $bodyfile});
+ $template->process("mail.tt",$vars) || die "Template process failed: ", $template->error(), "\n";
+ my $db = dksdb->new();
+
-
- my $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/sendEmail';
- my $f = dirname($ENV{SCRIPT_FILENAME}).'/tmp/mailbody_'.$sendto.'.txt';
- $f =~ s/\@/_/g;
- if (! -e $binsemail){
- $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/api/sendEmail';
- $f = dirname($ENV{SCRIPT_FILENAME}).'/api/tmp/mailbody_'.$sendto.'.txt';
- $f =~ s/\@/_/g;
- if (! -e $binsemail){
- return 256;
- }
- }
-
- my $cmd= 'perl "'.$binsemail.'" -f '.$tmpl->{mailfrom}.' ';
+ my $binsemail = dirname($ENV{'SCRIPT_FILENAME'}).'/sendEmail';
+ if (! -e $binsemail){
+ return 256;
+ }
+ my $cmd= 'perl "'.$binsemail.'" -f '.$self->{from}.' ';
$cmd .= ' -s "'.$self->{server}.':'.$self->{port}.'" -xu "'.$self->{user}.'" -xp "'.$self->{password}.'" -q ';
$cmd .= '-o tls=auto ';
- $cmd .= '-t "'.$sendto.'" ';
- $cmd .= '-u "'.$subject.'" ';
- # open (LOG,">>sendmail.log");
- # print LOG $cmd."\n";
- # # print LOG "BODY TEXT:".$bodytmpl."\n";
- # close(LOG);
- open(EML,">".$f);
- print EML $bodytmpl;
- close(EML);
- # $cmd .= '-m "'.$bodytmpl.'" ';
- if ($attach != undef){
- $cmd .= " -a";
+ $cmd .= '-t "'.$email.'" ';
+ $cmd .= '-u "'.$self->{templates}->{$mailtemplate}.'" ';
+ $cmd .= '-o message-content-type=html ';
+ $cmd .= '-o message-charset=ISO-8859-1 ';
+ $cmd .= '-o message-file='.$bodyfile.' ';
+ # if ($attach != undef){
+ # $cmd .= " -a";
- foreach my $a (@{$attach}){
- $cmd .= " ".$a." ";
- }
- }
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "SEND EMAIL CMD:".$cmd."\n";
- # close(LOG);
- # $cmd =~ s/'/''/g;
- $send = system($cmd);
- # open (LOG,">>tmp/sendmail.log");
- # print LOG "CMD RETURN NUM:".$send."\n";
- # close(LOG);
- unlink($f);
- }
- return $send;
+ # foreach my $a (@{$attach}){
+ # $cmd .= " ".$a." ";
+ # }
+ # }
+ my $send = system($cmd);
+ return $send;
+ unlink($bodyfile);
}
+
1;
\ No newline at end of file
use lib ('./lib');
use lib ('./');
use File::Basename;
-use Digest::SHA qw(sha256_hex);
use Data::Dumper;
-
-use dksdb;
+use dksconfig qw($sitecfg $messages);
use sendemail;
# use Data::Dumper;
my $self = shift;
my $login = shift;
my $password = shift;
- # open FILE,">>tmp/sql.log";
- # print FILE "pwd: $password\n";
- # close(FILE);
- my $pwd = sha256_hex($password);
my $ret->{messagetype} ='w3-red';
- # my $newsid = undef;
$login = lc($login);
$login =~ s/^\s+//;
$login =~ s/\s+$//;
$ret->{message} = "Mot de passe ou Login pas inconnue!";
$ret->{messagetype} = "w3-red";
$ret->{sid} = undef;
- my $siddata = $self->{db}->dbquerysorted("select * from checklogin('".$self->{db}->securetext($login)."','".$pwd."','".$ENV{REMOTE_ADDR}."','".$ENV{HTTP_USER_AGENT}."');");
-
- if (keys(%{$siddata}) > 0){
- # open FILE,">>tmp/sql.log";
- # print FILE Dumper($siddata);
- # close(FILE);
- $ret->{sid} = $siddata->{0}->{checklogin};
+ my $cmd = 'htpasswd -v -b -B '.$sitecfg->{datapath}.'/auth/.passwd $login $password';
+ my $pwcheck=`$cmd`;
+ chomp($pwcheck);
+ if ($pwcheck =~ /$login.+correct/){
+ my $rstr = $self->randomstring(40);
+ open(SESS,">".$sitecfg->{datapath}.'/sessions/'.$rstr.'.txt');
+ print SESS "$login";
+ close(SESS);
+ $ret->{sid} = $rstr;
}
return $ret;
}
sub savepassword(){
my $self = shift;
- my $iduser = shift;
+ my $username = shift;
my $newpwd = shift;
- my $pwd = sha256_hex($newpwd);
- $self->{db}->dbexec("UPDATE users SET userpassword = '".$pwd."' WHERE id=".$iduser.";");
+ #my $pwd = sha256_hex($newpwd);
+ my $cmd = 'htpasswd -b -B '.$sitecfg->{datapath}.'/auth/.passwd $username $newpwd';
+ my $pwupd=`$cmd`;
+ chomp($pwupd);
return 1;
}
sub passwordforgotten(){
my $self = shift;
- my $email = shift;
+ my $login = shift;
my $ret->{messagetype} ='w3-red';
$ret->{message} = "Onbekannt E-mail!";
- my $sql = "select id,userpassword from users where username='".$self->{db}->securetext($email)."';";
- my $ex = $self->{db}->dbquerysorted($sql);
- if (keys(%{$ex}) > 0){
+ my $cmd = 'grep -e "^'.$login.':" '.$sitecfg->{datapath}.'/auth/.passwd';
+ my $userexists = `$cmd`;
+ chomp($userexists);
+ if ($userexists ne ""){
my $newpwd = $self->randomstring(12);
- my $pwd = sha256_hex($newpwd);
- $self->{db}->dbexec("UPDATE users SET userpassword = '".$pwd."' WHERE id=".$ex->{0}->{id}.";");
+ $self->savepassword($login,$newpwd);
my $data->{newpassword} = $newpwd;
my $eml = sendemail->new();
my $mret = $eml->sendemail('user_forgotpasswd',$ex->{0}->{id},$email,$data,undef);
html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}.w3-serif{font-family:serif}
h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin: 0}.w3-wide{letter-spacing:4px}
-hr{border:0;border-top:1px solid #eee;margin:20px 0}
+hr{border:0;border-top:0.5px solid #eee;margin:20px 0}
.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
-.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
-.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
+.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:0.5px solid #ccc}
+.w3-bordered tr,.w3-table-all tr{border-bottom:0.5px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
+.w3-animate-top{position:relative;animation:animatetop 2s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
+.w3-animate-left{position:relative;animation:animateleft 2s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
+.w3-animate-right{position:relative;animation:animateright 2s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffd7!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}
/* DEFAULT THEME */
-.w3-theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.w3-theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.w3-theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.w3-theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.w3-theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.w3-theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.w3-theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.w3-theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.w3-theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.w3-theme-d5 {color:#fff !important; background-color:#24457a !important}
+.w3-theme-l5 {color:#000 !important; background-color:#f4f4f4 !important}
+.w3-theme-l4 {color:#000 !important; background-color:#d9d9d9 !important}
+.w3-theme-l3 {color:#000 !important; background-color:#b3b3b3 !important}
+.w3-theme-l2 {color:#fff !important; background-color:#8c8c8c !important}
+.w3-theme-l1 {color:#fff !important; background-color:#666666 !important}
+.w3-theme-d1 {color:#fff !important; background-color:#393939 !important}
+.w3-theme-d2 {color:#fff !important; background-color:#333333 !important}
+.w3-theme-d3 {color:#fff !important; background-color:#2d2d2d !important}
+.w3-theme-d4 {color:#fff !important; background-color:#262626 !important}
+.w3-theme-d5 {color:#fff !important; background-color:#202020 !important}
-.w3-theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.w3-theme-dark {color:#fff !important; background-color:#24457a !important}
-.w3-theme-action {color:#fff !important; background-color:#24457a !important}
+.w3-theme-light {color:#000 !important; background-color:#f4f4f4 !important}
+.w3-theme-dark {color:#fff !important; background-color:#202020 !important}
+.w3-theme-action {color:#fff !important; background-color:#202020 !important}
-.w3-theme {color:#fff !important; background-color:#6a92d3 !important}
-.w3-text-theme {color:#6a92d3 !important}
-.w3-border-theme {border-color:#6a92d3 !important}
+.w3-theme {color:#fff !important; background-color:#414141 !important}
+.w3-text-theme {color:#414141 !important}
+.w3-border-theme {border-color:#414141 !important}
-.w3-hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.w3-hover-text-theme:hover {color:#6a92d3 !important}
-.w3-hover-border-theme:hover {border-color:#6a92d3 !important}
+.w3-hover-theme:hover {color:#fff !important; background-color:#414141 !important}
+.w3-hover-text-theme:hover {color:#414141 !important}
+.w3-hover-border-theme:hover {border-color:#414141 !important}
.w3-label { color: rgb(153, 150, 150);}
/* #main {margin-left: 210px;} */
--- /dev/null
+kilian:$2y$05$YXsrbwMHweXfXt1dr5Z0juN35tx7WtcXgg0PR9Co1KwMfb6uVu/fq
+kilian2:$2y$05$a2XKnz9Mc2JWov9cyy7FuuEuphHJEn3pEJCZ1q8jhfmfZiRUCE9p2
--- /dev/null
+#username|usergroup|prename|surname
+kilian|admin|Kilian|Saffran
\ No newline at end of file
--- /dev/null
+[% quser = dksdb.query("select prename,surname from public.users where id='$userid';") %]
+[% user = quser.get_all() %]
+
+<br/>
\ No newline at end of file
--- /dev/null
+<br/>
+<br/>
+Meilleurs salutations,<br/>
+<br/>
+POT Support Team
\ No newline at end of file
--- /dev/null
+[% qpay = dksdb.prepare("select replace(to_char(amount,'99999.99'),'.',',') as totalamount,prename,surname,email,gateway,status,reference from luxopenpayments where id= ?;") %]
+[% epay = qpay.execute(data.payment_id) %]
+[% pay = epay.get_all() %]
+Dear [% pay.0.prename %] [%pay.0.surname %],<br/>
+<br/>
+Thank you for registering to the Luxembourg Open and Masters 2020.<br/>
+<br/>
+
+[% IF pay.0.gateway == 'invoice' %]
+Please transfer the amount of <strong>[% pay.0.totalamount %] €</strong><br/>
+on the bank account of the <u>Fédération Luxembourgeoise de Darts</u><br/>
+IBAN: <strong>LU46 0021 1383 3440 0000</strong> / BIC: <strong>BILLLULL</strong><br/>
+with the message: <strong>Luxembourg Open [% pay.0.reference %]</strong>
+<br>payment must be done <strong>before 18th of July 2020</strong> to validate your registration.<br/>
+[% ELSE %]
+Total Registration fee: <strong>[% pay.0.totalamount %] €</strong><br/>
+Registration fee paid by credit card.
+[% END %]
+<br/>
+<h3>Registration Details</h3>
+
+[% qreg = dksdb.prepare("select loreg.playerprename || ' ' || loreg.playersurname || ' (' || loreg.playercountry || ')' || coalesce( '/' || loreg.dpplayerprename || ' ' || loreg.dpplayersurname || ' (' || loreg.dpplayercountry || ')','') as description,
+loreg.tournament,loreg.category,replace(to_char(loprod.price,'99999.99'),'.',',') as amount
+from luxopenregistrations loreg
+left join luxopenproducts loprod on (loreg.category =loprod.category and loreg.tournament =loprod.product )
+where loreg.id_payment = ?;") %]
+<hr/>
+[% paradarts = 0 %]
+[% FOREACH reg = qreg.execute(data.payment_id) %]
+[% IF reg.category == 'Paradarts' %]
+ [% paradarts = 1 %]
+[% END %]
+<div class="regs">
+ <label>Tournament:</label> [% reg.tournament %] - [% reg.category %] <br/>
+ <label>Player:</label> [% reg.description %]<br/>
+ <label>Registration fee:</label> [% reg.amount %] €
+</div>
+<hr/>
+
+[% END %]
+[% IF paradarts == 1 %]
+<br/>
+ Please don't forget to send us the <a href="https://world-disability-darts.org/resources/">WDDA Medical Assessment Form</a> for the Paradarts Tournament to <a href="mailto:info@luxopen.lu">info@luxopen.lu</a>
+<br/>
+[% END%]
+<br/>
+keep informed by following us on <a href="https://www.facebook.com/LuxembourgOpen">facebook</a><br/>
+or the Luxembourg Open and Masters Website: <a href="https://www.luxopen.lu">www.luxopen.lu</a><br/><br/>
+Kind regards,<br/>
+<br/>
+F?d?ration Luxembourgeoise de Darts ASBL<br/>
+3, route d'Arlon<br/>
+L-8009 Strassen<br/>
+<br/>
+
--- /dev/null
+Bonjour [% data.prename %] [% data.surname %],<br/>
+vous avez demandé un nouveau mot de passe via [% baseurl %]!<br/>
+cliquer ci-dessous pour confirmer votre demande.<a>
+
+<a href="[% siteurl %]/accountreset.html">Changer mot de passe</a>
+<br/>
+<br/>
+Meilleurs salutations,<br/>
+<br/>
+Saffran IT Consulting<br/>
+4, rue Principale<br/>
+L-3770 Tétange<br/>
--- /dev/null
+[% INCLUDE block/greeting.tt %]
+[% quser = dksdb.query("select username,vcode from public.users where id='$userid';") %]
+[% user = quser.get_all() %]
+Merci pour votre création de compte sur pot.lu,
+<br/><br/>
+votre code de validation: <strong style="font-family: Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace;">[% user.0.vcode %]</strong><br/>
+Finissez votre régistration en entrant le votre code de validation ici: <a href="[% siteurl %]/validation.html">[% siteurl %]validation.html</a>
+[% INCLUDE block/signature.tt %]
--- /dev/null
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <style>
+ body,html {
+ margin: 0;
+ background-color: #fff;
+ }
+ .regs {
+ padding: 5px;
+ margin: 5px;
+ }
+ label {
+ font-weight: bold;
+ }
+ </style>
+ </head>
+ <body bgcolor="#3d8377">
+ <div class="maincontainer" align="left" style="padding-top: 10px; width: auto; background-color: #3d8377!important; color: #fff;">
+ <div style="margin: 5px,">[% sitename %]</div>
+ <div style="background-color: #fff; color: #000">
+ <div class="mailcontent" align="left" style="padding: 10px; color: #000;">
+ [% INCLUDE "body/$bodytemplate" %]
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
\ No newline at end of file
<body>
<div class="w3-display-container">
- <div class="w3-row" >
- <div class="w3-col l6 w3-padding-24">
- <div class="w3-container w3-center w3-padding-24">
- <img src="[% abspath %]img/toplogo.png" style="width: 150px;" alt="logo">
- </div>
+ <div class="w3-row" style="margin-top: 100px;">
+ <div class="w3-col l4 m3">
+ </div>
+ <div class="w3-col l4 m6">
+ <div class="w3-container w3-center">
+ <img src="[% abspath %]img/toplogo.png" style="height: 60px;" alt="logo">
+ </div>
+ <div class="w3-container">
[% IF pagename == 'register' && registration_enabled == '1' %]
[% INCLUDE skeleton/login/register.tt %]
[% ELSIF pagename == 'forgotpassword' %]
[% INCLUDE skeleton/login/login.tt %]
[% END %]
</div>
- <div class="w3-col l6 right-side-bg w3-center w3-padding-64" >
- <img src="[% abspath %]img/logo_512.png" style="width: 200px;" alt="logo">
</div>
- </div>
- </div>
+ <div class="w3-col l4 m3">
+ </div>
+ </div>
+ </div>
</body>
</html>
-.w3-theme-l5 {color:#000 !important; background-color:#fdeff3 !important}
-.w3-theme-l4 {color:#000 !important; background-color:#f9cad6 !important}
-.w3-theme-l3 {color:#000 !important; background-color:#f496ad !important}
-.w3-theme-l2 {color:#fff !important; background-color:#ee6184 !important}
-.w3-theme-l1 {color:#fff !important; background-color:#e92d5c !important}
-.w3-theme-d1 {color:#fff !important; background-color:#b3133b !important}
-.w3-theme-d2 {color:#fff !important; background-color:#9f1134 !important}
-.w3-theme-d3 {color:#fff !important; background-color:#8b0f2e !important}
-.w3-theme-d4 {color:#fff !important; background-color:#770d27 !important}
-.w3-theme-d5 {color:#fff !important; background-color:#630a21 !important}
+/* DEFAULT THEME */
+/* DEFAULT THEME */
+.w3-theme-l5 {color:#000 !important; background-color:#f4f4f4 !important}
+.w3-theme-l4 {color:#000 !important; background-color:#d9d9d9 !important}
+.w3-theme-l3 {color:#000 !important; background-color:#b3b3b3 !important}
+.w3-theme-l2 {color:#fff !important; background-color:#8c8c8c !important}
+.w3-theme-l1 {color:#fff !important; background-color:#666666 !important}
+.w3-theme-d1 {color:#fff !important; background-color:#393939 !important}
+.w3-theme-d2 {color:#fff !important; background-color:#333333 !important}
+.w3-theme-d3 {color:#fff !important; background-color:#2d2d2d !important}
+.w3-theme-d4 {color:#fff !important; background-color:#262626 !important}
+.w3-theme-d5 {color:#fff !important; background-color:#202020 !important}
-.w3-theme-light {color:#000 !important; background-color:#fdeff3 !important}
-.w3-theme-dark {color:#fff !important; background-color:#630a21 !important}
-.w3-theme-action {color:#fff !important; background-color:#630a21 !important}
+.w3-theme-light {color:#000 !important; background-color:#f4f4f4 !important}
+.w3-theme-dark {color:#fff !important; background-color:#202020 !important}
+.w3-theme-action {color:#fff !important; background-color:#202020 !important}
-.w3-theme {color:#fff !important; background-color:#c41540 !important}
-.w3-text-theme {color:#c41540 !important}
-.w3-border-theme {border-color:#c41540 !important}
+.w3-theme {color:#fff !important; background-color:#414141 !important}
+.w3-text-theme {color:#414141 !important}
+.w3-border-theme {border-color:#414141 !important}
-.w3-hover-theme:hover {color:#fff !important; background-color:#c41540 !important}
-.w3-hover-text-theme:hover {color:#c41540 !important}
-.w3-hover-border-theme:hover {border-color:#c41540 !important}
+.w3-hover-theme:hover {color:#fff !important; background-color:#414141 !important}
+.w3-hover-text-theme:hover {color:#414141 !important}
+.w3-hover-border-theme:hover {border-color:#414141 !important}
h1 {
color:#630a21;
+}
+.w3-branding {
+ color: #b60000;
+}
+.w3-branding2 {
+ color: #c8beb7;
+}
+
+.w3-nav-button {
+ padding-top: 25px!important;
+ height: 75px;
}
\ No newline at end of file
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
-.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
-.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
-.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
+.w3-animate-top{position:relative;animation:animatetop 5s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
+.w3-animate-left{position:relative;animation:animateleft 5s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
+.w3-animate-right{position:relative;animation:animateright 5s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover{border-color:#616161!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffd7!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}
-/* DEFAULT THEME */
-/* .w3-theme-l5 {color:#000 !important; background-color:#f6f8fc !important}
-.w3-theme-l4 {color:#000 !important; background-color:#e1e9f6 !important}
-.w3-theme-l3 {color:#000 !important; background-color:#c3d3ed !important}
-.w3-theme-l2 {color:#000 !important; background-color:#a5bee4 !important}
-.w3-theme-l1 {color:#fff !important; background-color:#88a8db !important}
-.w3-theme-d1 {color:#fff !important; background-color:#5180cb !important}
-.w3-theme-d2 {color:#fff !important; background-color:#3a6fc3 !important}
-.w3-theme-d3 {color:#fff !important; background-color:#3361aa !important}
-.w3-theme-d4 {color:#fff !important; background-color:#2c5392 !important}
-.w3-theme-d5 {color:#fff !important; background-color:#24457a !important}
-.w3-theme-light {color:#000 !important; background-color:#f6f8fc !important}
-.w3-theme-dark {color:#fff !important; background-color:#24457a !important}
-.w3-theme-action {color:#fff !important; background-color:#24457a !important}
-
-.w3-theme {color:#fff !important; background-color:#6a92d3 !important}
-.w3-text-theme {color:#6a92d3 !important}
-.w3-border-theme {border-color:#6a92d3 !important}
-
-.w3-hover-theme:hover {color:#fff !important; background-color:#6a92d3 !important}
-.w3-hover-text-theme:hover {color:#6a92d3 !important}
-.w3-hover-border-theme:hover {border-color:#6a92d3 !important} */
.w3-label { color: rgb(153, 150, 150);}
#main {margin-left: 210px;}
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Document</title>
+ <style>
+ .divTable{
+ display: table;
+ border: 1px solid red;
+}
+.divTableRow {
+ display: table-row;
+}
+.divTableHeading {
+ background-color: #EEE;
+ display: table-header-group;
+}
+.divTableCell, .divTableHead {
+ border: 1px solid #999999;
+ display: table-cell;
+ padding: 3px 10px;
+}
+.divTableHeading {
+ background-color: #EEE;
+ display: table-header-group;
+ font-weight: bold;
+}
+.divTableFoot {
+ background-color: #EEE;
+ display: table-footer-group;
+ font-weight: bold;
+}
+.divTableBody {
+ display: table-row-group;
+}
+ </style>
+</head>
+<body>
+ <div class="divTable">
+ <div class="divTable">
+ <div class="divTableHeading">
+ <div class="divTableRow">
+ <div class="divTableHead" style="width: 80px;">col1</div>
+ <div class="divTableHead" style="width: 80px;">col2</div>
+ <div class="divTableHead" style="width: 80px;">col3</div>
+ <div class="divTableHead" style="width: 80px;">col4</div>
+ <div class="divTableHead" style="width: 80px;">col5</div>
+ <div class="divTableHead" style="width: 80px;">col6</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="display: block;height: 150px; overflow-y: scroll; overflow-x:hidden;">
+ <div class="divTable">
+ <div class="divTableBody">
+ <div class="divTableRow">
+ <div class="divTableCell" style="width: 80px;"> </div>
+ <div class="divTableCell" style="width: 80px;"> </div>
+ <div class="divTableCell" style="width: 80px;"> </div>
+ <div class="divTableCell" style="width: 80px;"> </div>
+ <div class="divTableCell" style="width: 80px;"> </div>
+ <div class="divTableCell" style="width: 80px;"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ <div class="divTableRow">
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ <div class="divTableCell"> </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+</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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="/Users/kilian/Pictures/saffranitconsulting_obj.png"
+ sodipodi:docname="saffranitconsulting_obj.svg"
+ width="220"
+ height="50"
+ viewBox="0 0 58.208329 13.229167"
+ version="1.1"
+ id="svg8">
+ <sodipodi:namedview
+ inkscape:current-layer="svg8"
+ inkscape:window-maximized="0"
+ inkscape:window-y="22"
+ inkscape:window-x="0"
+ inkscape:cy="108.73333"
+ inkscape:cx="269.37778"
+ inkscape:zoom="2.0454545"
+ width="215mm"
+ units="px"
+ showgrid="false"
+ id="namedview100"
+ inkscape:window-height="688"
+ inkscape:window-width="1280"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0"
+ guidetolerance="10"
+ gridtolerance="10"
+ objecttolerance="10"
+ borderopacity="1"
+ inkscape:document-rotation="0"
+ bordercolor="#666666"
+ pagecolor="#ffffff" />
+ <defs
+ id="defs2" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ transform="matrix(0.41783207,0,0,0.41783207,-1.8002571,-110.03231)">
+ <g
+ aria-label="SAFFRAN"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;line-height:1.25;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ id="text817">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 4.9065043,274.73196 c 0.022049,2.21589 1.4882813,4.72943 6.1956597,4.72943 4.090017,0 6.283854,-1.98437 6.283854,-4.92786 0,-2.93247 -2.017448,-4.00183 -4.156163,-4.38768 l -2.105642,-0.39687 c -1.2788198,-0.23151 -1.9953996,-0.67248 -1.9953996,-1.43316 0,-0.88195 0.7055555,-1.51033 2.0615456,-1.51033 1.532378,0 2.259982,0.88194 2.304079,1.71979 h 3.615973 c -0.01103,-2.50252 -2.083594,-4.65226 -5.920052,-4.65226 -3.483681,0 -5.9861984,1.71979 -5.9861984,4.7625 0,2.67891 1.7749132,3.89158 4.0789931,4.34358 l 2.0284723,0.4079 c 1.444184,0.28663 2.193837,0.67248 2.193837,1.55443 0,0.88194 -0.694532,1.55442 -2.282032,1.55442 -1.6646697,0 -2.5245655,-0.87092 -2.5796871,-1.76389 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path831" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 22.115446,279.19681 0.881944,-3.2632 h 4.486892 l 0.870921,3.2632 h 4.20026 L 27.83706,264.14863 h -4.894791 l -4.762501,15.04818 z m 3.241145,-11.6086 1.444184,5.51216 h -3.097829 l 1.466232,-5.51216 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path833" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 37.979422,279.19681 v -5.52318 h 5.699566 v -3.03168 h -5.699566 v -3.35139 h 6.283854 v -3.14193 h -10.24158 v 15.04818 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path835" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 50.150256,279.19681 v -5.52318 h 5.699566 v -3.03168 h -5.699566 v -3.35139 h 6.283854 v -3.14193 H 46.19253 v 15.04818 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path837" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 64.900777,264.14863 h -6.537413 v 15.04818 h 3.880555 v -5.2586 h 1.774913 l 2.513542,5.2586 h 4.354601 l -2.987587,-5.78776 c 0.970139,-0.41893 2.678906,-1.76389 2.678906,-4.25538 0,-2.92145 -1.885156,-5.00504 -5.677517,-5.00504 z m -2.656858,7.05556 v -4.14514 h 2.061545 c 1.20165,0 2.204862,0.70555 2.204862,2.10564 0,1.36701 -0.937066,2.0395 -2.22691,2.0395 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path839" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 75.340794,279.19681 0.881945,-3.2632 h 4.486892 l 0.87092,3.2632 h 4.20026 l -4.718402,-15.04818 h -4.894792 l -4.7625,15.04818 z m 3.241146,-11.6086 1.444184,5.51216 h -3.09783 l 1.466233,-5.51216 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path841" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 90.896091,279.19681 v -8.49974 h 0.132292 l 5.78776,8.49974 h 3.042709 v -15.04818 h -3.638021 v 8.40052 h -0.143316 l -5.765712,-8.40052 h -3.064757 v 15.04818 z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:22.5778px;font-family:'SF Compact Display';-inkscape-font-specification:'SF Compact Display, Ultra-Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#c41540;fill-opacity:1;stroke-width:0.264583"
+ id="path843" />
+ </g>
+ <g
+ aria-label="consulting"
+ style="font-style:normal;font-weight:normal;font-size:22.5778px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ id="text821">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 57.887758,282.26474 c -1.490133,1.78364 -4.492977,5.50897 -7.450666,5.50897 -1.2192,0 -1.964267,-0.90311 -1.964267,-2.05457 0,-2.86738 2.709333,-5.57671 4.289778,-5.57671 0.4064,0 0.677333,0.31608 0.677333,0.83537 0,0.72249 -0.316089,1.44498 -0.519289,2.14489 0.112889,0.0226 0.293511,0.0452 0.519289,0.0452 0.925689,0 1.896534,-0.67734 1.896534,-1.85138 0,-0.8128 -0.880534,-1.44498 -2.257778,-1.44498 -3.002845,0 -6.773334,2.88996 -6.773334,5.77991 0,1.87396 0.993423,2.88996 2.799645,2.88996 3.793067,0 6.773333,-3.4544 8.985955,-6.18631 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path846" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 68.753314,282.15185 c -0.8128,0.97084 -1.490133,1.44498 -2.302933,1.44498 -0.835378,0 -1.377245,-0.58703 -1.535289,-1.49014 -0.2032,-1.2192 -1.174045,-2.2352 -2.777067,-2.2352 -3.002844,0 -6.637867,2.79965 -6.637867,6.00569 0,1.64818 1.083734,2.66418 2.731911,2.66418 3.138312,0 5.915378,-2.52871 6.615289,-5.53156 0.428978,0.54187 0.903112,0.85796 1.603023,0.85796 0.993422,0 1.8288,-0.76765 2.4384,-1.53529 z m -10.3632,6.11858 c -0.677333,0 -0.993422,-0.45156 -0.993422,-1.19663 0,-1.89653 2.348089,-6.93137 4.628444,-6.93137 0.677334,0 0.993422,0.45155 0.993422,1.19662 0,1.89653 -2.348088,6.93138 -4.628444,6.93138 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path848" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 68.786474,284.25158 2.935111,-4.10915 -2.573867,0.0903 c -1.557866,2.70933 -3.206044,5.30577 -4.786488,7.94737 l 2.280355,-0.0677 c 1.128889,-2.2352 5.170311,-7.69902 6.953956,-7.69902 0.4064,0 0.632177,0.24835 0.632177,0.56444 0,1.39983 -3.115733,3.83823 -3.115733,5.87023 0,0.8128 0.519289,1.55786 1.670756,1.55786 1.174044,0 2.122311,-0.63218 3.702755,-2.28035 1.286934,-1.35467 2.483556,-2.86738 3.273778,-3.79307 l -0.225778,-0.11289 c -0.541866,0.65476 -1.715911,2.12231 -3.002844,3.49956 -1.648178,1.76106 -2.596445,2.28035 -3.025422,2.28035 -0.4064,0 -0.587023,-0.24835 -0.587023,-0.6096 0,-1.67075 3.115734,-4.04142 3.115734,-6.07342 0,-0.8128 -0.519289,-1.44498 -1.512711,-1.44498 -2.348089,0 -4.831645,3.34151 -5.6896,4.42525 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path850" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 80.785858,288.06723 c 0.880534,-0.2032 1.738489,-1.19663 1.738489,-2.37067 0,-0.90311 -0.451555,-1.53529 -0.903111,-2.12231 -0.451556,-0.6096 -0.903111,-1.2192 -0.903111,-2.05458 0,-0.79022 0.474133,-1.37724 1.309511,-1.37724 0.699911,0 1.038578,0.51928 1.038578,1.12888 0,0.56445 -0.135467,1.17405 -0.451556,1.76107 0.135467,0.0452 0.383822,0.11289 0.654756,0.11289 0.857955,0 1.512711,-0.63218 1.512711,-1.49013 0,-1.12889 -1.106311,-1.78365 -2.551289,-1.78365 -1.603022,0 -3.318933,0.85796 -3.318933,2.55129 0,0.69991 0.451555,1.28693 0.903111,1.89653 0.451555,0.58703 0.903111,1.2192 0.903111,2.00943 0,1.17404 -1.196622,1.94169 -2.302933,1.94169 -0.880534,0 -1.6256,-0.6096 -1.6256,-1.44498 0,-0.33867 0.112888,-0.65476 0.270933,-0.92569 0.158044,0.0903 0.316089,0.11289 0.496711,0.11289 0.474133,0 0.903111,-0.33867 0.903111,-0.97085 0,-0.49671 -0.383822,-0.97084 -1.083733,-0.97084 -1.061156,0 -1.6256,1.10631 -1.6256,2.05458 0,1.8288 1.670755,2.41582 3.228622,2.41582 4.380089,0 6.660444,-3.00285 9.053689,-6.16373 l -0.180622,-0.13547 c -1.919111,2.52871 -3.996267,5.19289 -7.066845,5.87022 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path852" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 93.7261,280.32305 -1.941689,3.16089 c -1.377244,2.28035 -3.612444,4.38009 -4.741333,4.38009 -0.316089,0 -0.541867,-0.27094 -0.541867,-0.63218 0,-1.15147 1.648178,-3.4544 4.018845,-7.08942 l -2.393245,0.0903 c -2.099733,3.4544 -3.431822,5.55413 -3.431822,6.7056 0,0.79022 0.496711,1.46755 1.4224,1.46755 1.919111,0 3.318934,-1.60302 4.402667,-2.75449 l 0.04516,0.0452 c -0.135466,0.24835 -0.270933,0.72249 -0.270933,1.28693 0,0.8128 0.587022,1.4224 1.490133,1.4224 1.241778,0 2.528712,-0.92569 4.041423,-2.48355 1.264355,-1.28694 2.4384,-2.75449 3.160889,-3.70276 l -0.180628,-0.1355 c -0.587022,0.76765 -1.873955,2.34809 -3.206044,3.70276 -1.106311,1.10631 -2.460978,2.21262 -3.206045,2.21262 -0.270933,0 -0.428977,-0.18062 -0.428977,-0.49671 0,-1.30951 1.715911,-3.43182 4.086577,-7.36035 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path854" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 104.0773,272.53371 -6.299195,10.34063 c -1.286934,2.14489 -1.896534,3.34151 -1.896534,4.17689 0,0.90311 0.519289,1.35466 1.535289,1.35466 1.444978,0 2.6416,-0.85795 4.40267,-2.6416 1.016,-1.03858 2.16746,-2.50613 2.91253,-3.49955 l -0.2032,-0.0677 c -1.06116,1.37725 -2.19004,2.70934 -3.31893,3.83823 -1.219203,1.2192 -2.393247,1.96426 -3.025425,1.96426 -0.338667,0 -0.496711,-0.22578 -0.496711,-0.6096 0,-0.76764 0.745066,-2.00942 1.919111,-3.88338 l 6.976535,-11.10826 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path856" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 104.95255,280.63914 c -1.80622,3.11573 -3.22862,4.74133 -3.22862,6.2992 0,1.08373 0.85795,1.46755 1.80622,1.46755 1.37724,0 2.95769,-1.15146 4.35751,-2.55129 1.26436,-1.26435 2.37067,-2.66417 3.048,-3.56729 l -0.13547,-0.11288 c -0.99342,1.30951 -2.21262,2.70933 -3.18346,3.6576 -1.39983,1.35466 -2.73191,2.16746 -3.47698,2.16746 -0.38382,0 -0.6096,-0.27093 -0.6096,-0.65475 0,-0.88054 0.92569,-2.2352 3.63502,-6.7056 h 2.91253 l 0.2032,-0.4064 h -2.86737 l 1.87395,-2.93511 -2.4384,0.0903 -1.69333,2.8448 h -1.73849 l -0.15804,0.4064 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path858" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 111.5756,280.34563 c -2.68676,4.24462 -3.52214,5.41866 -3.52214,6.59271 0,0.85795 0.56445,1.46755 1.55787,1.46755 1.06115,0 2.2352,-0.6096 3.97369,-2.34809 1.17404,-1.17404 2.61902,-2.79964 3.36409,-3.74791 l -0.2032,-0.13546 c -0.54187,0.63217 -1.80623,2.12231 -3.13831,3.47697 -1.64818,1.67076 -2.75449,2.30294 -3.34152,2.30294 -0.27093,0 -0.4064,-0.24836 -0.4064,-0.6096 0,-0.92569 1.2192,-2.66418 4.04143,-7.112 z m 3.63502,-5.12516 c -0.67734,0 -1.30951,0.51929 -1.30951,1.2192 0,0.69991 0.56444,1.03858 1.2192,1.03858 0.6096,0 1.17404,-0.58702 1.17404,-1.19662 0,-0.56445 -0.51929,-1.06116 -1.08373,-1.06116 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path860" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 116.80835,284.25158 2.93511,-4.10915 -2.57386,0.0903 c -1.55787,2.70933 -3.20605,5.30577 -4.78649,7.94737 l 2.28035,-0.0677 c 1.12889,-2.2352 5.17031,-7.69902 6.95396,-7.69902 0.4064,0 0.63218,0.24835 0.63218,0.56444 0,1.39983 -3.11574,3.83823 -3.11574,5.87023 0,0.8128 0.51929,1.55786 1.67076,1.55786 1.17404,0 2.12231,-0.63218 3.70275,-2.28035 1.28694,-1.35467 2.48356,-2.86738 3.27378,-3.79307 l -0.22578,-0.11289 c -0.54186,0.65476 -1.71591,2.12231 -3.00284,3.49956 -1.64818,1.76106 -2.59645,2.28035 -3.02542,2.28035 -0.4064,0 -0.58703,-0.24835 -0.58703,-0.6096 0,-1.67075 3.11574,-4.04142 3.11574,-6.07342 0,-0.8128 -0.51929,-1.44498 -1.51271,-1.44498 -2.34809,0 -4.83165,3.34151 -5.6896,4.42525 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path862" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 121.65058,289.82829 c -0.29351,-0.0226 -0.97085,-0.11289 -1.24178,-0.11289 -1.51271,0 -3.048,0.92569 -3.048,2.57387 0,2.16747 1.94169,2.91253 4.15431,2.91253 4.31236,0 7.60871,-2.48355 9.77618,-6.23146 3.40924,-0.97085 6.14115,-3.81565 8.15058,-6.72818 l -0.13547,-0.0677 c -2.032,2.70933 -4.4704,5.50897 -7.83449,6.47982 1.73849,-2.77707 3.2512,-5.66702 4.8768,-8.42151 l -2.30293,0.13546 -0.51929,0.97085 c -0.36125,-1.10631 -0.99342,-1.46756 -2.12231,-1.46756 -2.98027,0 -6.2992,3.43182 -6.2992,6.38951 0,1.12889 0.67733,2.14489 1.89653,2.14489 1.60302,0 2.95769,-1.08373 3.92853,-2.21262 l 0.0452,0.0452 c -2.07716,3.02542 -4.94453,8.69244 -9.18916,8.69244 -1.53528,0 -2.52871,-1.10631 -2.52871,-2.52871 0,-1.49013 0.8128,-2.39325 2.39325,-2.41582 z m 5.62186,-3.74791 c 0,-1.98684 2.34809,-5.93795 4.56072,-5.93795 0.8128,0 0.92568,0.74506 0.92568,1.37724 0,1.71591 -2.37066,6.11858 -4.2672,6.11858 -1.016,0 -1.2192,-0.67734 -1.2192,-1.55787 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.5778px;font-family:'Snell Roundhand Script';-inkscape-font-specification:'Snell Roundhand Script, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583"
+ id="path864" />
+ </g>
+ <g
+ aria-label="IT"
+ transform="scale(1.8202946,0.54936163)"
+ style="font-style:normal;font-weight:normal;font-size:23.2813px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#4a4a4a;fill-opacity:1;stroke:none;stroke-width:0.272828"
+ id="text825">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 2.8215763,510.19523 v -0.95453 h 6.5886212 v 0.95453 l -2.1418839,0.2561 q -0.023281,1.46672 -0.046563,2.98001 0,1.51329 0,3.02657 v 1.14079 q 0,1.49001 0,3.00329 0.023281,1.49001 0.046563,3.0033 l 2.1418839,0.25609 v 0.95454 H 2.8215763 v -0.95454 l 2.1418839,-0.25609 q 0.046563,-1.46673 0.046563,-2.98001 0,-1.51329 0,-3.02658 v -1.14079 q 0,-1.51328 0,-3.00329 0,-1.51329 -0.046563,-3.00329 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.2813px;font-family:'Source Serif Pro';-inkscape-font-specification:'Source Serif Pro, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#4a4a4a;fill-opacity:1;stroke-width:0.272828"
+ id="path826" />
+ <path
+ inkscape:connector-curvature="0"
+ d="m 10.902387,513.38478 0.18625,-4.14408 h 12.758179 l 0.18625,4.14408 h -1.350318 l -0.512189,-2.98002 h -3.562047 q -0.02328,1.49001 -0.04656,3.0033 0,1.51329 0,3.04985 v 1.14079 q 0,1.49001 0,3.00329 0.02328,1.49001 0.04656,3.0033 l 2.374698,0.25609 v 0.95454 h -7.030967 v -0.95454 l 2.374697,-0.25609 q 0.04656,-1.49001 0.04656,-2.98001 0,-1.51329 0,-3.02658 v -1.14079 q 0,-1.51328 0,-3.02657 0,-1.51329 -0.04656,-3.02658 h -3.562046 l -0.512189,2.98002 z"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.2813px;font-family:'Source Serif Pro';-inkscape-font-specification:'Source Serif Pro, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#4a4a4a;fill-opacity:1;stroke-width:0.272828"
+ id="path828" />
+ </g>
+ </g>
+</svg>
-#!/Users/kilian/perl5/perlbrew/perls/perl-5.24.1/bin/perl
+#!/usr/local/bin/perl
use strict;
-use lib ('backoffice/api/lib/perl5');
-use lib ('backoffice/api/lib');
+use lib ('./backoffice/api/lib/perl5');
+use lib ('./backoffice/api/lib');
use File::Basename;
# use lib (dirname($0).'/backoffice/lib');
use Template;
# use Template::Constants qw( :debug );
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
-use dksconfig qw($sitecfg);
+use dksconfig qw($sitecfg $messages);
#use FindBin qw($Bin $RealBin);
use Data::Dumper;
$vars->{page} = 'page/'.$vars->{page};
$vars->{pagename} = basename($vars->{page});
-
+$vars->{messages} = $messages;
# $vars->{dbconn} = 'DBI:SQLite:dbname=fld.sqlite';
$vars->{pagename} =~ s/\.tt$//;
#print Dumper($vars);
# close(NP);
}
#print Dumper($vars);
+my ($browserlang) = $ENV{HTTP_ACCEPT_LANGUAGE} =~ /^(\w+)[,|;|-]/;
+$vars->{lang} = 'en';
+if (exists($messages->{$browserlang})){
+ $vars->{lang} = $browserlang;
+}
+if ($sitecfg->{gdpr}){
+ $vars->{gdpr_expiration} = `date -R -v +1m`;
+ chomp($vars->{gdpr_expiration});
+ $vars->{gdpr_display} = 'block';
+ if ($cgi->cookie($sitecfg->{gdpr})){
+ $vars->{gdpr_display} = 'none';
+ }
+}
my $skl = dirname($vars->{page});
# print Dumper($template);
$template->process("skeleton/index.tt",$vars) || die "Template process failed: ", $template->error(), "\n";
+if ($vars->{page} =~ /\.tt$/){
+ print '<pre>'.Dumper($browserlang)."->".Dumper($vars->{lang})."->".Dumper($ENV{HTTP_ACCEPT_LANGUAGE})."</pre>";
+}
+
--- /dev/null
+#!/Users/kilian/perl5/perlbrew/perls/perl-5.24.1/bin/perl
+
+use strict;
+use lib ('backoffice/api/lib/perl5');
+use lib ('backoffice/api/lib');
+use File::Basename;
+# use lib (dirname($0).'/backoffice/lib');
+use Template;
+# use Template::Constants qw( :debug );
+use CGI;
+use CGI::Carp qw/fatalsToBrowser/;
+use dksconfig qw($sitecfg);
+#use FindBin qw($Bin $RealBin);
+
+use Data::Dumper;
+use JSON::PP;
+use URI::Encode qw /uri_encode/;
+#my $tmpldir = "/mnt/c/Users/ksaff/Workspace/juridig/app/tmpl";
+# chdir(dirname($0));
+
+my $cgi = new CGI();
+my $p=();
+my $vars = $sitecfg;
+my @params = $cgi->param();
+foreach my $pp (@params){
+ $p->{$pp} = $cgi->param($pp);
+}
+
+$vars->{filepath} = substr($cgi->url({-absolute=>1}),length($vars->{basepath})+1);
+$vars->{baseurl} = $cgi->url({-base=>1}).$vars->{basepath};
+$vars->{url} = $cgi->url({-full=>1});
+$vars->{encodedurl} = uri_encode($vars->{url},{encode_reserved => 1});
+
+if ($vars->{filepath} ne ""){
+ $vars->{page} = $vars->{filepath};
+ $vars->{page} =~ s/html$/tt/;
+
+}
+$vars->{abspath} = "";
+$vars->{pagelink} = basename($vars->{page});
+$vars->{pagelink} =~ s/\.tt$//;
+
+
+#}
+#$p->{dirname} = dirname($0);
+#if (!exists($p))
+#$p->{baseurl} = $cgi->url({-base=>1});
+#$p->{pathinfo} =
+#$p->{basepath} = ;
+
+# if (!exists($p->{sid}))
+# {
+# $p->{sid} = $cgi->cookie('juridig');
+# }
+# my $se = session->new();
+# my $sesdata = $se->getsession($p->{sid});
+# if (!exists($sesdata->{usersession})){
+# $p->{page} = "login";
+# }
+print $cgi->header(-type=>'text/html', -charset=>"utf-8");
+my $template = Template->new({INCLUDE_PATH => [dirname($0).'/tmpl']});
+my @lv = split(/\//,$vars->{filepath});
+my $absnum = scalar(@lv)-1;
+$vars->{abspath} = "";
+for (my $i=0;$i<$absnum;$i++){
+ $vars->{abspath} .= "../";
+}
+$vars->{params} = $p;
+$vars->{pageshort} = $vars->{page};
+$vars->{page} = 'page/'.$vars->{page};
+
+$vars->{pagename} = basename($vars->{page});
+
+# $vars->{dbconn} = 'DBI:SQLite:dbname=fld.sqlite';
+$vars->{pagename} =~ s/\.tt$//;
+#print Dumper($vars);
+if (! -e dirname($0).'/tmpl/'.$vars->{page}){
+ # mkdir(dirname(dirname($0).'/tmpl/'.$vars->{page}));
+ # open(NP,">".dirname($0).'/tmpl/'.$vars->{page});
+ # print NP $vars->{page};
+ # close(NP);
+}
+#print Dumper($vars);
+my $skl = dirname($vars->{page});
+# print Dumper($template);
+$template->process("skeleton/index.tt",$vars) || die "Template process failed: ", $template->error(), "\n";
+
+
// Slideshow
-var slideIndex = 1;
+var slideIndex = 0;
showDivs(slideIndex);
-function plusDivs(n) {
- showDivs(slideIndex += n);
-}
+// function plusDivs(n) {
+// showDivs(slideIndex += n);
+// }
-function currentDiv(n) {
- showDivs(slideIndex = n);
-}
+// function currentDiv(n) {
+// showDivs(slideIndex = n);
+// }
function showDivs(n) {
- var i;
+
var x = document.getElementsByClassName("mySlides");
- var dots = document.getElementsByClassName("demodots");
- if (n > x.length) {slideIndex = 1}
- if (n < 1) {slideIndex = x.length} ;
- for (i = 0; i < x.length; i++) {
+ //var dots = document.getElementsByClassName("demodots");
+ if (n > x.length) { n=0;}
+ //if (n < 1) {slideIndex = x.length} ;
+ for (var i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
- for (i = 0; i < dots.length; i++) {
- dots[i].className = dots[i].className.replace(" w3-white", "");
- }
- x[slideIndex-1].style.display = "block";
- dots[slideIndex-1].className += " w3-white";
+ var y = n+1;
+ if (y>x.length-1){y=0;}
+ console.log(y);
+ // for (i = 0; i < dots.length; i++) {
+ // dots[i].className = dots[i].className.replace(" w3-white", "");
+ // }
+ x[n].style.display = "block";
+ setTimeout("showDivs("+y+");",15000);
+ //dots[slideIndex-1].className += " w3-white";
}
\ No newline at end of file
--- /dev/null
+<html>
+ <head>
+<style>
+
+.fixed_header{
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: collapse;
+
+}
+
+.fixed_header tbody{
+ display:block;
+ width: 100%;
+ overflow-y: scroll;
+ height: 200px;
+}
+
+.fixed_header thead tr,.fixed_header tfoot tr {
+ display: block;
+}
+
+.fixed_header thead,.fixed_header tfoot {
+ background: black;
+ color:#fff;
+}
+
+.fixed_header th, .fixed_header td {
+ padding: 5px;
+ text-align: left;
+ width: 100%;
+}
+
+.fixed_header tr:nth-child(even) {
+ background-color: rgb(247, 247, 247);
+}
+div.tblframe {
+ display: block;
+ border: 1px solid red;
+ width: 100%;
+ height: 260px;
+}
+
+th,td {
+ border: 1px solid grey;
+}
+::-webkit-scrollbar {
+ -webkit-appearance: none;
+ width: 10px;
+}
+::-webkit-scrollbar-thumb {
+ border-radius: 0px;
+ background-color: rgba(0, 0, 0, .5);
+ -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
+}
+</style>
+</head>
+<body>
+<div class="tblframe">
+<table class="fixed_header">
+ <thead>
+ <tr>
+ <th><div style="width: 200px;">Col</div></th>
+ <th><div style="width: 100px;">Col 2</div></th>
+ <th><div style="width: 80px;">Col 3</div></th>
+ <th><div style="width: 90px;">Col 4</div></th>
+ <th><div style="width: 120px;">Col 5</div></th>
+ </tr>
+ </thead>
+ <tfoot>
+ <tr>
+ <th><div style="width: 200px;">Col 1</div></th>
+ <th><div style="width: 100px;">Col 2</div></th>
+ <th><div style="width: 80px;">Col 3</div></th>
+ <th><div style="width: 90px;">Col 4</div></th>
+ <th><div style="width: 120px;">Col 5</div></th>
+ </tr>
+ </tfoot>
+ <tbody>
+ <tr>
+ <td><div style="border: 1px solid green;width: 200px; display:block; overflow: hidden;white-space: nowrap;">Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1Col 1</div></td>
+ <td><div style="width: 100px;">row 1-1</div></td>
+ <td><div style="width: 80px;">row 1-2</div></td>
+ <td><div style="width: 90px;">row 1-3</div></td>
+ <td><div style="width: 113px;">row 1-4</div></td>
+ </tr>
+ <tr>
+ <td>row 2-0</td>
+ <td>row 2-1</td>
+ <td>row 2-2</td>
+ <td>row 2-3</td>
+ <td>row 2-4</td>
+ </tr>
+ <tr>
+ <td>row 3-0</td>
+ <td>row 3-1</td>
+ <td>row 3-2</td>
+ <td>row 3-3</td>
+ <td>row 3-4</td>
+ </tr>
+ <tr>
+ <td>row 4-0</td>
+ <td>row 4-1</td>
+ <td>row 4-2</td>
+ <td>row 4-3</td>
+ <td>row 4-4</td>
+ </tr>
+ <tr>
+ <td>row 5-0</td>
+ <td>row 5-1</td>
+ <td>row 5-2</td>
+ <td>row 5-3</td>
+ <td>row 5-4</td>
+ </tr>
+ <tr>
+ <td>row 6-0</td>
+ <td>row 6-1</td>
+ <td>row 6-2</td>
+ <td>row 6-3</td>
+ <td>row 6-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ <tr>
+ <td>row 7-0</td>
+ <td>row 7-1</td>
+ <td>row 7-2</td>
+ <td>row 7-3</td>
+ <td>row 7-4</td>
+ </tr>
+ </tbody>
+
+</table>
+</div>
+</body>
+</html>
-<div class="w3-display-container w3-white w3-border-top">
+<div class="w3-display-container w3-white w3-border-top w3-theme">
<div class="w3-row">
- <div class="w3-container w3-third w3-padding-24">
- <img src="[% abspath %]img/saffranitconsulting.svg" style="width: 50%;"/><br/>
+ <div class="w3-container w3-quarter w3-padding-24">
+ <div class="w3-container">
+ <img src="[% abspath %]img/sitc2.png" style="width: 60px; float: left;margin-right: 10px;" />
+ <span>SAFFRAN IT consulting<br/>DKS S.à r.l.</span>
+ </div>
+ <div class="w3-container">
4, rue Principale<br/>
L-3770 Tétange<br/>
+ Tel: +352 691 504 574<br/>
+ Email: info@saffran.lu
+ </div>
</div>
- <div class="w3-container w3-third w3-padding-24">
- <ul class="w3-ul">
- <li><a href="[% abspath %]impressum.html">Impressum</a></li>
- <li><a href="[% abspath %]privacy.html">Privatsphäre</a></li>
- <li><a href="[% abspath %]terms.html">AGB</a></li>
- <li><a href="[% abspath %]contact.html">Kontakt</a></li>
- </ul>
+ <div class="w3-container w3-quarter w3-padding-24">
+ <div class="w3-bar-block">
+ <a class="w3-button w3-bar-item" href="[% abspath %]impressum.html">Impressum</a></li>
+ <a class="w3-button w3-bar-item" href="[% abspath %]privacy.html">Privatsphäre</a>
+ <a class="w3-button w3-bar-item" href="[% abspath %]terms.html">AGB</a>
+ <a class="w3-button w3-bar-item" arget="_blank" href="https://webmail.your-server.de">Webmail</a>
+
+ </div>
</div>
- <div class="w3-container w3-third w3-padding-24">
- <ul class="w3-ul">
- <li><a href="[% abspath %]aboutus.html">über uns</a></li>
- <li><a target="_blank" href="https://konsoleh.your-server.de">Website Admin</a></li>
- <li><a target="_blank" href="https://webmail.your-server.de">Webmail</a></li>
- </ul>
+ <div class="w3-container w3-quarter w3-padding-24">
+ <div class="w3-container">
+ <h4>Öffnungszeiten</h4>
+ <p>Montags-Frietags<br/>09:00-12:00
+ <br/>14:00-17:00</p>
+ <p>Ausserhalb der genannten Zeiten nur mit Termin-Vereinbarung</p>
+ </div>
</div>
</div>
</div>
-<div class="w3-display-container w3-center w3-theme-dark w3-white">
- © 2020 Saffran IT Consulting s.à r.l.
+<div class="w3-display-container w3-center w3-grey w3-white">
+ © 2020 Saffran IT Consulting / DKS S.à r.l.
</div>
\ No newline at end of file
--- /dev/null
+[% IF gdpr %]
+ <div class="w3-bottom w3-black w-text-white w3-padding" id="gdpr_notice" style="display: [% gdpr_display %];">
+ <div class="w3-bar">
+ <span class="w3-bar-item w3-center">[% messages.$lang.gdpr_notice %]</span>
+ <button class="w3-button w3-bar-item w3-blue-grey w3-right" onclick="document.cookie='[% gdpr %]=OK; expires=[% gdpr_expiration %]; path=/;';document.getElementById('gdpr_notice').style.display='none'; return false;">OK</button>
+ </div>
+ </div>
+[% END %]
\ No newline at end of file
<div class="w3-top w3-border-bottom">
-<div class="w3-display-container w3-theme-dark w3-text-white w3-hide-small w3-bar">
- <span class="w3-bar-item">Tel: <a href="tel:00352691504574">+352 691 504 574</a></span><span class="w3-bar-item w3-right">E-Mail: <a href="mailto:contact@saffran.lu">contact@saffran.lu</a></span>
-</div>
-
- <div class="w3-bar w3-white">
- <a class="w3-bar-item" href="[% apspath %]index.html"><img src="img/saffranitconsulting.svg" alt="Saffran IT Consulting Logo" style="height: 38px;"/></a>
- <div class="w3-dropdown-hover">
- <button class="w3-button">Produkte</button>
- <div class="w3-dropdown-content w3-bar-block w3-card-4">
- <a href="[% abspath %]privatecloud.html" class="w3-bar-item w3-button">Private Cloud</a>
- <a href="[% abspath %]apps.html" class="w3-bar-item w3-button">Apps</a>
- <a href="[% abspath %]hosting.html" class="w3-bar-item w3-button">Hosting</a>
+ <div class="w3-bar w3-theme">
+ <a class="w3-bar-item" href="[% apspath %]index.html"><img src="[% abspath %]img/sitc2.png" alt="Saffran IT Consulting Logo" style="width: 60px;"/></a>
+ <div class="w3-bar-item">
+ <div class="w3-xlarge w3-branding"><strong>SAFFRAN</strong></div>
+ <div class="w3-branding2">IT Consulting</div>
</div>
- </div>
- <div class="w3-dropdown-hover">
- <button class="w3-button">Dienstleistungen</button>
- <div class="w3-dropdown-content w3-bar-block w3-card-4">
- <a href="[% abspath %]backup.html" class="w3-bar-item w3-button">Backup</a>
- <a href="[% abspath %]development.html" class="w3-bar-item w3-button">Entwicklung</a>
- <a href="[% abspath %]support.html" class="w3-bar-item w3-button">Support</a>
- </div>
- </div>
- <a class="w3-bar-item w3-button" href="[% apspath %]aboutus.html">Über uns</a>
- <a class="w3-bar-item w3-button" href="[% apspath %]contact.html">Kontakt</a>
- <a class="w3-bar-item w3-button w3-right" target="_blank" href="[% abspath %]backoffice/login.html">Login</a>
+ <a class="w3-bar-item w3-button w3-nav-button" href="[% abspath %]index.html">Home</a>
+ <a class="w3-bar-item w3-button w3-nav-button" href="[% abspath %]services.html">Services</a>
+ <a class="w3-bar-item w3-button w3-nav-button" href="[% abspath %]contact.html">Kontakt</a>
+ <a class="w3-bar-item w3-button w3-nav-button" href="[% abspath %]aboutus.html">Über uns</a>
+ <a class="w3-bar-item w3-button w3-right w3-nav-button" target="_blank" href="[% abspath %]backoffice/login.html">Login</a>
</div>
</div>
<div class="w3-container w3-center">
<h1>Ueber uns</h1>
+ <h2>SAFFRAN IT Consulting</h2>
+ <p></p>
</div>
\ No newline at end of file
- <!-- <div class="w3-display-container">
- <div class="w3-display-container mySlides" style="height: 200px; overflow: hidden;">
- <img src="[% abspath %]img/slides/slide1.jpg" style="width:100%">
- <div class="w3-display-middle w3-container w3-padding-32">
- <h1>Keep your data private</h1>
+ <div class="w3-display-container">
+ <div class="w3-display-container mySlides w3-animate-top" style="height: 300px; overflow: hidden;">
+ <div class="w3-row">
+ <div class="w3-container w3-cell">
+ <img src="[% abspath %]img/slides/slide4.jpg" style="width:100%">
+ </div>
+ <div class="w3-container w3-cell w3-theme-l3">
+ <p class="w3-text-black w3-xlarge w3-padding-64"><span class="w3-large">Bevor Sie ihren PC zum Fenster rausschmeißen,</span><br/>Fragen Sie uns!<br/>Das wird billiger!</p>
+ </div>
</div>
- </div>
- <div class="w3-display-container mySlides" style="height: 200px; overflow: hidden;">
- <img src="[% abspath %]img/slides/slide1.jpg" style="width:100%">
- <div class="w3-display-middle w3-container w3-padding-32">
- <h1>Access your data from anywhere</h1>
- </div>
- </div>
- <div class="w3-display-container mySlides" style="height: 200px; overflow: hidden;">
- <img src="[% abspath %]img/slides/slide1.jpg" style="width:100%">
- <div class="w3-display-middle w3-container w3-padding-32">
- <h1>Manage your data the easy way</h1>
+
+ <div class="w3-display-middle w3-container w3-padding w3-center">
+
</div>
</div>
- </div>
- -->
- <div class="w3-container w3-center">
- <h1>Wir sind umgezogen</h1>
- </div>
- <div class="w3-display-container w3-row w3-center" style="margin-top: 70px;">
- <div class="w3-container w3-third">
- <div class="w3-display-container" style="height: 200px;">
- <img class="w3-display-middle" src="[% abspath %]img/dks_logo.png" style="width: 200px;">
+ <div class="w3-display-container mySlides w3-animate-right" style="height: 300px; overflow: hidden;">
+ <img src="[% abspath %]img/slides/slide2.jpg" style="width:100%">
+ <div class="w3-display-middle w3-container w3-center w3-padding">
+ <p class="w3-text-white w3-xlarge">behalten Sie Ihre Daten Hause/im Büro<br/>Und greifen Sie von überall drauf zu!</h1>
</div>
- <strong>DKS s.à r.l.</strong><br>
- <address style="text-decoration: line-through;">8b, rue du Moulin<br>
- L-6914 Roodt/Syre<br/>
- Tel: +352 26 78 74 06<br/>
- E-Mail: info@dks.lu
- </address>
-
- </div>
- <div class="w3-container w3-display-container w3-quarter w3-center">
- <img src="[% abspath %]img/arrow_toright.svg" style="width: 70%;">
</div>
- <div class="w3-container w3-third">
- <div class="w3-display-container" style="height: 200px;">
- <img class="w3-display-middle" src="[% abspath %]img/sitc.png" style="width: 90%;"></div>
- <strong>SAFFRAN IT Consulting</strong><br>
- <address>4, rue Principale<br>
- L-3770 Tétange</address>
- Tel: +352 691 504 574<br/>
- E-Mail: info@saffran.lu
- </div>
- </div>
- <div class="w3-container w3-center">
- <h1>Unsere Produkte</h1>
- </div>
- <div class="w3-container">
-
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/PrivateCloud.png" alt="Private Cloud" style="height: 48px;">
- <h2>Private Cloud</h2>
- </header>
- <div class="w3-container">
- Behalten Sie Ihre Daten bei sich zu Hause oder im Büro. Somit haben Sie jederzeit Zugriff auf Ihre Daten.<br/><br/>
- </div>
- </div>
-
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/Apps.png" alt="Apps" style="height: 48px;">
- <h2>Apps</h2>
- </header>
- <div class="w3-container">
- Neben der Verwaltung Ihrer Dateien, können Sie mit Hilfe unserer Apps verschiedenste Daten in Ihrer "Private Cloud" verwalten.
+ <div class="w3-display-container mySlides w3-animate-left" style="height: 300px; overflow: hidden;">
+ <img src="[% abspath %]img/slides/slide3.jpg" style="width:100%">
+ <div class="w3-display-middle w3-container w3-center w3-padding">
+ <p class="w3-xlarge w3-text-red">Verschwenden Sie keine Zeit,<br/>Mit aufwendiger Einarbeitung<br/>wir wissen wie es geht!</p>
+ </div>
</div>
</div>
+
+
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/Network.png" alt="Network" style="height: 48px;">
- <h2>Hosting</h2>
- </header>
- <div class="w3-container">
- Um das Paket zu vervollständigen, bieten wir Ihnen auch nach die Möglichkeit z.B. Ihre Webseite und/oder E-Mails Ihrer Domaine auf unseren Servern zu hosten.
- </div>
- </div>
- </div>
- <div class="w3-container w3-center">
- <h1>Unsere Dienstleistungen</h1>
- </div>
<div class="w3-container">
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/Disk_HDD.png" alt="Backup" style="height: 48px;">
- <h2>Backup</h2>
- </header>
- <div class="w3-container">
- Backup, Archiv, Versionierung und Synchronisation Ihrer Daten ist heute wichtiger denn je. Wir bieten Ihnen eine Lösung an mit der Sie nie wieder Daten verlieren.
- </div>
+ <div class="w3-row w3-border-bottom ">
+ <div class="w3-container w3-half w3-center w3-light-grey">
+ <img class="w3-margin" src="[% abspath %]img/cloud.jpg" alt="Private Cloud" style="width: 50%;"/>
+ </div>
+ <div class="w3-container w3-half w3-padding-24">
+ <h2>IT-Infrastruktur</h2>
+ <p>Behalten Sie Ihre Daten bei sich zu Hause oder im Büro. Somit haben Sie jederzeit Zugriff auf Ihre Daten.</p>
+ </div>
</div>
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/Code.png" alt="Entwicklung" style="height: 48px;">
- <h2>Entwicklung</h2>
- </header>
- <div class="w3-container">
- Jedes Unternehmen funktionniert anders, respektive hat andere Vorgaben, Voraussetzungen und/oder Abhängigkeiten. Wir können unsere Anwendungen an Ihre Geschäftsprozesse anpassen respektive eine ganz neue Anwendung für Sie erstellen.
+ <div class="w3-row w3-border-bottom">
+ <div class="w3-container w3-half w3-padding-24">
+ <h2>Software / Anwendungen</h2>
+ <p>Neben der Verwaltung Ihrer Dateien, können Sie mit Hilfe unserer Apps verschiedenste Daten in Ihrer "Private Cloud" verwalten. </p>
+ </div>
+ <div class="w3-container w3-half w3-center w3-padding w3-light-grey">
+ <img class="w3-margin" src="[% abspath %]img/Apps.svg" alt="Apps" style="width: 50%;"/>
</div>
</div>
- <div class="w3-container w3-third w3-padding-24 w3-border">
- <header class="w3-container w3-center">
- <img src="[% abspath %]img/Support.png" alt="Support" style="height: 48px;">
- <h2>Support</h2>
- </header>
- <div class="w3-container">
- Wir Supporten nicht nur unsere Anwendungen, sondern beraten SIe auch noch in der Konzeption Ihrer IT-Infrastruktur, und können diese falls nötig auch noch pflegen.
+ <!-- <div class="w3-row w3-border-bottom w3-light-grey">
+ <div class="w3-container w3-half w3-center">
+ <img src="[% abspath %]img/Network.svg" alt="Private Cloud" style="width: 50%;"/>
+ </div>
+ <div class="w3-container w3-half w3-padding-24">
+ <h2>Webseiten / E-Mail / Hosting</h2>
+ <p>Um das Paket zu vervollständigen, bieten wir Ihnen auch nach die Möglichkeit z.B. Ihre Webseite und/oder E-Mails Ihrer Domaine auf unseren Servern zu hosten.</p>
+ </div>
+ </div>
+ <div class="w3-row w3-border-bottom">
+ <div class="w3-container w3-half w3-padding-24">
+ <h2>Entwicklung / Datenbanken</h2>
+ <p>Jedes Unternehmen funktionniert anders, respektive hat andere Vorgaben, Voraussetzungen und/oder Abhängigkeiten. Wir können unsere Anwendungen an Ihre Geschäftsprozesse anpassen respektive eine ganz neue Anwendung für Sie erstellen.</p>
+ </div>
+ <div class="w3-container w3-half w3-center w3-light-grey">
+ <img src="[% abspath %]img/Code.svg" alt="Apps" style="width: 50%;"/>
+ </div>
+ </div> -->
+ <div class="w3-row w3-border-bottom w3-light-grey">
+ <div class="w3-container w3-half w3-center">
+ <img src="[% abspath %]img/Support.svg" alt="Support" style="width: 50%;"/>
+ </div>
+ <div class="w3-container w3-half w3-padding-24">
+ <h2>Support / IT-HelpDesk</h2>
+ <p>Wir Supporten nicht nur unsere Anwendungen, sondern beraten SIe auch noch in der Konzeption Ihrer IT-Infrastruktur, und können diese falls nötig auch noch pflegen.</p>
</div>
</div>
- </div>
</div>
+
-[% #USE DBI %]
-[% #USE dksdb = DBI(dsn, dbuser, dbpassword) %]
<!DOCTYPE html>
-<html lang="en">
+<html lang="[% lang %]">
<head>
[% INCLUDE block/head.tt %]
<link rel="stylesheet" href="[% abspath %]css/w3pro.css?v=[% vstamp %]">
<link rel="stylesheet" href="[% abspath %]css/theme.css?v=[% vstamp %]">
- <link rel="stylesheet" href="[% abspath %]css/site.css?v=[% vstamp %]">
+ <!-- <link rel="stylesheet" href="[% abspath %]css/site.css?v=[% vstamp %]"> -->
</head>
<body >
[% INCLUDE block/topnav.tt %]
- <div class="w3-display-container w3-main" style="margin-top: 100px; min-height: 70vh;">
+ <div class="w3-display-container w3-main" style="margin-top: 40px; min-height: 70vh;">
[% INCLUDE $page %]
</div>
[% INCLUDE block/footer.tt %]
+ [% INCLUDE block/gdpr.tt %]
<script src="[% abspath %]js/slides.js"></script>
</body>
</html>