Page 1 of 1

Facebook events to CMS made simple

Posted: Fri Mar 18, 2016 7:32 pm
by sderks
Hello all,

After a long search in all the module i didn't find a scprit what a Facebook event place into a list at the CMS made simple site.

So i make it my self. Below stay the code:
past it into a user define tag.

-----------------------------------------------------------------------------

Code: Select all


// paste the Facebook webcal link below and replace webcal to https
$webcal =("https://www.facebook.com/ical/u.php?uid=100002220601702&key=AQDlz7vxlN-7RIBv");

function build_table($aRevEvenementen){
//start table
    $html .= '<table width="80%">';
	$html .= '<tbody>';
// header row
    $html .= '<tr>';
    foreach($aRevEvenementen[0] as $key=>$value){
            $html .= '<td>' . $key . '</td>';
        }
    $html .= '</tr>';
// data rows
    foreach($aRevEvenementen as $value){
        $html .= '<tr>';
        foreach($value as $value2){
            $html .= '<td>' . $value2 . ' </td>';
        }
        $html .= '</tr>';
    }
// finish table and return it
	$html .= '</tbody>';
    $html .= '</table>';
    return $html;
    }

//Start main function

$aEvenementen = array ();
$handle = @fopen($webcal, "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        if (strpos($buffer, 'DTSTART') !== false){
    		$DTstart_year = substr($buffer, 8, -14);  // DTSTART:20170114T180000Z
			$DTstart_month = substr($buffer, 12, -12);
			$DTstart_day = substr($buffer, 14, -10);
			$DTstart_hour = (substr($buffer, 17, -7) + 1); // add 1 hour time zone compensation
			$DTstart_min = substr($buffer, 19, -5);
			$Date = $DTstart_day.' - '.$DTstart_month.' - '.$DTstart_year; // return 14 - 01 - 2017
			$StartTime = $DTstart_hour.':'.$DTstart_min; // return opening 18:00
		}
		if (strpos($buffer, 'DTEND') !== false){
			$DTend_year = substr($buffer, 6, -14);
			$DTend_month = substr($buffer, 10, -12);
			$DTend_day = substr($buffer, 12, -10);
			$DTend_hour = (substr($buffer, 15, -7) + 1); // add 1 hour time zone compensation
			$DTend_min = substr($buffer, 17, -5);
			if (($DTend_hour - $DTstart_hour) == 3){ // needed when no end time is filled defaut 3h
				$EndTime = '-';
			}
			else{
			$EndTime = ' '.$DTend_hour.':'.$DTend_min;
			}
		}
		if (strpos($buffer, 'SUMMARY') !== false){
			$summary = substr($buffer, 8, -1);  // returns "Text - SUMMARY"
// put strings into a multiple array
			$aEvenementen[$i] ['Date'] = $Date;
			$aEvenementen[$i] ['Summary'] = $summary;
			$aEvenementen[$i] ['Start Time'] = $StartTime;
			$aEvenementen[$i] ['End Time'] = $EndTime;
			$i=$i+1;
		}
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
	}
	fclose($handle);
}	

	$aRevEvenementen = array_reverse($aEvenementen); // place oldest date above
	echo build_table($aRevEvenementen);