Re: Displaying an Outlook Calendar on a webpage using PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reasons:

1. Because you can.

2. Because I believe you need Exchange Server and IIS running to share outlook calendars out via the web(?)

3. Because the project has a requirement to do it this way

4. Because he likes a challenge



The question "Is this the best way to accomplish your goal" is a good one because if there's a smarter/better way, I'm sure even inflexible bosses can be made to bend a bit, but asking "Why?" always feels like someone's asking "Are you a moron?"  hah..  

-TG



= = = Original message = = =

But why would you do that when you can share the Calendar over outlook?

On 6/6/05, tg-php@xxxxxxxxxxxxxxxxxxxxxx <tg-php@xxxxxxxxxxxxxxxxxxxxxx> 
wrote: 
> 
> That looks like some of my code.. or a derivative of my code. For some 
> reason, my PC at work here is having issues with PHP instantiating with COM 
> so I can't test this, but the code you posted is conspicuously missing all 
> the braces  . I'm guessing that's not your issue though... or else you'd 
> be getting some kind of error maybe.
> 
> Anyway, here's a re-braced version of the code. It should produce 
> something when run through a web browser, but you might View Source and see 
> what shows up there.
> 
> This does require Outlook to be installed on the PC that PHP is running 
> on, as that's how COM works. I never messed around with remote COM calls, 
> but I'm sure there's some way to do that.
> 
> If someone wants to try this code and see if there are other issues 
> besides the missing braces. I don't see anything obviously wrong with it 
> (besides maybe some sloppy programming on my part :). I'll see about 
> checking it when I get home tonight if I have time.
> 
> <?php
> $comobjOutlook = new COM("outlook.application") or die("Outlook not 
> loaded");
> 
> //$comobjOutlook -> Activate;
> 
> # This is your mailbox name just like it appears in your Folders view.
> # It might be 'Inbox' or something else.
> $targetmailboxname = "Mailbox - Baiocchi, Justin (CSIRO IT, Armidale)";
> 
> 
> # This is the folder you're looking for. In this case, I'm looking for 
> calendar
> # items, but you can look for any folder. You need to add another loop to 
> look
> # for subfolders. Although there's probably a better way, that's how I did 
> it when
> # I needed to get to Personal Folders/Inbox/Subfoldername
> $targetfoldername = "Calendar";
> 
> $objNamespace = $comobjOutlook->GetNameSpace("MAPI");
> $objFolders = $objNamespace->Folders();
> $mailboxcount = $objFolders -> Count();
> 
> 
> $foundmailbox = FALSE;
> for ($i=1; $i<=$mailboxcount; $i++) 
> $folderitem = $objFolders ->Item($i);
> if ($folderitem -> Name == $targetmailboxname) 
> $objMailbox = $folderitem;
> $foundmailbox = TRUE;
> 
> $foundcal = FALSE;
> if ($foundmailbox) 
> $objFolders = $objMailbox->Folders();
> $foldercount = $objFolders -> Count();
> 
> for ($i=1; $i<=$foldercount; $i++) 
> $folderitem = $objFolders -> Item($i);
> if ($folderitem -> Name == $targetfoldername) 
> $objCalendar = $folderitem;
> $foundcal = TRUE;
> 
> 
> 
> 
> 
> if ($foundcal) 
> $objItems = $objCalendar->Items();
> $itemcount = $objItems->Count();
> 
> for ($i=1; $i<=$itemcount; $i++) 
> $apptitem = $objItems -> Item($i);
> $apptstart = $apptitem -> Start();
> $apptend = $apptitem -> End();
> $apptallday = $apptitem -> AllDayEvent();
> $apptrecur = $apptitem -> IsRecurring();
> $apptsubject = $apptitem -> Subject();
> $apptlocation = $apptitem -> Location();
> 
> $secondsadj = $apptstart - 14400;
> $startadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970));
> 
> $secondsadj = $apptend - 14400;
> $endadj = date("m/d/Y H:i:s", mktime(0,0,$secondsadj,1,1,1970));
> 
> if($apptallday) $allday = "All Day"; else $allday = "";
> if($apptrecur) $recurring = "Recurring"; else $recurring = "";
> 
> echo "$apptsubject @ $apptlocation\r\nFrom: $startadj To: $endadj\r\n";
> 
> if ($allday <> "" OR $recurring <> "") echo "$allday $recurring\r\n";
> echo "\r\n\r\n";
> 
>  else 
> die ("Did not find calendar folder");
> 
>  else 
> die("Did not find target mailbox: $targetmailboxname");
> 
> 
> ?>
> 
> 
> 
> = = = Original message = = =
> 
> Hello all,
> 
> I am trying to publish an Outlook Calendar on a web page using PHP and
> COM. I have managed to track down on the net some examples of how it
> could be done. The most promising is the code below. However, all that
> happens is that outlook.exe is started on the server, but nothing is
> displayed on the web page and it just times-out.
> 
> I am running PHP 4.0.18 on Windows 2003 server and I have Outlook 2002
> installed on the server.
> Does anybody know why it doesn't work?
> 
> Thanks
> Justin


___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux