avatar
Untitled

Guest 32 15th Jan, 2020

MARKUP 8.46 KB
                                           
                         <?php
/*
 * Function requested by Ajax
 */
if(isset($_POST['func']) && !empty($_POST['func'])){
	switch($_POST['func']){
		case 'getCalender':
			getCalender($_POST['year'],$_POST['month']);
			break;
		case 'getEvents':
			getEvents($_POST['date']);
			break;
		default:
			break;
	}
}
/*
 * Get calendar full HTML
 */
function getCalender($year = '',$month = '')
{
	include 'dbConfig.php';
	$pid = $_SESSION['id'] ?? 'empty';
	$result = $db->query("INSERT INTO session (sessionkey) VALUES ($pid);");
	$dateYear = ($year != '')?$year:date("Y");
	$dateMonth = ($month != '')?$month:date("m");
	$date = $dateYear.'-'.$dateMonth.'-01';
	$currentMonthFirstDay = date("N",strtotime($date));
	$totalDaysOfMonth = cal_days_in_month(CAL_GREGORIAN,$dateMonth,$dateYear);
	$totalDaysOfMonthDisplay = ($currentMonthFirstDay == 7)?($totalDaysOfMonth):($totalDaysOfMonth + $currentMonthFirstDay);
	$boxDisplay = ($totalDaysOfMonthDisplay <= 35)?35:42;
?>
	<div id="calender_section">
		<h2>
        	<a href="javascript:void(0);" onclick="getCalendar('calendar_div','<?php echo date('Y',strtotime($date.' - 1 Month')); ?>','<?php echo date('m',strtotime($date.' - 1 Month')); ?>');">&lt;&lt;</a>
            <select name="month_dropdown" class="month_dropdown dropdown"><?php echo getAllMonths($dateMonth); ?></select>
			<select name="year_dropdown" class="year_dropdown dropdown"><?php echo getYearList($dateYear); ?></select>
            <a href="javascript:void(0);" onclick="getCalendar('calendar_div','<?php echo date('Y',strtotime($date.' + 1 Month')); ?>','<?php echo date('m',strtotime($date.' + 1 Month')); ?>');">&gt;&gt;</a>
        </h2>
		<div id="event_list" class="none"></div>
		<div id="calender_section_top">
			<ul>
				<li>Ma</li>
				<li>Ti</li>
				<li>Ke</li>
				<li>To</li>
				<li>Pe</li>
				<li>La</li>
				<li>Su</li>
			</ul>
		</div>
		<div id="calender_section_bot">
			<ul>
			<?php
			ini_set('display_errors', 1);
			ini_set('display_startup_errors', 1);
			error_reporting(E_ALL);
				//$userID = isset($_REQUEST['userID']) ? $_REQUEST['userID'] : null;
				//$userID = $_GET['userID'];
				//if(isset($_GET['userID'])){
					//Do something
					//echo "The type you posted is ".$_GET['userID'];
				  //} else { 
				//echo "ID:tä ei löydy  $userID";}
				$dayCount = 1; 
				for($cb=1;$cb<=$boxDisplay;$cb++){
					if(($cb >= $currentMonthFirstDay || $currentMonthFirstDay == 7) && $cb <= ($totalDaysOfMonthDisplay)){
						//Current date
						$currentDate = $dateYear.'-'.$dateMonth.'-'.$dayCount;
						$test = strtotime($currentDate);
						$eventNum = 0;
						//Include db configuration file
						//include 'dbConfig.php';
						$sql = $db->query("SELECT * FROM session ORDER BY ID DESC LIMIT 1");
						if ($sql->num_rows > 0) {
							while ($row = $sql->fetch_assoc()) {
								$sessionID = $row["sessionkey"];
							}
						}
						//Get number of events based on the current date
						$result = $db->query("SELECT Description FROM work WHERE Dates = '".$test."' AND UserID = '".$sessionID."'");
						if (!$result) {
							trigger_error('Invalid query: ' . $db->error);
						}
						$eventNum = $result->num_rows;
						//Define date cell color
						if(strtotime($currentDate) == strtotime(date("d-m-Y"))){
							echo '<li date="'.$currentDate.'" class="grey date_cell">';
						}elseif($eventNum > 0){
							echo '<li date="'.$currentDate.'" class="light_sky date_cell">';
						}else{
							echo '<li date="'.$currentDate.'" class="date_cell">';
						}
						//Date cell
						echo '<span>';
						echo $dayCount;
						echo '</span>';
						
						//Hover event popup
						echo '<div id="date_popup_'.$currentDate.'" class="date_popup_wrap none">';
						echo '<div class="date_window">';
						echo '<div class="popup_event">Events ('.$eventNum.')</div>';
						echo ($eventNum > 0)?'<a href="javascript:;" onclick="getEvents(\''.$currentDate.'\');">view events</a>':'';
						echo '</div></div>';
						
						echo '</li>';
						$dayCount++;
			?>
			<?php }else{ ?>
				<li><span>&nbsp;</span></li>
			<?php } } ?>
			</ul>
		</div>
	</div>

	<script type="text/javascript">
		function getCalendar(target_div,year,month){
			$.ajax({
				type:'POST',
				url:'functions_c.php',
				data:'func=getCalender&year='+year+'&month='+month,
				success:function(html){
					$('#'+target_div).html(html);
				}
			});
		}
		function getEvents(date){
			$.ajax({
				type:'POST',
				url:'functions_c.php',
				data:'func=getEvents&date='+date,
				success:function(html){
					$('#event_list').html(html);
					$('#event_list').slideDown('slow');
				}
			});
		}
		
		function addEvent(date){
			$.ajax({
				type:'POST',
				url:'functions_c.php',
				data:'func=addEvent&date='+date,
				success:function(html){
					$('#event_list').html(html);
					$('#event_list').slideDown('slow');
				}
			});
		}
		
		$(document).ready(function(){
			$('.date_cell').mouseenter(function(){
				date = $(this).attr('date');
				$(".date_popup_wrap").fadeOut();
				$("#date_popup_"+date).fadeIn();	
			});
			$('.date_cell').mouseleave(function(){
				$(".date_popup_wrap").fadeOut();		
			});
			$('.month_dropdown').on('change',function(){
				getCalendar('calendar_div',$('.year_dropdown').val(),$('.month_dropdown').val());
			});

			$('.year_dropdown').on('change',function(){
				getCalendar('calendar_div',$('.year_dropdown').val(),$('.month_dropdown').val());
			});
			$(document).click(function(){
				$('#event_list').slideUp('slow');
			});
		});
	</script>
<?php
}

