Forum Webscript.Ru

Программирование => Perl => Тема начата: banda от 25 Ноября 2002, 18:49:10

Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: banda от 25 Ноября 2002, 18:49:10
Народ help!!!
Как сделать календарь с сылками типа http://anekdotov.net
причем, есть директория, например, NEWS, скрипт,
читает все файлы (вида 22-Nov-2002.shtml) в этой директории.
Генерирует календарь, где число 22 - ссылка
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Chs от 25 Ноября 2002, 21:34:01
http://search.cpan.org/search?query=Calendar&mode=module
Я пробовал HTML::CalendarMonth.
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Tarasenko от 26 Ноября 2002, 15:16:37
if ($day eq \'\')
{
   ($sec,$min,$hour,$mday,$mon,$year,$wday,$isdst)=localtime(time);   
   $year=$year+1900;
   $mon++;

}
else
{
 ($den,$mon,$year)=split(/\\./,$day);
}
@mond = (\'Январь\',\'Февраль\',\'Март\',\'Апрель\',\'Март\',\'Июнь\',\'Июль\',\'Август\',\'Сентябрь\',\'Окрябрь\',\'Ноябрь\',\'Декабрь\');

my $date = "$year-$mon-01";

sub dayofweek {
my @years = (0, 2, 3, 4);
my @month = (undef, 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5);
my @days = (7,1,2,3,4,5,6);

my $date = shift;
my ($yy, $mm, $dd) = split(/\\-/, $date);

$dd =~ s/^0//;
$mm =~ s/^0//;
my($tmp, $a, $b, $c, $e);
$tmp = $yy - 1996;
$a = $tmp & 3;
$b = ($tmp >> 2) + ($tmp & hex("FC"));
$c = $month[$mm];

if($a == 0 && $mm > 2){$c++;}
$a = $years[$a];
$e = ($a+$b+$c+$dd) % 7;

return $days[$e];
}
$d = dayofweek($date);

if ($mon == 1 || $mon == 3 || $mon == 5 || $mon == 7 || $mon == 8 || $mon == 10 || $mon == 12)
{
   $end=31;
}
elsif ($mon == 2)
{
   if ($year%4 == 0)
   {
      $end=29;
   }
   else
   {
       $end=28;
   }
}
else
{
   $end=30;
}
$m=$mon-1;
print "$mond[$m]\\, $year года";
print "";
$a=0;
$head="";
$foot="";
$f=-1;
for ($i=1;$i<48;$i++)
{
$b=$a+1;
####################################################################################
#####Создание ссылок в календаре
####################################################################################
$head="";
$foot="";
###################################################################################
#Отмечаем воскресенье
   if ($i%7 == 0)
   {
      $bg="$vs";
   }
   else
   {
      $bg="$mbg";
   }
#Это первые "пустые дни"
   if ($i < $d)
   {
      print "";
   }
#Вывод дней
   if ($i >= $d)
   {
      $a++;
      if ($a <= $end)
      {
         print "";
      }
   }
#Проверка на последнее число
   if ($a > $end)
   {
      if ($i%7 == 0)
      {
         print "
Пн.Вт.Ср.Чт.Пт.Сб.Вс.
 $head $a $foot 
";
         last;
      }
      else
      {
         print " ";
      }
   }
   if ($i%7 == 0)
   {
      print "";
   }
}

Переменным присваивайте такие вещи как
$head="a< href=...>";
$foot="";
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Tarasenko от 26 Ноября 2002, 15:17:59
Заумно, но без модулей.
Сделано на ходу, потому могут быть ошибки...
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Tarasenko от 26 Ноября 2002, 15:20:40
Будут вопросы, предложения или критика - моя аська в профайле
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Chs от 26 Ноября 2002, 21:51:42
Цитировать
Заумно, но без модулей.

Много раз уже писал - изобретение велосипеда не преследуется по закону.
А вот  патент на изобретение колеса был выдан в Австралии не так давно.:)
Если модуль не имеет бинарной части, то даже проблем с его установкой на хостинге не будет - поставил в свою директорию и пользуйся сколько влезет.:)
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: banda от 27 Ноября 2002, 05:01:48
Выдает ошибку 500
Premature end of script headers: calendar.cgi
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: mike от 27 Ноября 2002, 11:42:26
Цитировать
Выдает ошибку 500
Premature end of script headers: calendar.cgi

Потому как была просто описана процедура создания ссылок. Нельзя же так тупо передирать...
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: banda от 27 Ноября 2002, 12:02:24
Я в этом чайник, помогите, что дальше!
Название: Календарь с сылками типа http://anekdotov.net?
Отправлено: Tarasenko от 27 Ноября 2002, 17:15:31
У меня аська есть в профайле...
И я не кусаюсь...
(хотя...)