aboutsummaryrefslogtreecommitdiffstats
path: root/functions/list_icals.php
blob: 938265666a414c2f1337c6159e643e1e60075fc8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
if ($display_ical_list == "yes") {

	// start of <select> tag
	echo "<select name=\"action\" class=\"query_style\" onChange=\"window.location=(this.options[this.selectedIndex].value+'";
	if (isset($query)) echo $query;
	echo "');\">";
	// open file
	$dir_handle = @opendir($calendar_path) or die(error(sprintf($error_path_lang, $calendar_path), $cal_filename));
	
	// empty the filelist array
	$filelist = array();

	// build the <option> tags
	while (false != ($file = readdir($dir_handle))) {
		if (preg_match("/^[^.].+\.ics$/", $file)) {
			array_push($filelist, $file);
		}
	}
	natcasesort($filelist);
	foreach ($filelist as $file) {
		
		// $cal_filename is the filename of the calendar without .ics
		// $cal is a urlencoded version of $cal_filename
		// $cal_displayname is $cal_filename with occurrences of "32" replaced with " "
		$cal_filename_tmp = substr($file,0,-4);
		$cal_tmp = urlencode($cal_filename_tmp);
		$cal_displayname_tmp = str_replace("32", " ", $cal_filename_tmp);
		if (!in_array($cal_filename_tmp, $blacklisted_cals)) {
			if ($cal_tmp == $cal) {
				print "<option value=\"$current_view.php?cal=$cal_tmp&amp;getdate=$getdate\" selected>$cal_displayname_tmp $calendar_lang</option>";
			} else {
				print "<option value=\"$current_view.php?cal=$cal_tmp&amp;getdate=$getdate\">$cal_displayname_tmp $calendar_lang</option>";	
			}
		}	
	}			

	// option to open all (non-web) calenders together
	if ($cal == $ALL_CALENDARS_COMBINED) {
		print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED&amp;getdate=$getdate\" selected>$all_cal_comb_lang</option>";
	} else {
		print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED&amp;getdate=$getdate\">$all_cal_comb_lang</option>";
	}
		
	foreach($list_webcals as $cal_tmp) {
		if ($cal_tmp != '') {
			$cal_displayname_tmp = basename($cal_tmp);
			$cal_displayname_tmp = str_replace("32", " ", $cal_displayname_tmp);
			$cal_displayname_tmp = substr($cal_displayname_tmp,0,-4);
			$cal_encoded_tmp = urlencode($cal_tmp);
			if ($cal_tmp == $cal_httpPrefix || $cal_tmp == $cal_webcalPrefix) {
				print "<option value=\"$current_view.php?cal=$cal_encoded_tmp&amp;getdate=$getdate\" selected>$cal_displayname_tmp Webcal</option>";
			} else {
				print "<option value=\"$current_view.php?cal=$cal_encoded_tmp&amp;getdate=$getdate\">$cal_displayname_tmp Webcal</option>";	
			}		
		}
	}

	// close file
	closedir($dir_handle);
	
	// finish <select>
	print "</select>";
	
}


?>	

© 2014-2024 Faster IT GmbH | imprint | privacy policy