Diff for /register/prgsrc/register.cgi between versions 1.2 and 1.6

version 1.2, 2001/09/04 19:33:18 version 1.6, 2001/09/11 22:27:12
Line 34  $Revision$ Line 34  $Revision$
 ###################################################  ###################################################
   
     use strict;      use strict;
   use vars qw(%ENV);
 use CGI qw(:standard);  use CGI qw(:standard);
 use DBI;  use DBI;
 use POSIX qw(locale_h);  use POSIX qw(locale_h);
 use FileHandle;  
   
 setlocale(LC_CTYPE,'russian');  setlocale(LC_CTYPE,'russian');
   $ENV{'LANG'}='ru_RU.KOI8-R';
 my ($SENDMAIL) = "/usr/sbin/sendmail";  my ($SENDMAIL) = "/usr/sbin/sendmail";
 my $TO = 'borisv@lk.net';  my $TO = 'borisv@lk.net, igra@gorlovka.net';
 my $FROM = 'borisv@lk.net';  my $FROM = 'borisv@lk.net';
   
   my $date='$Date$';
   $date =~ s/[^ ]* ([^ ]*) .*/$1/; 
   
   
 my $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "")  my $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "")
     or do {      or do {
         print h1("Временные проблемы") . "База данных временно не          print h1("Временные проблемы") . "База данных временно не
Line 116  END Line 120  END
 #  #
     print <<END;      print <<END;
   
 <h1 align=center><a href="http:/znatoki/klub/znat.html"><img   <h1 align=center>
   Журнал "Игра"<br>
   и<br>
   <a href="http:/znatoki/klub/znat.html"><img 
 ismap border=0 src= "http:../images/logo.gif"   ismap border=0 src= "http:../images/logo.gif" 
 alt="Интернет Клуб Что? Где? Когда?" width=319 height=27></a>  alt="Интернет Клуб Что? Где? Когда?" width=319 height=27></a>
 <br>ПРЕДСТАВЛЯЕТ<br>  <br>ПРЕДСТАВЛЯЮТ<br>
 Реестр Клубов Интеллектуальных Игр  Регистр Клубов Интеллектуальных Игр
 </h1>  </h1>
 END  END
   
Line 144  END Line 151  END
         print AddClub();          print AddClub();
     } elsif (param('Submit')) {      } elsif (param('Submit')) {
         print SendLetter();          print SendLetter();
     }      } else {
           print <<END;
   <dl>
   <dt><a href="$self?rid=1&level=1000&clubs=0">Все регионы</a></dt>
   <dt><a href="$self?rid=1&level=1000&clubs=1">Все клубы</a></dt>
   <dt><a href="$self?addclub=1">Добавить клуб или изменить сведения
   о клубе</a></dt>
   </dl>
   END
   }
   
   ####################################################################
   # And the bottom of the page
   ###################################################################
   
       print "<p align=center>";
       print "Эту страничку посмотрели ";
       print `/home/piataev/public_html/cgi-bin/counter.sh /znatoki/cgi-bin/register.cgi`;
       print " раз(а)</p>\n";
       
       print <<END;
   <hr>
   <address>
   <img width = 60 height = 80 src="../images/owl.gif" alt = "owl"> 
   <a href="http://users.lk.net/~borisv">
   Boris Veytsman</a>, $date
   </address>
   </body>
   </html>
   END
   
   
     print <<END;      print <<END;
 </td>  </td>
