# Inceput setari
my %events = (
- bucuresti => {
- date => '35 jebruarie 2059',
- locul => 'Strada speranţei, nr 1',
- sala => 'sala IDT de la etajul 10',
- locuri => 10,
- link => 'http://ieval.ro/',
- image => 'http://0.tqn.com/d/animatedtv/1/0/M/H/1/annoying_orange.jpg.jpg',
- },
-
balti => {
- date => '35 jebruarie 2059',
- locul => 'Strada speranţei, nr 1',
- sala => 'sala IDT de la etajul 10',
- locuri => 10,
- link => 'http://ieval.ro/',
- image => 'http://tasty-dishes.com/data_images/encyclopedia/orange/orange-03.jpg',
+ date => 'duminică, 29 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
},
- cluj => {
- date => '35 jebruarie 2059',
- locul => 'Strada speranţei, nr 1',
- sala => 'sala IDT de la etajul 10',
- locuri => 10,
- link => 'http://ieval.ro/',
- image => 'http://blog.clove.co.uk/wp-content/uploads/2013/07/Samsung-Logo.jpg',
+ bucuresti => {
+ date => 'sâmbătă, 21 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
},
chisinau => {
- date => '35 jebruarie 2059',
- locul => 'Strada speranţei, nr 1',
- sala => 'sala IDT de la etajul 10',
- locuri => 10,
- link => 'http://ieval.ro/',
- image => 'http://images.moneysavingexpert.com/images/OrangeLogo.jpg',
+ date => 'sâmbătă, 28 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
+ },
+
+ cluj => {
+ date => 'sâmbătă, 28 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
},
constanta => {
- date => '35 jebruarie 2059',
- locul => 'Strada speranţei, nr 1',
- sala => 'sala IDT de la etajul 10',
- locuri => 10,
- link => 'http://ieval.ro/',
- image => 'https://lh3.ggpht.com/-Dsy_8YO5Ais/UCxPnnfMOgI/AAAAAAAAAJ4/1iRXOKWACo8/s200/fresh_orange_slice.jpg',
+ date => 'sâmbătă, 21 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
},
+
+ valcea => {
+ date => 'vineri, 27 septembrie 2013',
+ locul => '',
+ sala => '',
+ locuri => 60,
+ link => '',
+ image => '',
+ }
);
-use constant EMAIL_FROM => 'Robotul Verde <bot@ieval.ro>';
-use constant ADMIN_EMAIL => 'Marius Gavrilescu <marius@ieval.ro>';
-use constant DATAFILE => '/var/www/dir/data.yml';
+use constant EMAIL_FROM => 'Ziua Libertății Programelor — Fundația Ceata <zlp@ceata.org>';
+use constant ADMIN_EMAIL => 'Ziua Libertății Programelor — Fundația Ceata <zlp@ceata.org>';
+use constant DATAFILE => 'date.yml';
# Sfarsit setari
##################################################
flock LOCK, LOCK_EX;
eval {
- my $prenume = param('prenume') or die 'Nu ati completat campul "Prenume"';
+ my $prenume = param('prenume') or die 'Nu ați completat câmpul pentru „Prenume”';
utf8::decode($prenume);
my $nume = param('nume') // '';
utf8::decode($nume);
- my $email = param('email') or die 'Nu ati completat campul "Email"';
+ my $email = param('email') or die 'Nu ați completat câmpul pentru „Adresa de poștă electronică”';
utf8::decode($email);
- my $event = param('oras') or die 'Nu ati ales orasul evenimentului';
- die 'Ziua Libertatii Programelor nu se tine in orasul ales' unless exists $events{$event};
- my $numar = int param('numar') or die 'Nu ati ales nuamrul de participanti';
- die 'Numarul de participanti trebuie sa fie intre 1 si 5' unless $numar >= 1 && $numar <= 5;
- my $captcha = param('captcha') or die 'Nu ati completat anul de lansare al proiectului GNU';
- die 'Ati completat gresit anul de lansare al proiectului GNU' unless $captcha == 83;
+ my $event = param('oras') or die 'Nu ați ales orașul cu evenimentul';
+ die 'Ziua Libertății Programelor nu se ține în orașul ales' unless exists $events{$event};
+ my $numar = int param('numar') or die 'Nu ați ales numărul de participanți';
+ die 'Numărul de participanți trebuie să fie între 1 și 5' unless $numar >= 1 && $numar <= 5;
+ my $captcha = param('captcha') or die 'Nu ați completat anul de lansare al proiectului GNU';
+ die 'Ați completat greșit anul de lansare al proiectului GNU' unless $captcha == 83;
my $spam = param('spam') or 0;
my @db = grep { $_->{event} eq $event } LoadFile DATAFILE;
- die 'Aceasta adresa de poşta electronica este deja folosita' if grep { $_->{email} eq $email } @db;
+ die 'Această adresă de poștă electronică este deja folosită' if grep { $_->{email} eq $email } @db;
my $participanti = nr_participanti $event, @db;
die 'Nu sunt suficiente locuri libere' if $events{$event}{locuri} < $participanti + $numar;
my $success_email = Email::Simple->create(
header => [
To => "$nume <$email>",
- Subject => 'Inscriere la Ziua Libertatii Programelor',
+ Subject => 'Înscriere la Ziua Libertății Programelor',
From => EMAIL_FROM,
],
- body => "Aceasta este o confirmare de inscriere la Ziua Libertatii Programelor\n\n" . Dump \%entry,
+ body => "Aceasta este o confirmare de înscriere la Ziua Libertății Programelor\n\n" . Dump \%entry,
);
sendmail $success_email, { to => [$email, ADMIN_EMAIL]};
append_file DATAFILE, Dump \%entry;
my $error_email = Email::Simple->create(
header => [
To => "Administrator <" . ADMIN_EMAIL . ">",
- Subject => 'Eroare in inscrierea la Ziua Libertatii Programelor',
+ Subject => 'Eroare de înscriere la Ziua Libertății Programelor',
From => EMAIL_FROM,
],
body => "Eroare: $eroare",
print $eroare;
} else {
print header('text/html; charset=utf-8');
- print 'Aţi fost inregistrat cu succes';
+ print 'Ați fost înscris cu succes';
}
}
unless (exists $events{$event}) {
print header('text/html; charset=utf-8', '500 Internal Server Error');
- print 'Acest eveniment nu exista';
+ print 'Acest eveniment nu există';
return;
}
my @db = grep { $_->{event} eq $event } LoadFile DATAFILE;
my $participanti = nr_participanti $event, @db;
print header('text/html; charset=utf-8');
- print "Sunt $participanti participanti inscrisi<p>";
+ print "Sunt $participanti participanți înscriși<p>";
for my $p(@db) {
print "Nume: $p->{nume}<br>Prenume: $p->{prenume}<br>Email: $p->{email}<br>Event: $p->{event}<br>Numar: $p->{numar}<br>Spam: $p->{spam}<p>";
}
=head1 NAME
-zlp - Inscrieri Ziua Libertatii Programelor
+zlp - Formular de înscriere la Ziua Libertății Programelor
=head1 AUTHOR
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2013 by Fundatia Ceata
+Copyright (C) 2013 Fundația Ceata
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
=cut
-