/*
 * Get months options list.
 */
function getAllMonths($selected = ''){
	$options = '';
	for($i=1;$i<=12;$i++)
	{
		$value = ($i < 10)?'0'.$i:$i;
		$selectedOpt = ($value == $selected)?'selected':'';
		$options .= '<option value="'.$value.'" '.$selectedOpt.' >'.date("F", mktime(0, 0, 0, $i+1, 0, 0)).'</option>';
	}
	return $options;
}

/*
 * Get years options list.
 */
function getYearList($selected = ''){
	$options = '';
	for($i=2019;$i<=2029;$i++)
	{
		$selectedOpt = ($i == $selected)?'selected':'';
		$options .= '<option value="'.$i.'" '.$selectedOpt.' >'.$i.'</option>';
	}
	return $options;
}

/*
 * Get events by date
 */
function getEvents($date = ''){
	//Include db configuration file
	//$userID = $_GET['userID'];
	//echo "getevents userid"+$pid;
	include 'dbConfig.php';
	$eventListHTML = '';
	$date = $date?$date:date("d-m-Y");
	$test = strtotime($date);
	$sql = $db->query("SELECT * FROM session ORDER BY ID DESC LIMIT 1");
	if ($sql->num_rows > 0) {
		while ($row = $sql->fetch_assoc()) {
			$sessionID = $row["sessionkey"];
		}
	}
	//Get events based on the current date
	$result = $db->query("SELECT Description FROM work WHERE Dates = '".$test."' AND UserID = '".$sessionID."'");
	if (!$result) {
		trigger_error('Invalid query: ' . $db->error);
	}
	if($result->num_rows > 0){
		$eventListHTML = '<h2>Events on '.date("l, d M Y",strtotime($date)).'</h2>';
		$eventListHTML .= '<ul>';
		while($row = $result->fetch_assoc()){ 
            $eventListHTML .= '<li>'.$row['Description'].'</li>';
        }
		$eventListHTML .= '</ul>';
	}
	echo $eventListHTML;
}
?>
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes