|
|
|
| Извлекаю переменную date из базы данных sql, как ее прикрутить к календарю на php (см код ниже), чтобы даты на календаре были активными и соответствующей дате соответствовали записи из sql c определенной датой. Например 13.10.08 новости такие -то
Вот код календаря
//Индивидуальные настройки скрипта
$ac_font_size = "10"; //Размер шрифта (только число)
$ac_font_color = "black"; //Цвет шрифта (в любом представлении: название, RGB, etc. [html-формат])
$ac_main_color = "white"; //Основной цвет календаря (Обычные дни) (аналогично цвету шрифта)
$ac_second_color = "silver"; //Второстепенный цвет календаря (аналогично цвету шрифта)
// (Текущий день, заголовок календаря)
$ac_navigator = true; //Вывод строки навигации по месяцам (true/false)
//Массив названий месяцев
$mon_name = array
(
"Январь","Февраль","Март","Апрель","Май","Июнь",
"Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"
);
//Массив продолжительностей месяцев
$nod = array (31,28,31,30,31,30,31,31,30,31,30,31);
//Определение месяца и года для календаря
if (!isset($month))
{
$ac_month = date("n");
$ac_year = date("Y");
$ac_j_dom = date("j");
$ac_j_dow = date("w");
}
else
{
list ($ac_month,$ac_year) = explode ("-",$month);
if ($ac_year<1980) $ac_year = 1980;
if ($ac_year>2030) $ac_year = 2030;
if ($ac_month != date("n") or $ac_year != date("Y"))
{
$ac_j_dom = 1;
$ac_j_dow = date("w",mktime(0,0,0,$ac_month,1,$ac_year));
}
else
{
$ac_j_dom = date("j");
$ac_j_dow = date("w");
}
}
//Корректировка продолжительности февраля в високосном году
if ($ac_year%4==0) {$nod[1]=29;}
//Определение предыдущих/следующих месяцев/годов
$temp_month = $ac_month + 1;
if ($temp_month!=13)
{
$ac_month_next = "$temp_month-$ac_year";
}
else
{
$temp_year = $ac_year + 1;
$ac_month_next = "1-$temp_year";
}
$temp_month = $ac_month - 1;
if ($temp_month!=0)
{
$ac_month_prev = "$temp_month-$ac_year";
}
else
{
$temp_year = $ac_year - 1;
$ac_month_prev = "12-$temp_year";
}
$temp_year = $ac_year + 1;
$ac_year_next = "$ac_month-$temp_year";
$temp_year = $ac_year - 1;
$ac_year_prev = "$ac_month-$temp_year";
//Определение названия месяца
$ac_mon=$mon_name[$ac_month-1];
//Корректировка номера дня недели из западно-европейской в русскую
if ($ac_j_dow == 0) $ac_j_dow = 7;
//Определение дня недели первого дня месяца
$ac_1_dow = $ac_j_dow - ($ac_j_dom%7 - 1);
if ($ac_1_dow < 1) $ac_1_dow+=7;
if ($ac_1_dow > 7) $ac_1_dow-=7;
//Определение числа дней месяца
$ac_nod = $nod[$ac_month-1];
//Определение количества недель в месяце
$ac_now=5;
if ($ac_1_dow-1+$ac_nod<29) {$ac_now=4;}
else if ($ac_1_dow-1+$ac_nod>35) {$ac_now=6;}
//Предотвращение вывода текущего дня для нетекущего месяца
if ($ac_month != date("n") or $ac_year != date("Y")) $ac_j_dom = -10;
//Вывод шапки календаря
echo "
<table border=0 cellspacing=1 cellpadding=1 bgcolor=black style=\"font-size: $ac_font_size pt; color: $ac_font_color; font-family: verdana\">
<tr bgcolor=$ac_second_color>
<td colspan=7 align=center>
$ac_mon $ac_year
</td>
</tr>
<tr bgcolor=$ac_second_color>
<td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td>
";
//Вывод содержимого календаря
for ($i=0;$i<$ac_now*7;$i++)
{
if ($i%7==0) {echo "</tr>\n<tr align=center bgcolor=$ac_main_color>\n\t";}
if ($i-$ac_1_dow+2!=$ac_j_dom) {echo "<td>";} else echo "<td bgcolor=$ac_second_color>";
if (($i<$ac_1_dow-1)||($i>$ac_nod+$ac_1_dow-2)) {echo " ";} else {echo $i-$ac_1_dow+2;}
echo "</td>\n\t";
}
//Строка навигации по месяцам
if ($ac_navigator)
echo "
</tr>
<tr bgcolor=$ac_second_color>
<td colspan=7 align=center style=\"font-size: 8pt;\"><b>
<a href=\"calendar.php?month=$ac_year_prev\" title=\"Год назад\" style=\"color:black;text-decoration: none;\"><<</a>
<a href=\"calendar.php?month=$ac_month_prev\" title=\"Месяц назад\" style=\"color:black;text-decoration: none;\"><</a>
<a href=\"calendar.php\" title=\"Текущий месяц\" style=\"color:black;text-decoration: none;\">•</a>
<a href=\"calendar.php?month=$ac_month_next\" title=\"Месяц вперед\" style=\"color:black;text-decoration: none;\">></a>
<a href=\"calendar.php?month=$ac_year_next\" title=\"Год вперед\" style=\"color:black;text-decoration: none;\">>></a>
</b></td>
";
echo "
</tr>
</table>";
?>
|
| |
|
|
|
|
|
|
|
для: Александр1984
(30.09.2008 в 20:02)
| | >Извлекаю переменную date из базы данных sql
Как это понимать? Если вы извлекаете записи из бызы данных, которые имеют поле date, то формируя календарь можно узнать - если запись в базе с датой, которая на данный момент выводится в календарь, и если есть, то ставить ссылку на эту дату, которая будет делать запрос к соответсвующей id записи в базе. | |
|
|
|