Форум сетевых администраторов
Показаны 15 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Поиск и обмен (http://netadmin.ws/forum/forumdisplay.php?forumid=27)
-- Помогите найти скрипт календарика (http://netadmin.ws/forum/showthread.php?threadid=3718)


Помещено Sergey_pol 18-12-2002 в 01:04:

Помогите найти скрипт календарика

Нужен скрипт календарика на любом языке, такой чтобы н апрошедшие дни месяца выдавал ссылки в заданном формате а на последующие нет. (как на любом новостном сайте - архива новостей)
Может кто вдел что-то похожее...


Помещено polo 18-12-2002 в 07:19:

вот, глянь этот
http://www.phpinsider.com/php/code/Date_Calc/

__________________
Всегда есть решение.


Помещено nanut 19-12-2002 в 02:29:

И здесь можешь глянуть:
=http://webcalendar.sourceforge.net/demo/day.php
=http://blazonry.com/scripting/datemenu.php
=http://realize.be/swentel/module.php?boxcontent=5


Помещено AndyAN 20-12-2002 в 07:20:

http://www.abledesign.com посмотри вот тут

__________________
ИзВенИте за ОпИЧАТКи =)


Помещено Sergey_pol 24-12-2002 в 06:40:

Видите вся проблема в том, что все даты активные в предложенных Вами скриптах, а надо чтобы завтрашняя послезавтрашняя и прочие последующие даты были неактивными...


Помещено RomaniS 24-12-2002 в 11:05:

Sergey_pol
Домой приду, скину код...


Помещено Sergey_pol 30-12-2002 в 00:02:

RomaniS, я уже заждался, обещал - скидывай. Или у тебя дом так далеко находится :-)


Помещено RomaniS 30-12-2002 в 22:32:

Sergey_pol
Забыл... сорри.... сейчас найду....

RomaniS добавил 30-12-2002 в 22:48:14:
Надеюсь разберешься

Тебе необходимые переменные поставить сможешь

calendar.php

PHP:


<?
  
   
// Календарь
   
require ("months.inc.php");
   
   
//print $REQUEST_URI;
  
   
$calendar_path = '/calendar';
   
   
   
   if (
ereg("^$calendar_path/?$",$REQUEST_URI,$path))
   {
    include (
"calendar/years.inc.php");
   }
   
   else if (
ereg("^$calendar_path/([0-9]+)/?$",$REQUEST_URI,$path))
   {
    
$year = $path[1];
    include (
"calendar/year.inc.php");
   }
   
   else if (
ereg("^$calendar_path/([0-9]+)/([0-9]+)/?$",$REQUEST_URI,$path))
   {
    
$year = $path[1];
    
$month = $path[2]; 
    include (
"calendar/month.inc.php");
   }
   
   else if (
ereg("^$calendar_path/([0-9]+)/([0-9]+)/([0-9]+)/?$",$REQUEST_URI,$path))
   {
    
$year = $path[1];
    
$month = $path[2]; 
    
$day = $path[3];
    
    include (
"calendar/day.inc.php"); 
   }
  
   else
   {
    
header ("Location:$calendar_path/");
   } 
   
?>



months.inc.php


PHP:

<?  
  $months 
= array
  (
   
'01' => 'Январь',
   
'02' => 'Февраль',
   
'03' => 'Март',
   
'04' => 'Апрель',
   
'05' => 'Май',
   
'06' => 'Июнь',
   
'07' => 'Июль',
   
'08' => 'Август',
   
'09' => 'Сентябрь',
   
'10' => 'Октябрь',
   
'11' => 'Ноябрь',
   
'12' => 'Декабрь'
  
);
  
  
   
$day_in_month = array

  (

   
"01"=>"31",

   
"02"=>"28",

   
"03"=>"31",

   
"04"=>"30",

   
"05"=>"31",

   
"06"=>"30",

   
"07"=>"31",

   
"08"=>"31",

   
"09"=>"30",

   
"10"=>"31",

   
"11"=>"30",

   
"12"=>"31"

  
);
?>



