$res = $self->{db}->dbexec("update appaccess set expiration=date(case when expiration >= date('".$statusdate."') then expiration + interval '".$duration." month' else date('".$statusdate."') + interval '".$duration." month' end) where id=".$apacc->{id});
} else {
$res = $self->{db}->dbexec("INSERT INTO appaccess (id_user, id_app, publicenabled, expiration) VALUES(".$iduser.", ".$idapp.", null, date('".$statusdate."') + interval '".$duration." month');");
- if (($apacc->{inittables}) && ($apacc->{inittables} ne "")){
- my @tbl = split(",",$apacc->{inittables});
- foreach my $t (@tbl){
- $self->{db}->dbexec("INSERT INTO ".$t." (id_user) VALUES (".$iduser.");");
+ # if (($apacc->{inittables}) && ($apacc->{inittables} ne "")){
+ # my @tbl = split(",",$apacc->{inittables});
+ # foreach my $t (@tbl){
+ #
+ # }
+ # }
+ if ($idapp eq "2"){ #is annauire
+ my $ud = $self->{db}->dbquery("SELECT * from users where id=".$iduser.";");
+ if (exists($ud->{id})){
+ $self->{db}->dbexec("INSERT INTO lawyercatalog (id_user) VALUES (".$iduser.");");
+ my $profile_link = lc(substr($ud->{username},0,index($ud->{username},0,'@')));
+ my $profexists = $self->{db}->dbquery("SELECT COUNT(*)+1 as cnt from lawyercatalog where profile_link='".$profile_link."';");
+ if ($profexists->{cnt} ne "1"){
+ $profile_link .= $profexists->{cnt};
+ }
+ $self->{db}->dbexec("UPDATE lawyercatalog SET profilelink='".$profile_link."' WHERE id_user=".$iduser.";");
}
- }
+ }
}
return $res;
}
our $sitecfg ={
cookiename => 'juridig',
dbtype => 'PgPP',
- dsn => 'DBI:PgPP:dbname=juridiglu_db;host=sql629.your-server.de',
- #dsn => 'DBI:PgPP:dbname=juridiglu_db;host=localhost',
+ #dsn => 'DBI:PgPP:dbname=juridiglu_db;host=sql629.your-server.de',
+ dsn => 'DBI:PgPP:dbname=juridiglu_db;host=localhost',
dbuser => 'juridiglu_user',
dbpassword => 'hfdR2C9pK9rQV4cH',
page => 'index.tt',
my $data = shift;
my $fields = ();
my @ddl = ();
+
foreach my $f (keys(%{$data})){
if (($f =~ /\_/) && ($f !~ /^ident_/)){
my $t = substr($f,0,index($f,"_"));
my $c = substr($f,length($t)+1);
#my ($t,$c) = $f =~ m/(.+)\_(.+)/;
$fields->{$t}->{$c} = $data->{$f};
- }
+ } elsif ($f =~ /^ident_/){
+ my $f2 = $f;
+ $f2 =~ s/^ident_//;
+
+ my $t = substr($f2,0,index($f2,"_"));
+ my $c = substr($f2,length($t)+1);
+ $fields->{$t}->{$c} = $data->{$f};
+ }
+
}
-
+
foreach my $tb (keys(%{$fields})){
my @sqlcol = ();
my @sqlval = ();
}
push (@sqlval,$v);
}
- push(@ddl,"INSERT INTO ".$tb." (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).") returning id;");
+ push(@ddl,"INSERT INTO public.".$tb." (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).") returning id;");
}
return @ddl;
}
push (@sqlval,$v);
#}
}
- return "INSERT INTO ".$schema.".\"".$table."\" (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).");";
+ return "INSERT INTO public.".$schema.".\"".$table."\" (".join(",",@sqlcol).") VALUES (".join(",",@sqlval).");";
}
sub create_ddl_update(){
}
push (@sqlcond,$c."=".$v);
}
- push(@ddl,"UPDATE ".$tb." SET ".join(",",@sqlupd)." WHERE ".join(" AND ",@sqlcond).";");
+ push(@ddl,"UPDATE public.".$tb." SET ".join(",",@sqlupd)." WHERE ".join(" AND ",@sqlcond).";");
+ }
+
+ return @ddl;
+}
+
+sub create_cnt_statement(){
+ my $self = shift;
+ my $data = shift;
+ my $fields = ();
+ my @ddl = ();
+ foreach my $f (keys(%{$data})){
+ if ($f =~ /^ident_/){
+ my $fx = substr($f,6);
+ my $t = substr($fx,0,index($fx,"_"));
+ my $c = substr($fx,length($t)+1);
+ #my ($t,$c) = $f =~ m/^ident_(.+)\_([a-z0-9|\_]+)/;
+ $fields->{$t}->{cond}->{$c} = $data->{$f};
+ }
+ }
+ foreach my $tb (keys(%{$fields})){
+ my @sqlcond = ();
+ foreach my $c (keys(%{$fields->{$tb}->{cond}})){
+ my $v = $fields->{$tb}->{cond}->{$c};
+ $v =~ s/'/''/g;
+ if ($v eq ''){
+ $v = 'null';
+ } else {
+ $v = "'".$v."'";
+ }
+ push (@sqlcond,$c."=".$v);
+ }
+ push(@ddl,"SELECT count(*) as cnt from ".$tb." WHERE ".join(" AND ",@sqlcond).";");
}
return @ddl;
$v =~ s/'/''/g;
push (@sqlcond,$c."='".$v."'");
}
- push(@ddl,"DELETE FROM ".$tb." WHERE ".join(" AND ",@sqlcond).";");
+ push(@ddl,"DELETE FROM public.".$tb." WHERE ".join(" AND ",@sqlcond).";");
}
return @ddl;
}
delete $p->{sid};
my $retid=undef;
my $type = "upd";
+ my $idexists = 0;
foreach my $px (keys(%{$p})){
if ($px eq "lawyercatalog_city"){
$p->{lawyercatalog_location_link} = $db->textunidecode($p->{$px});
#$p->{$px} = $db->securetext($p->{$px});
if (($px =~ /\_id$/) && ($p->{$px} eq "")){
+
$type = "ins";
}
+ if ($px =~ /^ident\_.+\_id$/){
+ $idexists = 1;
+ }
if ($p->{$px} =~ /^data:.+;base64,/){
# $html->{result}->{isfile} = 1;
}
}
}
+ if (($idexists == 0) && ($type eq "upd")){
+ my @sqlcnt = $db->create_cnt_statement($p);
+ my $rnums = 0;
+
+
+ foreach my $s (@sqlcnt){
+
+ $rnums= $db->dbquery($s);
+ }
+ if ($rnums->{cnt} eq "0"){
+ $type = "ins";
+ }
+
+ }
my @sql = ();
if ($type eq "ins"){
@sql = $db->create_ddl_insert($p);
$vars->{baseurl} = $cgi->url({-base=>1}).$vars->{basepath};
$vars->{siteurl} = $cgi->url({-base=>1}).dirname($vars->{basepath});
if ($vars->{filepath} ne ""){
+ $vars->{suffix} = substr($vars->{filepath},rindex($vars->{filepath},'.'));
$vars->{page} = $vars->{filepath};
$vars->{page} =~ s/html$/tt/;
}
# $skl = "skeleton/browser.tt";
# }
# #END - Browser Blocking
-print $cgi->header(-type=>'text/html', -charset=>"utf-8",-cookie => $cookie);
+my $ctype = 'text/html';
+if ($vars->{suffix} eq ".js"){
+ $ctype= "text/javascript";
+} elsif ($vars->{suffix} eq ".css"){
+ $ctype = "text/css";
+}
+print $cgi->header(-type=>$ctype, -charset=>"utf-8",-cookie => $cookie);
# print dirname($ENV{"SCRIPT_FILENAME"});
my $template = Template->new({INCLUDE_PATH => [dirname($ENV{"SCRIPT_FILENAME"}).'/tmpl']});
# }
# print Dumper($vars);
-#print "/*";
+print "/*";
# print Dumper($p);
-#§print Dumper($vars);
+print Dumper($vars);
# print Dumper($sess);
-#print "*/";
+print "*/";
var bident = false;
for (var d in $("#" + objid).data()){
//if (typeof $("#" + objid).data(d) == "string"){
- if ((d != "select2Id") && (d != "select2") && (d != "selectpicker")){
+ if ( (d != "select2Id") && (d != "select2") && (d != "selectpicker")){
// if (d.startsWith("ident_")){
//console.log(d);
if (bident == false){
var frmid=$("#" + objid)[0].form.id;
for (var idv in $("#" + frmid).data()){
- if ((idv != "select2Id") && (idv != "select2") && (idv != "selectpicker")){
+ if ( (idv != "select2Id") && (idv != "select2Id") && (idv != "select2") && (idv != "selectpicker")){
field[idv] = $("#" + frmid).data(idv);
}
}
//console.log(event.currentTarget.tagName);
//console.log(event.currentTarget.type);
if (event.currentTarget.type != "file"){
- console.log(savefield);
+ console.log('savefield');
savefield(event.currentTarget.id);
}
});
[% usercat = dksdb.prepare("select acc.id as access_id, acc.publicenabled, lc.id, lc.id_user, lc.surname, lc.prename, lc.company, lc.email, lc.phone, lc.address, lc.zip, lc.city, lc.description, lc.photo, lc.price, lc.profile_link, lc.court, lc.title, lc.country, lc.languages,lc.council,lc.website,lc.logo
from lawyercatalog lc join appaccess acc on (lc.id_user=acc.id_user and id_app in (select id from apps where app='annuaire')) where lc.id_user=? LIMIT 1;") %]
-[% lawyerspecs = dksdb.prepare("select lca.id,lca.selection,ca.id as id_category,category from categories ca left join lawyercategories lca on (ca.id=lca.id_category and lca.id_catalog=?) where ca.usertype='avocat' order by category asc;") %]
+[% lawyerspecs = dksdb.prepare("select lca.selection,ca.id as id_category,category from public.categories ca
+left join public.lawyercategories lca on (ca.id=lca.id_category and lca.id_catalog=?) where ca.usertype='avocat' group by ca.id,lca.selection order by ca.category asc;") %]
[% FOREACH cat = usercat.execute(session.id) %]
<header>
<nav class="navbar navbar-expand-md navbar-light fixed-top bg-light">
<ul class="navbar-nav mr-auto">
- URL du profile: <a href="[% siteurl %]/avocat/[% cat.profile_link %]" target="_blank">[% siteurl %]/avocat/[% cat.profile_link %].html</a>
+ URL du profile: <a href="[% siteurl %]avocat/[% cat.profile_link %]" target="_blank">[% siteurl %]/avocat/[% cat.profile_link %].html</a>
</ul>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<div class="form-inline">
[% FOREACH specs = lawyerspecs.execute(cat.id) %]
<div class="custom-control custom-switch" style="width: 200px;"><!-- --><!-- -->
- <input type="checkbox" class="custom-control-input" data-ident_lawyercategories_id="[% specs.id %]" data-lawyercategories_id_catalog="[% cat.id %]" data-lawyercategories_id_category="[% specs.id_category %]" value="1" id="category_[% specs.id_category %]" name="lawyercategories_selection"
- [% IF specs.id %]
+ <input type="checkbox" class="custom-control-input fieldsave" data-ident_lawyercategories_id_catalog="[% cat.id %]" data-ident_lawyercategories_id_category="[% specs.id_category %]" value="1" id="category_[% specs.id_category %]" name="lawyercategories_selection"
+ [% IF specs.selection %]
checked
[% END %]
>
use Template;
# use Template::Constants qw( :debug );
use CGI;
+use CGI::Carp qw(fatalsToBrowser);
use CGI::Cookie;
use JSON::PP;
<ul class="cat">
<li>
<ol class="type">
- [% FOREACH cats = dksdb.query("select cat.link,cat.category from lawyercategories lcat join categories cat on (lcat.id_category=cat.id) group by cat.id order by category;") %]
+ [% FOREACH cats = dksdb.query("select cat.link,cat.category from lawyercategories lcat
+join categories cat on (lcat.id_category=cat.id)
+join lawyercatalog lc on (lcat.id_catalog=lc.id)
+join appaccess ac on (ac.id_user=lc.id_user and ac.id_app='2' and ac.publicenabled = true)
+group by cat.id order by category;") %]
<li><a href="[% abspath%]domaines/[% cats.link %].html" >[% cats.category %]</a></li>
[% END %]
<div id="annuairenav"></div>
-<nav class="navbar navbar-expand-lg ">
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExample08" aria-controls="navbarsExample08" aria-expanded="false" aria-label="Toggle navigation">
+<nav class="navbar navbar-expand-sm ">
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarjuridig" aria-controls="navbarjuridig" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
- <div class="collapse navbar-collapse justify-content-md-center" id="navbarsExample08">
+ <div class="collapse navbar-collapse justify-content-center" id="navbarjuridig">
<ul class="navbar-nav">
- <li class="nav-item"> <a class="nav-link" href="[% basepath %]">Annuaire</a> </li>
+ <li class="nav-item"> <a class="nav-link" href="/">Annuaire</a> </li>
<li class="nav-item"> <a class="nav-link" href="[% basepath %]/backoffice/register.html">Vous êtes avocat?</a> </li>
<li class="nav-item"> <a class="nav-link btn btn-secondary" href="[% basepath %]/backoffice/login.html">Se Connecter</a> </li>
</div>
<div class="col-sm-3">
[% IF pr.council %]
- <span style="text-decoration: underline;">enregistré dans le(s) barreaux:</span>
+ <span style="text-decoration: underline;">Barreau(x) (appartenance):</span>
<ul style="list-style: none;">
[% FOREACH cc IN pr.council.split(',') %]
<li>[% cc %]</li>
</div>
</div>
<div class="col-lg-12" style="margin: 10px;">
- <h3>Je me présente</h3>
+
<p style="text-align: left;">[% pr.description %]</p>
</div>
[% IF pr.rendezvous %]
<hr>
</div>
[% INCLUDE block/domaines.tt %]
- <div class="section-title text-center center">
+ <!--<div class="section-title text-center center">
<h3>Lieus</h3>
<hr>
- </div>
- [% INCLUDE block/locations.tt %]
+ </div>-->
+ [% # INCLUDE block/locations.tt %]
</div>