--- register/prgsrc/register.cgi 2001/09/04 19:33:18 1.2 +++ register/prgsrc/register.cgi 2001/09/11 22:27:12 1.6 @@ -20,11 +20,11 @@ Boris Veytsman =head1 DATE -$Date: 2001/09/04 19:33:18 $ +$Date: 2001/09/11 22:27:12 $ =head1 REVISION -$Revision: 1.2 $ +$Revision: 1.6 $ =cut @@ -34,17 +34,21 @@ $Revision: 1.2 $ ################################################### use strict; +use vars qw(%ENV); use CGI qw(:standard); use DBI; use POSIX qw(locale_h); -use FileHandle; setlocale(LC_CTYPE,'russian'); - +$ENV{'LANG'}='ru_RU.KOI8-R'; my ($SENDMAIL) = "/usr/sbin/sendmail"; -my $TO = 'borisv@lk.net'; +my $TO = 'borisv@lk.net, igra@gorlovka.net'; my $FROM = 'borisv@lk.net'; +my $date='$Date: 2001/09/11 22:27:12 $'; +$date =~ s/[^ ]* ([^ ]*) .*/$1/; + + my $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "") or do { print h1("Временные проблемы") . "База данных временно не @@ -116,11 +120,14 @@ END # print < +Журнал "Игра"

+
Интернет Клуб Что? Где? Когда? -
ПРЕДСТАВЛЯЕТ
-Реестр Клубов Интеллектуальных Игр +
ПРЕДСТАВЛЯЮТ
+Регистр Клубов Интеллектуальных Игр END @@ -144,7 +151,37 @@ END print AddClub(); } elsif (param('Submit')) { print SendLetter(); - } + } else { + print < +
Все регионы
+
Все клубы
+
Добавить клуб или изменить сведения +о клубе
+ +END +} + +#################################################################### +# And the bottom of the page +################################################################### + + print "

"; + print "Эту страничку посмотрели "; + print `/home/piataev/public_html/cgi-bin/counter.sh /znatoki/cgi-bin/register.cgi`; + print " раз(а)