day.inc.php


PHP:

<?

  
//материалы за день
  
 
if ($day > 31)
 {
  
header ("Location:$calendar_path/");
  exit();
 } 
  
 
$tpl = new TemplatePower('calendar-day','NO_INCLUDE');  

 
$tpl->prepare();
 
 
$material_date = "$day/$month/$year";
 
 
$tpl->assign('year', $year);
 
$tpl->assign('month', $month);
 
$tpl->assign('day', $day);
 
 
$tpl->assign('calendar_path', $calendar_path);
  
 
$tpl->assign('current_time',date("H:i"));
 
$tpl->assign('current_date',date("d/m/Y"));
     
 
 
$tpl->assign('month_name_breaked',
              
ereg_replace ('([^ ])', '&nbsp;\1&nbsp;<br>', strtolower($months[$month])));


 
 
 
 
$materials = new materials();
 
 
$materials_list = $materials->materials_list (1,true,
                   
"DATE_FORMAT(material_date,'%d/%m/%Y') = '$material_date' AND
                   material_file != 'index' AND material_publish = '1'"
,'material_anons','','',true);

  
$prev_material = $materials->materials_list (1,true,
                   
"DATE_FORMAT(material_date,'%d/%m/%Y') < '$material_date' AND
                   material_file != 'index' AND material_publish = '1'"
,'material_anons','','1',true);

 if (
$prev_material)
 {
 
  
$tpl->assign ('prev_day_link',$calendar_path.'/'.(date ('Y/m/ d',strtotime($prev_material[0]['material_date'])))
.
'/');
 }
 
 
 
                   
 if (
$materials_list)
 {
  foreach (
$materials_list as $material)
  {
   
$tpl->newBlock('material');
   
   
$tpl->assign ('material_title',$material['material_title']);
   
$tpl->assign ('material_anons',$material['material_anons']);
   
$tpl->assign("material_time"   , date("H:i",strtotime($material['material_date'])) );
   
$tpl->assign("material_date"   , date("d/m/Y",strtotime($material['material_date'])) );
   
   
$tpl->assign ('material_url', '/'. $material['material_rubrics']['0']['rubric_full_pa
th'
].$material['material_cur_file'].$site['material_url_ext'] );

    
$tpl->assign ('rubric_name', 
                    
strtolower($material['material_rubrics'][0]['rubri
c_name'
]));
                   
     
$tpl->assign ('rubric_url', 
                   
'/'. $material['material_rubrics'][0]['rubric_full_path
'
]);            
                   
     
$tpl->assign ('rubric_class', 
                    isset(
$material['material_rubrics'][0]['rubric_pro
perties'
]['rubric_class']) ?
                    
$material['material_rubrics'][0]['rubric_propertie
s'
]['rubric_class'] :'');      
                                  
     
$tpl->assign ('material_url',$site['url'].'/'.
                    
$material['material_rubrics'][0]['rubric_full_path
'
].
                   
$material['material_cur_file'].$site['material_url_ext']);    
  }
 }                   
 
 
$tpl->printToScreen();  
?>



month.inc.php


PHP:

<?
 
  
// Календарь за месяц
  
 
if (!isset($months[$month]))
 {
  
header ("Location:$calendar_path/");
  exit();
 } 
  
 
$tpl = new TemplatePower('calendar-month','NO_INCLUDE');  

 
$tpl->prepare();
 
 
$tpl->assign('current_time',date("H:i"));
 
$tpl->assign('current_date',date("d/m/Y"));
     
 
$tpl->assign('year', $year);
 
$tpl->assign('month', $month);
 
 
 