Line 193  SELECT Name FROM Regions WHERE RID=$args Line 230  SELECT Name FROM Regions WHERE RID=$args
         return "";          return "";
     }      }
     my ($name)=$sth->fetchrow_array;      my ($name)=$sth->fetchrow_array;
     $name="<a href=\"$self?rid=$args{'rid'}&level=1&clubs=1\">$name</a>";      $name="<a href=\"$self?rid=$args{'rid'}&level=100&clubs=1\">$name</a>";
     my $result="<$args{'tag'}>$name</$args{'tag'}>\n";      my $result="<$args{'tag'}>$name</$args{'tag'}>\n";
     if ($args{'level'}>0) { # Print children      if ($args{'level'}>0) { # Print children
   
Line 220  SELECT rid FROM Regions WHERE $clause OR Line 257  SELECT rid FROM Regions WHERE $clause OR
                                        'level'=>$args{'level'}-1,                                         'level'=>$args{'level'}-1,
                                        'tag'=>'dt');                                         'tag'=>'dt');
             }              }
               $result .= "</dl>\n";
         }          }
     }      }
     return $result;      return $result;
 }  }
   
 ############################################################  ############################################################
 # List the clubs of a given region  # List the clubs of a given region or a given association
 ###########################################################  ###########################################################
 sub ListClubs {  sub ListClubs {
     my %args = @_;      my %args = @_;
Line 274  SELECT cid, Name FROM Clubs WHERE $claus Line 312  SELECT cid, Name FROM Clubs WHERE $claus
     $result .= "</dl></dd></dl>\n";      $result .= "</dl></dd></dl>\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=<<END;
   <h3>Коллективный член ассоциаций:</h3>
   <dd><dl>\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("<a href=\"$self?cid=$cid\">$Name</a>\n");
       }
       $result .= "</dl></dd></dl>\n";
   }
   
 #############################################################  #############################################################
 # The longest subroutine in the list...  # The longest subroutine in the list...
 #############################################################  #############################################################
