forked from kivitendo/kivitendo-crm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmkics.php
80 lines (80 loc) · 4.21 KB
/
mkics.php
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
69
70
71
72
73
74
75
76
77
78
79
80
<?php
require_once("inc/stdLib.php");
include("inc/crmLib.php");
include_once("inc/UserLib.php");
require_once( 'inc/iCalcreator.class.php' );
$user=getUserStamm($_SESSION["loginCRM"]);
$start=($_POST["start"]<>"")?$_POST["start"]:date('d.m.Y');
$stop = ($_POST["stop"]<>"")?$_POST["stop"]:'';
$termine = searchTermin('%',0,$start,$stop,$_SESSION["loginCRM"]);
$v = new vcalendar(); // create a new calendar instance
$v->setConfig( 'unique_id', strtr($user["name"],' ','_')); // set Your unique id
$v->setProperty( 'method', 'PUBLISH' ); // required of some calendar software
if ($termine) {
$ts="";
foreach ($termine as $t) {
$ts.=$t["id"].",";
}
$data=getTerminList($ts."0");
$cnt=0;
foreach ($data as $term) {
$cnt++;
$vevent = new vevent(); // create an event calendar component
$vevent->setProperty( 'dtstart', array( 'year'=>substr($term["starttag"],0,4),
'month'=>substr($term["starttag"],5,2),
'day'=>substr($term["starttag"],8,2),
'hour'=>substr($term["startzeit"],0,2),
'min'=>substr($term["startzeit"],3,2),
'sec'=>0 ));
$vevent->setProperty( 'dtend', array( 'year'=>substr($term["stoptag"],0,4),
'month'=>substr($term["stoptag"],5,2),
'day'=>substr($term["stoptag"],8,2),
'hour'=>substr($term["stopzeit"],0,2),
'min'=>substr($term["stopzeit"],3,2),
'sec'=>0 ));
$vevent->setProperty( 'LOCATION', $term["location"] ); // property name - case independent
$vevent->setProperty( 'categories', $term["catname"] );
//$vevent->setProperty( "Exrule" , array ("FREQ" => "", "INTERVAL" => "MONTHLY" , "UNTIL" => "20060831", "INTERVAL" => 2)
$vevent->setProperty( 'summary', $term["cause"] );
$vevent->setProperty( 'description', $term["c_cause"] );
$vevent->setProperty( 'attendee', $user["email"] );
$v->setComponent ( $vevent ); // add event to calendar
}
}
$v->setConfig( 'filename', date('Ymd').'_calendar.'.$_POST["icalext"] ); // set file name
if ($_POST["icalart"]=="client") {
$v->returnCalendar();
} else if ($_POST["icalart"]=="mail") {
$user=getUserStamm($_SESSION["loginCRM"]);
$abs=sprintf("%s <%s>",$user["name"],$user["email"]);
$Subject="LxO-Kalender";
$v->setConfig( 'directory', "/tmp/" ); // identify directory
$v->saveCalendar(); // save calendar to file
include_once("Mail.php");
include_once("Mail/mime.php");
$headers=array(
"Return-Path" => $abs,
"Reply-To" => $abs,
"From" => $abs,
"X-Mailer" => "PHP/".phpversion(),
"Subject" => $Subject);
$mime = new Mail_Mime("\n");
$mime->setTXTBody("");
echo "!".$v->getConfig('directory')."/".$v->getConfig('filename')."!".$v->getConfig('filename')."!";
$mime->addAttachment($v->getConfig('directory')."/".$v->getConfig('filename'),"text/plain",$v->getConfig('filename'));
$body = $mime->get(array("text_encoding"=>"quoted-printable","text_charset"=>$_SESSION["charset"]));
$hdr = $mime->headers($headers);
$mail =& Mail::factory("mail");
$mail->_params="-f ".$user["email"];
$rc=$mail->send($_POST["icaldest"], $hdr, $body);
} else {
if (strtoupper($_POST["icaldest"]) == "HOME") $_POST["icaldest"] = "dokumente/".$_SESSION["dbname"]."/".$_SESSION["login"]."/";
$v->setConfig( 'directory', $_POST["icaldest"] ); // identify directory
$v->saveCalendar(); // save calendar to file
}
if ($cnt>0) {
echo $cnt.' Termine exportiert';
} else {
echo "Keine Termine";
}
?>