$tpl->assign('calendar_path', $calendar_path);

  
$tpl->assign('month_name_breaked',
              
ereg_replace ('([^ ])', '&nbsp;\1&nbsp;<br>', strtolower($months[$month]))); 
 
 
$materials = new materials();
 
 
$materials_list = $materials->materials_list (1,true,
                   
"DATE_FORMAT(material_date,'%m.%Y') = '$month.$year' AND
                   material_file != 'index' AND material_publish = '1'"
,'','','',true);
                   
 
$prev_month =    $materials->materials_list (1,true,
                   
"DATE_FORMAT(material_date,'%m.%Y') < '$month.$year' AND
                   material_file != 'index' AND material_publish = '1'"
,'','','1',true);                   
    
 if (
$prev_month)
 {
    
$tpl->assign ('prev_month_link',$calendar_path.'/'.(date ('Y/m',strtotime($prev_month[0]['material_date']))).'/');
 }                   
 
 if (
$materials_list)
 {
  foreach (
$materials_list as $material)
  {
   
$dates[date('d/m/Y',strtotime($material['material_date']))]=1;
  }
  
  foreach (
$dates as $material_date => $val)
  {
   
$tpl->newBlock ('month_day');
   
   
$tpl->assign ('material_date',$material_date);
   
   foreach (
$materials_list as $material)
   {
    if (
date('d/m/Y',strtotime($material['material_date'])) == $material_date)
    {
     
$tpl->newBlock ('material');
     
     
$tpl->assign ('material_title',$material['material_title']);
     
$tpl->assign("material_time"   , date("H:i",strtotime($material['material_date'])) );
     
$tpl->assign ('material_url', '/'. $material['material_rubrics']['0']['rubric_full_pa
th'
].$material['material_cur_file'].$site['material_url_ext'] );


        
$tpl->assign ('rubric_name', 
                    
strtolower($material['material_rubrics'][0]['rubri
c_name'
]));
                   
     
$tpl->assign ('rubric_url', 
                   
'/'. $material['material_rubrics'][0]['rubric_full_path
'
]);            
                   
     
$tpl->assign ('rubric_class', 
                    isset(
$material['material_rubrics'][0]['rubric_pro
perties'
]['rubric_class']) ?
                    
$material['material_rubrics'][0]['rubric_propertie
s'
]['rubric_class'] :'');      
                                  
     
$tpl->assign ('material_url',$site['url'].'/'.
                    
$material['material_rubrics'][0]['rubric_full_path
'
].
                   
$material['material_cur_file'].$site['material_url_ext']);    

    }
   }
   
  }
 }
 
 
$tpl->printToScreen();  
?>



year.inc.php


PHP:

<?

 
// Список месяцев года
 
 
$tpl = new TemplatePower('calendar-year','NO_INCLUDE');  

 
$tpl->prepare();
 
 
$tpl->assign('current_time',date("H:i"));
 
$tpl->assign('current_date',date("d/m/Y"));
     
 
 
  
$years = sql2table
  
("
    SELECT DISTINCT YEAR(material_date) AS year
      FROM "
.$site['material_table']."
      ORDER BY YEAR(material_date)
   "
);
   
  if (
$years)
  {
   foreach (
$years as $year_pos => $year_disp)
   {
    
    
$tpl->newBlock ('year');
    
    if (
$year_disp['year'] == $year)
    {
     
$tpl->newBlock ('current_year');
     
$tpl->assign ('year',$year_disp['year']);
    }
    else
    {
     
$tpl->newBlock ('target_year');
     
$tpl->assign ('year',$year_disp['year']);
     
$tpl->assign ('year_url',$calendar_path.'/'.$year_disp['year'].'/');
    }
   }
  } 
   
   
 
$days = sql2table
 
("
   SELECT DISTINCT DATE_FORMAT(material_date,'%Y-%m-%d') AS year_day
   FROM "
.$site['material_table']."
   WHERE YEAR(material_date) = '
$year'
 "
);
 
 if (
$days)
 {
  foreach (
$days as $day)
  {
    
$year_months[date('m',strtotime($day['year_day']))
] = 
1;
   
$year_days[$day['year_day']] =1;
 
// print "<br> - ".$day['year_day'].'-'.date('m',strtotime($day['year_day']));
  
}
 }
 
 
 


