Автор Тема: Календарь с сылками типа http://anekdotov.net?  (Прочитано 4187 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн banda

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anek-dot.h1.ru
Народ help!!!
Как сделать календарь с сылками типа http://anekdotov.net
причем, есть директория, например, NEWS, скрипт,
читает все файлы (вида 22-Nov-2002.shtml) в этой директории.
Генерирует календарь, где число 22 - ссылка

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Календарь с сылками типа http://anekdotov.net?
« Ответ #1 : 25 Ноября 2002, 21:34:01 »
http://search.cpan.org/search?query=Calendar&mode=module
Я пробовал HTML::CalendarMonth.
2B OR NOT 2B = FF

Оффлайн Tarasenko

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Календарь с сылками типа http://anekdotov.net?
« Ответ #2 : 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="";

Оффлайн Tarasenko

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Календарь с сылками типа http://anekdotov.net?
« Ответ #3 : 26 Ноября 2002, 15:17:59 »
Заумно, но без модулей.
Сделано на ходу, потому могут быть ошибки...

Оффлайн Tarasenko

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Календарь с сылками типа http://anekdotov.net?
« Ответ #4 : 26 Ноября 2002, 15:20:40 »
Будут вопросы, предложения или критика - моя аська в профайле

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Календарь с сылками типа http://anekdotov.net?
« Ответ #5 : 26 Ноября 2002, 21:51:42 »
Цитировать
Заумно, но без модулей.

Много раз уже писал - изобретение велосипеда не преследуется по закону.
А вот  патент на изобретение колеса был выдан в Австралии не так давно.:)
Если модуль не имеет бинарной части, то даже проблем с его установкой на хостинге не будет - поставил в свою директорию и пользуйся сколько влезет.:)
2B OR NOT 2B = FF

Оффлайн banda

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anek-dot.h1.ru
Календарь с сылками типа http://anekdotov.net?
« Ответ #6 : 27 Ноября 2002, 05:01:48 »
Выдает ошибку 500
Premature end of script headers: calendar.cgi

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Календарь с сылками типа http://anekdotov.net?
« Ответ #7 : 27 Ноября 2002, 11:42:26 »
Цитировать
Выдает ошибку 500
Premature end of script headers: calendar.cgi

Потому как была просто описана процедура создания ссылок. Нельзя же так тупо передирать...
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн banda

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anek-dot.h1.ru
Календарь с сылками типа http://anekdotov.net?
« Ответ #8 : 27 Ноября 2002, 12:02:24 »
Я в этом чайник, помогите, что дальше!

Оффлайн Tarasenko

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Календарь с сылками типа http://anekdotov.net?
« Ответ #9 : 27 Ноября 2002, 17:15:31 »
У меня аська есть в профайле...
И я не кусаюсь...
(хотя...)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28