\n"; + + print < +
+owl + +Boris Veytsman, $date +
+ + +END + print < @@ -193,7 +230,7 @@ SELECT Name FROM Regions WHERE RID=$args return ""; } my ($name)=$sth->fetchrow_array; - $name="$name"; + $name="$name"; my $result="<$args{'tag'}>$name\n"; if ($args{'level'}>0) { # Print children @@ -220,13 +257,14 @@ SELECT rid FROM Regions WHERE $clause OR 'level'=>$args{'level'}-1, 'tag'=>'dt'); } + $result .= "\n"; } } return $result; } ############################################################ -# List the clubs of a given region +# List the clubs of a given region or a given association ########################################################### sub ListClubs { my %args = @_; @@ -274,6 +312,44 @@ SELECT cid, Name FROM Clubs WHERE $claus $result .= "\n"; } + +############################################################ +# List the association a given club belongs to +########################################################### +sub ListParents { + my %args = @_; + my $sth; + + $sth = $args{'dbh'}->prepare(" +SELECT Parent FROM ClubClub WHERE Child=$args{'cid'}"); + + $sth->execute; + + if (!$sth->rows) { + return ""; + } + + my $result; + + $result=<Коллективный член ассоциаций: +
\n +END + + my @clubs=(); + while (my ($club)=$sth->fetchrow_array) { + push @clubs,"cid=$club"; + } + my $clause = join(' OR ', @clubs); + $sth=$args{'dbh'}->prepare(" +SELECT cid, Name FROM Clubs WHERE $clause ORDER BY Name"); + $sth->execute; + while (my ($cid,$Name)=$sth->fetchrow_array) { + $result .= dt("$Name\n"); + } + $result .= "
\n"; +} + ############################################################# # The longest subroutine in the list... ############################################################# @@ -317,8 +393,11 @@ SELECT * FROM Clubs WHERE cid=$args{'cid $result .= ListPeople(%args); + $result .= ListParents(%args); + $result .= ListClubs(%args); + if (my $string=$club->{'DoB'}) { $result .= h3('История создания клуба')."\n".p($string); } @@ -449,38 +528,71 @@ SELECT * FROM People WHERE pid=$args{'pi sub AddClub { my $result=h2("Добавить клуб или изменить информацию о клубе"); - $result .= < -Спасибо за помощь в ведении реестра клубов. -Вы можете заполнить форму ниже или послать e-mail Борису Вейцману -по адресу borisv\@lk.net -

-END + $result .= start_form; + + $result .= h3("Контактная информация"); + $result .= p("Адрес, телефон, email и т.д. ниже -- НЕ адреса руководства +клуба (их Вы введёте ниже), +а официальные адреса самого клуба. Если отдельного адреса, +телефона, и т.д. у клуба нет, просто оставьте +поля пустыми"); $result .= table(Tr(td(["Название клуба", textfield(-name=>'Name', -size=>60)])), - Tr(td(["Официальный адрес клуба, если есть", + Tr(td(["Официальный адрес клуба", textarea(-name=>'Address', -rows=>5, -columns=>60)])), - Tr(td(["Страничка клуба, если есть", + Tr(td(["Страничка клуба", textfield(-name=>'URL', -size=>60)])), - Tr(td(["Телефон клуба, если есть", + Tr(td(["Телефон клуба", textfield(-name=>'Phone', -size=>60)])), - Tr(td(["Факс клуба, если есть", + Tr(td(["Факс клуба", textfield(-name=>'Fax', -size=>60)])), - Tr(td(["E-mail клуба, если есть", + Tr(td(["E-mail клуба", textfield(-name=>'Email', -size=>60)])), - Tr(td(["Руководство клуба: должность, ФИО, ". - "адрес, телефон, факс, домашняя страница, e-mail", - textarea(-name=>'People', - -rows=>10, - -columns=>60)])), + ); + $result .= h3("Руководство клуба"); + $result .= p("Адреса и телефоны ниже будут опубликованы. Если Вы не хотите +афишировать чьи-то адреса и телефоны, просто оставьте соответствующие поля +пустыми"); + $result .= "
    \n"; + for(my $i=1;$i<=5;$i++) { + $result .=li; + $result .= table( + + Tr(td(["Должность", + textfield(-name=>"Position$i", + -size=>50)])), + Tr(td(["ФИО", + textfield(-name=>"Name$i", + -size=>50)])), + Tr(td(["Адрес", + textarea(-name=>"Address$i", + -columns=>50, + -rows=>5)])), + Tr(td(["Телефон", + textfield(-name=>"Phone$i", + -size=>50)])), + Tr(td(["Факс", + textfield(-name=>"Fax$i", + -size=>50)])), + Tr(td(["Email", + textfield(-name=>"Email$i", + -size=>50)])), + Tr(td(["Домашняя страничка", + textfield(-name=>"URL$i", + -size=>50)])), + ); + } + $result .= "
\n"; + $result .= h3("Ассоциации и объединения"); + $result .= table( Tr(td(["Ассоциации, членом котрых является клуб", textarea(-name=>'Parents', -rows=>5, @@ -489,6 +601,9 @@ END textarea(-name=>'Members', -rows=>5, -columns=>60)])), + ); + $result .= h3("Жизнь клуба"); + $result .= table( Tr(td(["История создания клуба", textarea(-name=>'DoB', -rows=>5, @@ -521,14 +636,49 @@ END textarea(-name=>'OwnFests', -rows=>5, -columns=>60)])), - Tr(td(["Дополнительные вопросы: А) Что вам больше всего нравится в журнале 'Игра'? -Б) Что вам больше всего не нравится в журнале 'Игра'? -В) Что бы вы хотели увидеть в журнале 'Игра' - то чего нет в настоящее -время?", - textarea(-name=>'Igra', - -rows=>10, + ); + + $result .= h3("География клуба (для будущей карты)"); + $result .= table( + Tr(td(["Долгота", + textfield(-name=>"Longitude", + -size=> 60)])), + Tr(td(["Широта", + textfield(-name=>"Latitude", + -size=> 60)])), + ); + + $result .= h3("Дополнительные вопросы"); + $result .= table( + + Tr(td(["Что вам больше всего нравится в журнале 'Игра'?", + textarea(-name=>'IgraA', + -rows=>5, + -columns=>60)])), + Tr(td(["Что вам больше всего не нравится в журнале 'Игра'?", + textarea(-name=>'IgraB', + -rows=>5, + -columns=>60)])), + Tr(td(["Что бы вы хотели увидеть в журнале 'Игра' - то +чего нет в настоящее время?", + textarea(-name=>'IgraC', + -rows=>5, -columns=>60)])), ); + + $result .= h3("Кто регистрировал"); + $result .= table( + Tr(td(["Имя", + textfield(-name=>'RegistrarName', + -size=>60)])), + Tr(td(["Email", + textfield(-name=>'RegistrarEmail', + -size=>60)])), + ); + + $result .= p("Нажав кнопку 'Submit', Вы отправите Вашу регистрационную +карточку службе поддержки регистра. Пожалуйста, подождите несколько дней, пока +Ваша информация будет обработана и попадёт в регистр"); $result .= submit(-name=>'Submit'); $result .= end_form; return $result; @@ -538,8 +688,8 @@ END # Sending the letter with results ##################################################################### sub SendLetter { - my $MAIL= new FileHandle("| $SENDMAIL -t -n"); - print $MAIL <