summaryrefslogblamecommitdiffstats
path: root/includes/admin/views/_concerts_cal_dld.php
blob: f306a69b9c93fa38e323e93498890a57096cb451 (plain) (tree)

































































































































































                                                                                         
<?php

   // Fix PHP headers
    ob_start();

use Kigkonsult\Icalcreator\Vcalendar;
use DateTime;
use DateTimezone;


    function icalvalue(): string
    {
         $vcalendar = Vcalendar::factory( [ Vcalendar::UNIQUE_ID => "kigkonsult.se", ] )

    // with calendaring info
                 ->setMethod( Vcalendar::PUBLISH )
                 ->setXprop(
                      Vcalendar::X_WR_CALNAME,
                      "Calendar Sample"
                 )
                 ->setXprop(
                      Vcalendar::X_WR_CALDESC,
                      "This is a demo calendar"
                 )
                 ->setXprop(
                      Vcalendar::X_WR_RELCALID,
                      "3E26604A-50F4-4449-8B3E-E4F4932D05B5"
                 )
                 ->setXprop(
                      Vcalendar::X_WR_TIMEZONE,
                      "Europe/Stockholm"
                 );
                 
                    // create a new event
$event1 = $vcalendar->newVevent()
              ->setTransp( Vcalendar::OPAQUE )
              ->setClass( Vcalendar::P_BLIC )
              ->setSequence( 1 )
    // describe the event
              ->setSummary( 'Scheduled meeting with five occurrences' )
              ->setDescription(
                   'Agenda for the the meeting...',
                   [ Vcalendar::ALTREP =>
                       'CID:<FFFF__=0ABBE548DFE235B58f9e8a93d@coffeebean.com>' ]
              )
              ->setComment( 'It\'s going to be fun..' )
    // place the event
              ->setLocation( 'Kafé Ekorren Stockholm' )
              ->setGeo( '59.32206', '18.12485' )
    // set the time
              ->setDtstart(
                  new DateTime(
                      '20220421T090000',
                      new DateTimezone( 'Europe/Stockholm' )
                  )
              )
              ->setDtend(
                  new DateTime(
                      '20220421T100000',
                      new DateTimezone( 'Europe/Stockholm' )
                  )
              )
    // with recurrence rule


;

    // add alarm for the event
$alarm = $event1->newValarm()
             ->setAction( Vcalendar::DISPLAY )
    // copy description from event
             ->setDescription( $event1->getDescription())
    // fire off the alarm one day before
             ->setTrigger( '-P1D' );

    // alter day and time for one event in recurrence set
$event2 = $vcalendar->newVevent()
              ->setTransp( Vcalendar::OPAQUE )
              ->setClass( Vcalendar::P_BLIC )
    // reference to event in recurrence set
              ->setUid( $event1->getUid())
              ->setSequence( 2 )
    // pointer to event in the recurrence set
              ->setRecurrenceid( '20220505T090000 Europe/Stockholm' )
    // reason text
              ->setDescription(
                  'Altered day and time for event 2022-05-05',
                  [ Vcalendar::ALTREP =>
                      'CID:<FFFF__=0ABBE548DFE235B58f9e8a93d@coffeebean.com>' ]
              )
              ->setComment( 'Now we are working hard for two hours' )
    // the altered day and time with duration
              ->setDtstart(
                  new DateTime(
                      '20220504T100000',
                      new DateTimezone( 'Europe/Stockholm' )
                  )
              )
              ->setDuration( 'PT2H' )
    // add alarm (copy from event1)
              ->setComponent(
                  $event1->getComponent( Vcalendar::VALARM )
              );

$vcalendarString =
    // apply appropriate Vtimezone with Standard/DayLight components
    $vcalendar->vtimezonePopulate()
    // and create the (string) calendar
    ->createCalendar();
    
return($vcalendarString);
    }
	
	
	
function dldCal()
{


if(isset($_POST['download'])){
    $file = "test.ical";
    $txt = fopen($file, "w") or die("Unable to open file!");
fwrite($txt, icalvalue());
fclose($txt);
 
  $filename = "myzipfile.zip";

  if (file_exists($file)) {
     header('Content-Type: application/zip');
     header('Content-Disposition: attachment; filename="'.basename($file).'"');
     header('Content-Length: ' . filesize($file));
    ob_clean();
     flush();
    echo  readfile($file);
     // delete file
    // unlink($file);
     
  }
}
/*

            


header('Content-Type: text/calendar');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Content-Length:'. filesize($file));
header('Pragma: public');
ob_clean();
//flush();
readfile('test.ical');
//echo file_get_contents($file);

*/




}