Line 317  SELECT * FROM Clubs WHERE cid=$args{'cid Line 393  SELECT * FROM Clubs WHERE cid=$args{'cid
   
     $result .= ListPeople(%args);       $result .= ListPeople(%args); 
   
       $result .= ListParents(%args);
   
     $result .= ListClubs(%args);       $result .= ListClubs(%args); 
   
   
     if (my $string=$club->{'DoB'}) {      if (my $string=$club->{'DoB'}) {
         $result .= h3('История создания клуба')."\n".p($string);          $result .= h3('История создания клуба')."\n".p($string);
     }      }
Line 449  SELECT * FROM People WHERE pid=$args{'pi Line 528  SELECT * FROM People WHERE pid=$args{'pi
 sub AddClub {  sub AddClub {
     my $result=h2("Добавить клуб или изменить информацию о клубе");      my $result=h2("Добавить клуб или изменить информацию о клубе");
           
     $result .= <<END;  
 <p>  
 Спасибо за помощь в ведении реестра клубов.   
 Вы можете заполнить форму ниже или послать e-mail Борису Вейцману  
 по адресу <a href="mailto:borisv\@lk.net">borisv\@lk.net</a>  
 </p>  
 END  
     $result .= start_form;      $result .= start_form;
   
       $result .= h3("Контактная информация");
       $result .= p("Адрес, телефон, email и т.д. ниже -- НЕ адреса руководства
   клуба (их Вы введёте ниже), 
   а официальные адреса самого клуба. Если отдельного адреса,
   телефона, и т.д. у клуба нет, просто оставьте
   поля пустыми");
     $result .= table(Tr(td(["Название клуба",      $result .= table(Tr(td(["Название клуба",
                             textfield(-name=>'Name',                              textfield(-name=>'Name',
                                    -size=>60)])),                                     -size=>60)])),
                      Tr(td(["Официальный адрес клуба, если есть",                       Tr(td(["Официальный адрес клуба",
                             textarea(-name=>'Address',                              textarea(-name=>'Address',
                                      -rows=>5,                                       -rows=>5,
                                      -columns=>60)])),                                       -columns=>60)])),
                      Tr(td(["Страничка клуба, если есть",                       Tr(td(["Страничка клуба",
                             textfield(-name=>'URL',                              textfield(-name=>'URL',
                                      -size=>60)])),                                       -size=>60)])),
                      Tr(td(["Телефон клуба, если есть",                       Tr(td(["Телефон клуба",
                             textfield(-name=>'Phone',                              textfield(-name=>'Phone',
                                      -size=>60)])),                                       -size=>60)])),
                      Tr(td(["Факс клуба, если есть",                       Tr(td(["Факс клуба",
                             textfield(-name=>'Fax',                              textfield(-name=>'Fax',
                                      -size=>60)])),                                       -size=>60)])),
                      Tr(td(["E-mail клуба, если есть",                       Tr(td(["E-mail клуба",
                             textfield(-name=>'Email',                              textfield(-name=>'Email',
                                      -size=>60)])),                                       -size=>60)])),
                      Tr(td(["Руководство клуба: должность, ФИО, ".                       );
                             "адрес, телефон, факс, домашняя страница, e-mail",      $result .= h3("Руководство клуба");
                             textarea(-name=>'People',      $result .= p("Адреса и телефоны ниже будут опубликованы. Если Вы не хотите
                                      -rows=>10,  афишировать чьи-то адреса и телефоны, просто оставьте соответствующие поля
                                      -columns=>60)])),  пустыми");
       $result .= "<ol>\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 .= "</ol>\n";
       $result .= h3("Ассоциации и объединения");
       $result .= table(
                      Tr(td(["Ассоциации, членом котрых является клуб",                       Tr(td(["Ассоциации, членом котрых является клуб",
                             textarea(-name=>'Parents',                              textarea(-name=>'Parents',
                                      -rows=>5,                                       -rows=>5,
Line 489  END Line 601  END
                             textarea(-name=>'Members',                              textarea(-name=>'Members',
                                      -rows=>5,                                       -rows=>5,
                                      -columns=>60)])),                                       -columns=>60)])),
                        );
       $result .= h3("Жизнь клуба");
       $result .= table(
                      Tr(td(["История создания клуба",                       Tr(td(["История создания клуба",
                             textarea(-name=>'DoB',                              textarea(-name=>'DoB',
                                      -rows=>5,                                       -rows=>5,
Line 521  END Line 636  END
                             textarea(-name=>'OwnFests',                              textarea(-name=>'OwnFests',
                                      -rows=>5,                                       -rows=>5,
                                      -columns=>60)])),                                       -columns=>60)])),
                      Tr(td(["Дополнительные вопросы: А) Что вам больше всего нравится в журнале 'Игра'?                       );
 Б) Что вам больше всего не нравится в журнале 'Игра'?  
 В) Что бы вы хотели увидеть в журнале 'Игра' - то чего нет в настоящее      $result .= h3("География клуба (для будущей карты)");
 время?",      $result .= table(
                             textarea(-name=>'Igra',                       Tr(td(["Долгота",
                                      -rows=>10,                              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)])),                                       -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 .= submit(-name=>'Submit');
     $result .= end_form;      $result .= end_form;
     return $result;      return $result;
Line 538  END Line 688  END
 # Sending the letter with results  # Sending the letter with results
 #####################################################################  #####################################################################
 sub SendLetter {  sub SendLetter {
     my $MAIL= new FileHandle("| $SENDMAIL -t -n");     open(MAIL,"| $SENDMAIL -t -n");
     print $MAIL <<END;      print MAIL <<END;
 To: $TO  To: $TO
 From: $FROM  From: $FROM
 Subject: Registracionnaya kartochka kluba  Subject: Registracionnaya kartochka kluba
Line 547  MIME-Version: 1.0 Line 697  MIME-Version: 1.0
 Content-type: text/plain; charset=koi8-r  Content-type: text/plain; charset=koi8-r
   
 END  END
     print $MAIL &CGI::dump;      foreach my $key (param) {
           my $value = param($key);
           if ($value =~ /^\s*$/) {
               next;
           }
           print MAIL "$key=$value\n\n";
       }
               
   
     close $MAIL;     close MAIL;
     return p("Спасибо за регистрацию. Ваши данные приняты и после ".     return p("Спасибо за регистрацию. Ваши данные приняты и после ".
              "проверки будт внесены в базу данных");              "обработки будут внесены в базу данных");
 }  }
   

Removed from v.1.2  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>