enormousrodent Posted October 21, 2007 Share Posted October 21, 2007 Hi Guys, Do you guys know somewhere where i can find a script which creates a Calendar which can be controled via a database, so if a date is "occupied" then the date will be marked at BOOKED. Rodent Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/ Share on other sites More sharing options...
only one Posted October 21, 2007 Share Posted October 21, 2007 Look through the php scripts, i found one on this site but i can't remember if it worked from a MySQL database, maybe you should try downloading SMF, they have a calendar system. Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374754 Share on other sites More sharing options...
enormousrodent Posted October 21, 2007 Author Share Posted October 21, 2007 im trying to find one that i can use to intergrate with a CMS system that i am trying to use. http://daytona.anyservers.com/~bastide/test.php This is a link to an array output, but i do not have the knowledge to turn these unix timestamps into a usable calander format. If you (or anyone) can make sense of it i would be very greatful. Thanks Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374768 Share on other sites More sharing options...
only one Posted October 21, 2007 Share Posted October 21, 2007 You could use that code to set a value for each day. Basically that code is setting an array for week 40 to week 44 in the year then you can recal that array an say you want to know the day of the month the first day of week 44 is you can simply echo $array[44][1][mday]. Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374771 Share on other sites More sharing options...
enormousrodent Posted October 21, 2007 Author Share Posted October 21, 2007 basically, how do i turn that information into a calendar: so: S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 etc Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374775 Share on other sites More sharing options...
only one Posted October 21, 2007 Share Posted October 21, 2007 Is it that difficult? it's only a simple array. http://www.phpfreaks.com/PHP_Reference/Arrays/10.php Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374776 Share on other sites More sharing options...
enormousrodent Posted October 21, 2007 Author Share Posted October 21, 2007 Honestly, it confuses the hell out of me. The Logic behind turning that into a calendar confuses me.. That is why i am asking for help..Only being honest...thanks for the links btw Here is the code that produces the array. <html> <head> <title></title> </head> <body> <?php function daysInMonths($time){ if(!$time) $time=time(); $month=strftime("%m",$time); $year=strftime("%Y",$time); return cal_days_in_month(CAL_GREGORIAN,$month,$year); } function renderCalendar($time){ if(!$time) $time=time(); //Get Month And Year $month=strftime("%m",$time); $year=strftime("%Y",$time); //Render Current Calendar $dayCount=cal_days_in_month(CAL_GREGORIAN,$month,$year); $calArray=array(); for($day=0;$day<$dayCount;$day++){ $tmNow=mktime(0,0,0,$month,$day+1,$year); $yearWeek=(int)strftime("%W",$tmNow); if($yearWeek>52) $yearWeek-=52; if(!is_array($calArray[$yearWeek])){ $calArray[$yearWeek]=array(); for($tday=0;$tday<7;$tday++){ $calArray[$yearWeek][$tday+1]=false; } } $dayInfo=array( "time" => $tmNow, "mday" => ($day+1), "wday" => (int)strftime("%w",$tmNow), "yday" => (int)strftime("%j",$tmNow) ); if(!$dayInfo['wday']) $dayInfo['wday']=7; $calArray[$yearWeek][$dayInfo['wday']]=$dayInfo; } $calInfo=array(-1=>array(),0=>array(),1=>array()); $calInfo[0]=mktime(0,0,0,$month,1,$year); //Get Next Month $nextmonth=$month+1; $nextyear=$year; if($nextmonth==13){ $nextyear++; $nextmonth-=12; } $calInfo[1]=mktime(0,0,0,$nextmonth,1,$nextyear); //Get Previous Month $prevmonth=$month-1; $prevyear=$year; if($nextmonth==0){ $prevyear--; $prevmonth+=12; } $calInfo[-1]=mktime(0,0,0,$prevmonth,1,$prevyear); //Return Calendar $cal=array('Calendar'=>$calArray,'Info'=>$calInfo); return $cal; } //----------------------------------------------------------------- ?> <pre><? print_r(renderCalendar(time())); ?> </pre> <? $Calendar = renderCalendar(time()); //Generate for current month $Months = $Calendar['Info']; $Calendar = $Calendar['Calendar']; $PreviousMonth = $Months[-1]; $CurrentMonth = $Months[0]; $NextMonth = $Months[1]; //These are the year weeks from 1-52 //that fit in the month of the calendar. $YearWeeks = array_keys($Calendar); //We parse the $Calendar array by $YearWeeks foreach($YearWeeks as $YearWeek){ $WeekDays = $Calendar[$YearWeek]; // And we further parse the $WeekDays for output foreach($WeekDays as $WeekDay){ $DayTimeStamp = $WeekDay['time']; $MonthDay = $WeekDay['mday']; $YearDay = $WeekDay['yday']; //Keep in mind on next line I loose the $WeekDay initial value //but I assigned all it's children to dedicated variable so who cares? $WeekDay = $WeekDay['wday']; //Here be dragons! Keep reading ... } } ?> </body> </html> Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374777 Share on other sites More sharing options...
LemonInflux Posted October 21, 2007 Share Posted October 21, 2007 Go to phpfreaks.com -> PHP tutorials -> Calendars.. Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-374786 Share on other sites More sharing options...
lisaped Posted November 7, 2009 Share Posted November 7, 2009 I'm looking at something similar to: http://www.shared-house.com/login.php?erreur=intru&langue=en Where you have a simple calendar showing css style in different colors as available, booked or pending booking. You can also opt to add a color to indicate whether high season, mid season or low season. There must be a back-end form to set pending/booked dates only the owner can change. Link to comment https://forums.phpfreaks.com/topic/74197-php-availability-calendar/#findComment-953199 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.