Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » календарь загнать в функцию
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
календарь загнать в функцию [сообщение #35234]

Cделал календарь, работает так как мне и надо было, но вот осталось единственное что мне надо, это загнать весь код в одну функцию, что бы можно было вызывать её именно этой функцией.

вот код


PHP:


<?php
include("config.php");

    
$cell_width  = "30";
    
$cell_height = "7";
    
$header_bg   = "#E0E0E0";
    
$day_bg      = "#000000";
    
$cell_border = "#ffffff";
    
$cell_bg     = "#E6E6E6";
    
$today_bg    = "#efefef";
    
$dayoff_bg   = "red";
    
$fontsize    = "1";
    
$fontcolor  = "FFFFFF";
function 
get_offset_time()
{

             
$timeoffset = "+0";
             
$now = time();
             
$operator =  substr ($timeoffset ,0,1);
             
$offset   = (substr ($timeoffset ,1,2) * 3600);

         if (
$operator == "-")
             
$newtime = ($now - $offset);
     elseif (
$operator == "+")
             
$newtime = ($now + $offset);

return 
$newtime;
}

    
$newtime = get_offset_time();
    
$today   = date("d",$newtime);
        
$tomonth = date("m",$newtime);
        
$toyear  = date("Y",$newtime);

    if (
$month == 0) $month = date("m",$newtime);
    if (
$year == 0)  $year=date("Y",$newtime);

    if (
strlen($month) ==1)
        
$month = "0" . "$month";
    if (
strlen($year) ==2)
        
$year = "20" . "$year";

        
$prev_month = date("m", mktime(0,0,0,$month -1, 1, $year));
        
$next_month = date("m", mktime(0,0,0,$month +1, 1, $year));
        
$prev_year  = date("Y", mktime(0,0,0,$month -1, 1, $year));
        
$next_year  = date("Y", mktime(0,0,0,$month +1, 1, $year));

        
$day= 2 - date("w",mktime (0,0,0,$month,1,$year));
         if (
$day==1)
    
$day=7;
        
$days_in_month = date("t", mktime(0,0,0,$month,1,$year));
        
$title = (date("F",mktime(0,0,0,$month,1,$year)));
        
$prev = "archive_month.php?year="."$prev_year&month=$prev_month";
        
$next = "archive_month.php?year="."$next_year&month=$next_month";
        
$prevlink = "<font size=$fontsize face=Terminal><a class=weekdays href=\"$prev\"><<<</a></font>";
        
$nextlink = "<font size=$fontsize face=Terminal><a class=weekdays href=\"$next\">>>></a></font>";



    if (
$title == "January") $title  = "Январь";
    if (
$title == "February") $title  = "Февраль";
    if (
$title == "March") $title  = "Март";
    if (
$title == "April") $title  = "Апрель";
    if (
$title == "May") $title  = "Май";
    if (
$title == "June") $title  = "Июнь";
    if (
$title == "July") $title  = "Июль";
    if (
$title == "August") $title  = "Август";
    if (
$title == "September") $title  = "Сентябрь";
    if (
$title == "October") $title  = "Октябрь";
    if (
$title == "November") $title  = "Ноябрь";
    if (
$title == "December")$title  = "Декбрь";
?>
<table border="0" cellpadding="0" cellspacing="0" width="150">
<tr>
<td align="center">
<table bgcolor="<?php echo "$header_bg"; ?>" align="center" border="0" cellpadding="1" cellspacing="0" width="150">
<tr>
<td align="center"><?php echo"<font color=3f3f3f size=1> $prevlink $title $year $nextlink </font>"?></td>
</tr>
</table>
</td></tr>
<tr><td bgcolor="<?php echo "$cell_border"; ?>">
<table border="0" cellpadding="1" cellspacing="1" width="150">
<tr>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Пн</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Вт</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Ср</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Чт</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Пт</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Сб</b></font></div></td>
<td bgcolor="<?php echo "$day_bg"; ?>" align="center" width="<?php echo "$cell_width"; ?>"><div class="weekdays"><font color=FFFFFF size=1><b>Вс</b></font></div></td>

</tr>
<?php
while($day <= $days_in_month) {
echo 
"<tr>\r\n";
for (
$j=1; $j<=7; $j++){
if ((
$day == $today) && ($month == $tomonth) && ($year == $toyear)) {
?>
<td bgcolor="<?php echo "$today_bg"; ?>" height="<?php echo "$cell_height"; ?>" valign="top"><?php echo(($day <= $days_in_month && $day > 0 ) ?  mini_cal_entries($year,$month,$day,$today,$tomonth
,$toyear): "&nbsp;"); ?></td>
<?php
}
else {
?>
<td bgcolor="<?php echo "$cell_bg"; ?>" height="<?php echo "$cell_height"; ?>" valign="top"><?php echo(($day <= $days_in_month && $day > 0 ) ?  mini_cal_entries($year,$month,$day,$today,$tomonth
,$toyear): "&nbsp;"); ?></td>

<?php
}
$day++;
}
echo 
"</tr>\r\n";
}
?>
</table>
</td>
</tr>
</table>



<?php
function  mini_cal_entries($year,$month,$day,$today,$tomonth
,$toyear)
{
global 
$db_name, $table, $url_home, $host, $user, $pass ;

        if ((
$day == $today) && ($month == $tomonth) && ($year == $toyear))
              
$dayfmt = "<font color=ff0000><b>$day</b></font>";
        else  
$dayfmt = "$day";

              
$zipday = $day;


$news_cat="sport";
$link=@mysql_connect($host,$user,$pass);
$db=@mysql_select_db($db_name,$link);
$result=@mysql_query("select * from $table WHERE status='open' AND news_cat='$news_cat' AND year='$year' AND month='$month' AND day='$zipday'");
while(
$row = mysql_fetch_array($result)) {
$links = "year=".$row["year"]."&month=".$row["month"]."&day=".$row["day"]."";
$dayfmt= "<font face=Arial Narrow color=ff0000><a href=$url_home"."$news_cat"."/archive_day.php?"."$links>$dayfmt</a></font>";
}
 echo 
"<font face=Arial Narrow size=1 color=000000><div align=\"center\">$dayfmt</div></font>";
}
?>


__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 22-02-2003 15:16
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Nevermind
Участник+
Средний рейтинг: 4 | Оценок: 7
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Feb 2002
Место проживания: RU, VLadivostok
Публикаций: 145
Статус: Nevermind в оф-лайне
[сообщение #35261]

В третьей строке приведенного выше кода напиши:
function Calendar() {
В предпоследней:
}

А те функции, что уже здесь установлены (mini_cal_entries и get_offset_time) - вынеси выше или ниже функции calendar(). В самой calendar() их просто вызывай потом (они ведь уже будут объявлены).

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 22-02-2003 23:22
Нажмите сюда для просмотра профайла Nevermind Отправить Персональное сообщение Nevermind Найти сообщения от Nevermind Добавить Nevermind в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
[сообщение #35286]

спасибо, получилось, только вот ещё, тут получается что нужно высотвлять несколько аргументов
<?php Calendar(2003,02,23,23,02,2003);?>

из которых я понял два первых аргумента, это год потом идёт месяц, дальше незнаю зачем то день, и далее следующие аргументы $today,$tomonth,$toyear непонятно для чего они нужны, я просто вытсавил от понта дату любую, изменений незаметил.

Вообщем мне надо при выводе календаря, вместо этой функции <?php Calendar(2003,02,23,23,02,2003);?> такую <?php Calendar();?>

тоесть избавиться от аргументов, их бы гдени будь указать в самой функции, но вот как это сделать?

__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 23-02-2003 07:01
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Nevermind
Участник+
Средний рейтинг: 4 | Оценок: 7
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Feb 2002
Место проживания: RU, VLadivostok
Публикаций: 145
Статус: Nevermind в оф-лайне
[сообщение #35306]

ANDRY,
Там же, где у тебя задаются параметры для таблицы, указывай и аргументы функции.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 23-02-2003 11:30
Нажмите сюда для просмотра профайла Nevermind Отправить Персональное сообщение Nevermind Найти сообщения от Nevermind Добавить Nevermind в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
[сообщение #35311]

всё с этим я разобрался, убрал я эту функцию get_offset_time() без неё неплохо работает, немного поменял, всё работает, сам календарь выводиться теперь функцией mini_calendar(), но вот осталось ещё сделать обращение к базе для выбора категории тоесть так
WHERE news_cat='$news_cat_cal' переменная $news_cat_cal указывает через функцию mini_calendar($news_cat) где на самой странице где должен быть выведен календарик стоит такая функция mini_calendar("category") то почемуто он онеопределяет, тоесть переменной неприсваивается значение category, а если прописать так WHERE news_cat='category' то выводит. Вроде бы в global выставил переменную, что тогда ему надо-то ещё?

вот код


PHP:


<?php
include("config.php");
function 
mini_calendar($news_cat) {
global 
$month,$url_home,$news_cat_cal ;

    
$cell_width  = "30";
    
$cell_height = "7";
    
$header_bg   = "#E0E0E0";
    
$day_bg      = "#000000";
    
$cell_border = "#ffffff";
    
$cell_bg     = "#E6E6E6";
    
$today_bg    = "#efefef";
    
$dayoff_bg   = "red";
    
$fontsize    = "1";
    
$fontcolor  = "FFFFFF";

        
$today   = date("d");
        
$tomonth = date("m");
        
$toyear  = date("Y");

    if (
$month == 0) $month = date("m");
    if (
$year == 0)  $year=date("Y");

    if (
strlen($month) ==1)
        
$month = "0" . "$month";
    if (
strlen($year) ==2)
        
$year = "20" . "$year";

        
$prev_month = date("m", mktime(0,0,0,$month -1, 1, $year));
        
$next_month = date("m", mktime(0,0,0,$month +1, 1, $year));
        
$prev_year  = date("Y", mktime(0,0,0,$month -1, 1, $year));
        
$next_year  = date("Y", mktime(0,0,0,$month +1, 1, $year));

        
$day= 2 - date("w",mktime (0,0,0,$month,1,$year));
    if (
$day==1)
        
$day=7;
        
$days_in_month = date("t", mktime(0,0,0,$month,1,$year));
        
$month_str = (date("F",mktime(0,0,0,$month,1,$year)));
        
$prev = "$url_home"."$news_cat_cal"."/archive_month.php?year="."$prev_year&month=$prev_month";
        
$next = "$url_home"."$news_cat_cal"."/archive_month.php?year="."$next_year&month=$next_month";
        
$prevlink = "<font size=$fontsize face=Terminal><a class=weekdays href=\"$prev\"><<<<&nbsp;</a></font>";
        
$nextlink = "<font size=$fontsize face=Terminal><a class=weekdays href=\"$next\">&nbsp;>>>></a></font>";

    if (
$month_str == "January") $month_str  = "Январь";
    if (
$month_str == "February") $month_str  = "Февраль";
    if (
$month_str == "March") $month_str  = "Март";
    if (
$month_str == "April") $month_str  = "Апрель";
    if (
$month_str == "May") $month_str  = "Май";
    if (
$month_str == "June") $month_str  = "Июнь";
    if (
$month_str == "July") $month_str  = "Июль";
    if (
$month_str == "August") $month_str  = "Август";
    if (
$month_str == "September") $month_str  = "Сентябрь";
    if (
$month_str == "October") $month_str  = "Октябрь";
    if (
$month_str == "November") $month_str  = "Ноябрь";
    if (
$month_str == "December")$month_str  = "Декбрь";
    
echo 
"
<table border=0 cellpadding=0 cellspacing=0 width=150>
<tr>
<td align=center>
<table bgcolor=
$header_bg align=center border=0 cellpadding=1 cellspacing=0 width=150>
<tr>
<td align=center><font color=3f3f3f size=1> 
$prevlink $month_str $year $nextlink </font></td>
</tr>
</table>
</td></tr>
<tr><td bgcolor=
$cell_border>
<table border=0 cellpadding=1 cellspacing=1 width=150>
<tr>
<td bgcolor=
$day_bg align=center width=$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Пн</b></font></div></td>
<td bgcolor=
$day_bg align=center width=$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Вт</b></font></div></td>
<td bgcolor=
$day_bg align=center width=$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Ср</b></font></div></td>
<td bgcolor=
$day_bg align=center width=$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Чт</b></font></div></td>
<td bgcolor=
$day_bg align=center width=$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Пт</b></font></div></td>
<td bgcolor=FF9933 align=center width=
$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Сб</b></font></div></td>
<td bgcolor=FF9933 align=center width=
$cell_width><div class=weekdays><font color=FFFFFF size=1><b>Вс</b></font></div></td>
</tr>"
;
?>
</tr>
<?php
while($day <= $days_in_month) {
echo 
"<tr>\r\n";
for (
$j=1; $j<=7; $j++){
if ((
$day == $today) && ($month == $tomonth) && ($year == $toyear)) {
?>
<td bgcolor="<?php echo "$today_bg"; ?>" height="<?php echo "$cell_height"; ?>" valign="top"><?php echo(($day <= $days_in_month && $day > 0 ) ?  mini_cal_entries($news_cat_cal,$year,$month,$day,$
today,$tomonth,$toyear): "&nbsp;"); ?></td>
<?php       
}    
else {       
?>
<td bgcolor="<?php echo "$cell_bg"; ?>" height="<?php echo "$cell_height"; ?>" valign="top"><?php echo(($day <= $days_in_month && $day > 0 ) ?  mini_cal_entries($news_cat_cal,$year,$month,$day,$
today,$tomonth,$toyear): "&nbsp;"); ?></td>
<?php 
}
$day++;
}
echo 
"</tr>\r\n";
}
?>
</table>
</td>
</tr>
</table>
<?php

}
function  
mini_cal_entries($news_cat_cal,$year,$month,$day,$
today,$tomonth,$toyear)
{
global 
$db_name, $table, $url_home, $host, $user, $pass, $news_cat, $news_cat_cal ;


        if ((
$day == $today) && ($month == $tomonth) && ($year == $toyear))
              
$dayfmt = "<font face=Arial Narrow color=#FF0000 size=1><b>$day</b></font>";
        else  
$dayfmt = "$day";

              
$zipday = $day;
        if (
strlen ($day) ==1)
              
$zipday = "0"."$day";


        
$year = "$year";
        
$month = "$month";
        
$zipday = "$zipday";
        
$day = "$day";


$news_cat_cal="$news_cat_cal";
$link=@mysql_connect($host,$user,$pass);
$db=@mysql_select_db($db_name,$link);
$result=@mysql_query("select * from $table WHERE status='open' AND news_cat='$news_cat_cal' AND year='$year' AND month='$month' AND day='$zipday'");
while(
$row = mysql_fetch_array($result)) {
$links = "year=".$row["year"]."&month=".$row["month"]."&day=".$row["day"]."";
$dayfmt= "<a href=$url_home"."$news_cat"."/archive_day.php?"."$links><font face=Arial Narrow color=808080 size=1>$dayfmt</font></a>";
}
echo 
"<div align=\"center\"><font face=Arial Narrow size=1>$dayfmt</font></div>";
}
?>

__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 23-02-2003 12:43
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Nevermind
Участник+
Средний рейтинг: 4 | Оценок: 7
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Feb 2002
Место проживания: RU, VLadivostok
Публикаций: 145
Статус: Nevermind в оф-лайне
[сообщение #35379]

ANDRY,
А ты эту $news_cat как устанавливаешь? Через адресную строку? Попробуй тогда вот так:
function mini_calendar($_GET['news_cat']) {

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 23-02-2003 23:33
Нажмите сюда для просмотра профайла Nevermind Отправить Персональное сообщение Nevermind Найти сообщения от Nevermind Добавить Nevermind в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
[сообщение #35400]

блин, чет невыходит, выводит
Parse error: parse error, unexpected '[', expecting ')' in D:\server\www\mysite\mini_calendar.php on line 3

quote:
А ты эту $news_cat как устанавливаешь?


я её выставляю в функции
<?php mini_calendar("inet");?>
в зависимости от раздела страници, вот эта функция что сейчас показал, должна выводить те числа что относятся к разделу инет, есть и другие разделы

__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-02-2003 05:16
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
ANDRY
Участник+
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: May 2002
Место проживания: Новокузнецк
Публикаций: 223
Статус: ANDRY в оф-лайне
[сообщение #35579]

фу, сделал, сам даже непонял именно как, всё методом тыка, тоесть создал новую переменную $news_cat_name в

function mini_calendar($news_cat_name) {
global $year,$month,$day,$today,$tomonth,$toyear,$news_ca
t,$url_home ;

$news_cat="$news_cat_name";

и её присвоил к $news_cat, всё пошло как надо, может из за того что переменные смешивались, мда.

кстати, незнаешь как можно сделать так чтобы, ссылки появлялись на дни, не выше сегодняшней даты, это мне надо для того, например я захочю добавить несколько новостей вперёд на дня 2-3 но её недолжны видеть никто пока дата несровняется с той что указал при добавлении новости

__________________
**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 25-02-2003 04:38
Нажмите сюда для просмотра профайла ANDRY Отправить Персональное сообщение ANDRY Посетить домашнию страничку ANDRY! Найти сообщения от ANDRY Добавить ANDRY в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 11:19.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 4.44820189 seconds (99.86% PHP - 0.14% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.