for (
$month=0 ; $month < 12 ; $month++)
{
 
 if (
$month%3 == 0)  $tpl->newBlock ('months_row');
 
 
$tpl->newBlock ('month');
 
 
 
 
$pmonth = ($month < 9) ? '0'.($month+1):$month+1;
 
 
$tpl->assign ('month_name', $months[$pmonth]);
 
$tpl->assign ('month_url', $calendar_path.'/'.$year.'/'.$pmonth.'/');
 
 
 
$tpl->newBlock('row');
 
    
//День недели первого дня
    
$week_day =  date("w",strtotime("$year-$pmonth-01"));
    if (
$week_day == 0) $week_day=7;
     
 
    if (
$week_day !=1 ) 
    {
      for (
$i =0; $i < $week_day-1; $i++) 
      {
 
       
$tpl->newBlock('cell');
       
$tpl->newBlock('cell_blank');
      }
    }
    
    for (
$cur_day = 1; $cur_day <= $day_in_month[$pmonth]; $cur_day++)
     {
       
       
$week_day = date("w",strtotime("$year-$pmonth-$cur_day"));
       
       
$pday = ($cur_day < 10) ? '0'.$cur_day:$cur_day;
     
       
$exists = false;
       
 
       
       if (isset(
$year_days["$year-$pmonth-$pday"]))
       {
        
$tpl->newBlock('cell');
        
$tpl->newBlock('cell_ref');
       
        
$tpl->assign ('day_url',$calendar_path."/$year/$month/$pday/");
        
$tpl->assign ('day', $cur_day );
       }
       else
       {
        
$tpl->newBlock('cell');
        
$tpl->newBlock('cell_empty');
       
        
$tpl->assign ('day', $cur_day );
       }
       
       if (
$week_day == 0 && $cur_day != $day_in_month[$pmonth])
       {
        
$tpl->newBlock('row');
       }
       
       
     
       
      
      
     }    
     
     
     
$week_day =  date("w",strtotime("$year-$pmonth-".$day_in_month[$pmonth]));
       
 
        if (
$week_day != 0)
        {
         for (
$i =0; $i < 7 - $week_day; $i++) 
         {
 
          
$tpl->newBlock('cell');
          
$tpl->newBlock('cell_blank');
         }
        }
        
} 
 
 
 
$tpl->printToScreen(); 
  
?>



years.inc.php


PHP:

<?
 
  
// Список лет календаря
  
  
  
$year = retr_sql
  
("
    SELECT  YEAR(material_date) AS year
      FROM "
.$site['material_table']."
      ORDER BY YEAR(material_date) DESC
   "
);
   
  
header ("Location:$calendar_path/$year/");
 
?>


Помещено Sergey_pol 30-12-2002 в 23:30:

Ну что я могу сказать, спасибо большое - на днях проверю работоспособность, а можешь это все на мыло скинуть (sergey_pol@mail.ru)


Помещено polo 30-12-2002 в 23:33:

Sergey_pol ну ты даешь, тебе что тяжело взять это в файлы скопировать?

__________________
Всегда есть решение.


Помещено Sergey_pol 31-12-2002 в 00:33:

Да нет проблем, просто наверняка человек копировал это все их файлов и у него есть оригиналы рабочие, а по практике знаю, перенося несколько раз исходники что - то да потеряется обязательно...


Помещено ZogG 08-06-2004 в 17:01:

а есть добровольцы которые объяснят как самому можно написать,просто мне интересно ,да и не люблю выезжать на готовеньком!


Помещено he][es 08-06-2004 в 21:29:

quote:
не люблю выезжать на готовеньком

смотри да разбирай... чего учить то?

__________________
Админ - вождь Апачей...


Помещено ZogG 08-06-2004 в 21:34:

he][es
ну я туго в чужих кодах рублю,мне бы алгоритм и примерные действия а я потмо уже посвоему ладу тоже самое да как мне нравиться =)


Помещено he][es 08-06-2004 в 21:54:

ZogG а выше тебе не пример?

__________________
Админ - вождь Апачей...


Формат времени GMT. Текущее время 06:47.
Показаны 15 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.