Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: очередной раз про календарь
 
 автор: forext   (20.04.2007 в 14:11)   письмо автору
 
 

Добрый все день есть два скрипта. двух календарей.

1.

function my_calendar($fill='') {
  $month_names=array("январь","февраль","март","апрель","май","июнь",
  "июль","август","сентябрь","октябрь","ноябрь","декабрь");
  if (isset($_GET['y'])) $y=$_GET['y'];
  if (isset($_GET['m'])) $m=$_GET['m'];
  if (isset($_GET['date']) AND strstr($_GET['date'],"-")) list($y,$m)=explode("-",$_GET['date']);
  if (!isset($y) OR $y < 1970 OR $y > 2037) $y=date("Y");
  if (!isset($m) OR $m < 1 OR $m > 12) $m=date("m");

  $month_stamp=mktime(0,0,0,$m,1,$y);
  $day_count=date("t",$month_stamp);
  $weekday=date("w",$month_stamp);
  if ($weekday==0) $weekday=7;
  $start=-($weekday-2);
  $last=($day_count+$weekday-1) % 7;
  if ($last==0) $end=$day_count; else $end=$day_count+7-$last;
  $today=date("Y-m-d");
  $prev=date('?\m=m&\y=Y',mktime (0,0,0,$m-1,1,$y));
  $next=date('?\m=m&\y=Y',mktime (0,0,0,$m+1,1,$y));
  $i=0;
?>
<table border=1 cellspacing=0 cellpadding=2>
<tr>
  <td colspan=7>
   <table width="100%" border=0 cellspacing=0 cellpadding=0>
    <tr>
     <td align="left"><a href="<? echo $prev ?>">&lt;&lt;&lt;</a></td>
     <td align="center"><? echo $month_names[$m-1]," ",$y ?></td>
     <td align="right"><a href="<? echo $next ?>">&gt;&gt;&gt;</a></td>
    </tr>
   </table>
  </td>
</tr>
<tr><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td><tr>
<?
  
for($d=$start;$d<=$end;$d++) {
    if (!(
$i++ % 7)) echo "<tr>";
    echo 
'<td align="center">';
    if (
$d OR $d $day_count) {
      echo 
"&nbsp";
    } else {
      
$now="$y-$m-".sprintf("%02d",$d);
      if (
is_array($fill) AND in_array($now,$fill)) {
        echo 
'<b><a href="'.$_SERVER['PHP_SELF'].'?date='.$now.'">'.$d.'</a></b>';
      } else {
        echo 
$d;
      }
    }
    echo 
"</td>";
    if (!(
$i 7)) echo "</tr>";
  }
?>
</table>
<? ?>
<?php
$result
=$db->sql_query("SELECT DISTINCT DATE_FORMAT(time, '%Y-%m-%d') as date_format FROM news");
while(
$row=$db->sql_fetchrow($result))
{
  
$test[] = $row['date_format'];
}
//функция рисования календаря
my_calendar($test);?>




второй


$color = "#FF9966";
$colord = "#000000";
$target = "date";
$mask = "d.m.Y";
$date =date("Y.m.d");
$today = getdate();
$days_array = explode(" ",""._DAYS_ARRAY."");
$months_array = explode(" ",""._MONTHS_ARRAY."");
$year = $today['year'];
$month = $today['mon'];
$xmonth = $today['month'];
echo"<table border=0 Align=Center border=0 CellPedding=0 CellSpacing=1 >  ";
echo"<tr><td colspan=7><center><FONT size=2>".dec_date($date)."</FONT></center></td></tr>";
echo"<tr><td align=\"center\" colspan=\"7\">";
echo"<tr>";
foreach($days_array as $day) echo"<th align=\"center\">$day</th>";
echo"</tr>";
echo"<tr>";
$over = false;
$starttime = mktime(0, 0, 0, $month, 1, $year);
$isday = getdate($starttime);
$overtime = $isday['mon'];
$x = 0;
while (!$over) {
    if ($x == 7) {
        echo"</tr><tr>";
        $x = 0;
    }
    $f = $x + 1;
    if ($f == 7) $f = 0;
    // --------------------------------------------------

    if ($isday['wday'] == $f) {
        $d = $isday;
        $border = ($d['mday'] == $today['mday']) ? "border: 1px $colord solid;" : "";
        $starttime = $starttime + _DAYSTAMP;
        $isday = getdate($starttime);
    } else {
        $d = "";
    }
    $redday = ($x == 5 || $x == 6) ? "style=\"background-color: $color;font-weight: bold;$border\"" : "style=\"font-weight: bold;$border\"";

    echo"<td align=\"center\" $redday>";
    if (is_array($d) && $target) {
        $dateprint = date($mask, $d[0]);
        echo"<a href=\"index.php?name=News&op=news&date_f=$dateprint\">".$d['mday']."</a></td>";
    } else {
        echo"".$d['mday']."</td>";
    }
    $x++;
    if ($isday['mon'] != $overtime) $over = true;
}
echo"</tr>";
echo"</table></div>";
echo"<hr><div align=\"center\"><a href=\"index.php?name=Archive\">"._ARH_NEWS."</a></div>";



первый вариант умеет показывать если новости в базе на даное число а второй подсвечивает сегодня дату и выходные цветом. подскажите как в первом варианте сделать подсветку и выходные сделать ячейки другим цыетом

   
 
 автор: forext   (22.04.2007 в 23:34)   письмо автору
 
   для: forext   (20.04.2007 в 14:11)
 

UP

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования