Scripte für den Google Kalender. (Ehemals Termine eintragen)

Hallo Manni,

ich habe das Schreiben in den Google-Kalender ausprobiert. Bei mir funktioniert noch alles.
Kannst Du mir genau sagen was Du alles gemacht hast?

Mit Screenshot der Ordner?

Kannst Du dein Script, was Du nutzt mal einstellen?

Hallo Martin,

Die ZIP-Datei aus dem 1. Post entpackt und in den Script Ordner kopiert (Ordnerstrukt siehe Bild).

Skript:

<?
/*=============================================================
skrGoogleKalenderSchreiben - Martin Heinzel - 24.11.2011
Version: 1.0

Beschreibung:
Mit diesem Script werden Termine in den Google Kalender geschrieben.

Wiederholungen:

0  =  keine
1  =  wöchentlich
2  =  14 Tage
3  =  monatlich
4  =  jährlich

Änderungen
----------

30.11.2011 von Version 0.1 -> 1.0

Beschreibung:

Erste gültige Version des Scripts.
Es wurde noch die Auswahl des Kalenders in dem der Termin eingetragen werden soll
eingefügt. Bleibt der "calendar_user" leer wird der Standard-Kalender genommen.

================================================================*/

// Variablen Deklaration --------------------------------------

//Bitte anpassen
//---------------------------------------------------------------
//Email Adresse von Google-Mail
$user                             = GetValue(43289 /*[ System\Daten\Benutzer\Google]*/);
//Passwort der Email Adresse
$pass                             = GetValue(17996 /*[ System\Daten\Passwörter\Google]*/);
//Kalender-ID
$calendar_user                = GetValue(43953 /*[ System\Daten\GoogleKalender\MC_IPS]*/);
//---------------------------------------------------------------

// ID's
//--------------
// Kontrolle der ID's
$id_StartDay              =     @IPS_GetObjectIDByName("StartDay", $IPS_SELF);
// Wenn es diese Variable noch nicht gibt dann wird das Script
// zum ersten mal aufgerufen und muss eingerichtet werden.
if($id_StartDay === false)
{

    // erstellen der Integer-Variablen
    //=================================
    //erzeugen und initialisieren der Variablen "Recur"
   $id_Recur             =  IPS_CreateVariable(1);
    IPS_SetName($id_Recur, "Recur");
    IPS_SetParent($id_Recur, $IPS_SELF);
    SetValueInteger($id_Recur, 0);

    // erstellen der String-Variablen
    //=================================
    //erzeugen und initialisieren der Variablen "StartDay"
   $id_StartDay             =  IPS_CreateVariable(3);
    IPS_SetName($id_StartDay, "StartDay");
    IPS_SetParent($id_StartDay, $IPS_SELF);
    SetValueString($id_StartDay, date("d", time()+86400));

    //erzeugen und initialisieren der Variablen "StartMonth"
   $id_StartMonth             =  IPS_CreateVariable(3);
    IPS_SetName($id_StartMonth, "StartMonth");
    IPS_SetParent($id_StartMonth, $IPS_SELF);
    SetValueString($id_StartMonth, date("m", time()+86400));

    //erzeugen und initialisieren der Variablen "StartYear"
   $id_StartYear           =  IPS_CreateVariable(3);
    IPS_SetName($id_StartYear, "StartYear");
    IPS_SetParent($id_StartYear, $IPS_SELF);
    SetValueString($id_StartYear, date("Y", time()+86400));

    //erzeugen und initialisieren der Variablen "StartHour"
   $id_StartHour           =  IPS_CreateVariable(3);
    IPS_SetName($id_StartHour, "StartHour");
    IPS_SetParent($id_StartHour, $IPS_SELF);
    SetValueString($id_StartHour, date("H", time()+86400));

    //erzeugen und initialisieren der Variablen "StartMinute"
   $id_StartMinute         =  IPS_CreateVariable(3);
    IPS_SetName($id_StartMinute, "StartMinute");
    IPS_SetParent($id_StartMinute, $IPS_SELF);
    SetValueString($id_StartMinute, date("i", time()+86400));

    //erzeugen und initialisieren der Variablen "EndDay"
   $id_EndDay             =  IPS_CreateVariable(3);
    IPS_SetName($id_EndDay, "EndDay");
    IPS_SetParent($id_EndDay, $IPS_SELF);
    SetValueString($id_EndDay, date("d", time()+90000));

    //erzeugen und initialisieren der Variablen "EndMonth"
   $id_EndMonth             =  IPS_CreateVariable(3);
    IPS_SetName($id_EndMonth, "EndMonth");
    IPS_SetParent($id_EndMonth, $IPS_SELF);
    SetValueString($id_EndMonth, date("m", time()+90000));

    //erzeugen und initialisieren der Variablen "EndYear"
   $id_EndYear           =  IPS_CreateVariable(3);
    IPS_SetName($id_EndYear, "EndYear");
    IPS_SetParent($id_EndYear, $IPS_SELF);
    SetValueString($id_EndYear, date("Y", time()+90000));

    //erzeugen und initialisieren der Variablen "EndHour"
   $id_EndHour           =  IPS_CreateVariable(3);
    IPS_SetName($id_EndHour, "EndHour");
    IPS_SetParent($id_EndHour, $IPS_SELF);
    SetValueString($id_EndHour, date("H", time()+90000));

    //erzeugen und initialisieren der Variablen "EndMinute"
   $id_EndMinute         =  IPS_CreateVariable(3);
    IPS_SetName($id_EndMinute, "EndMinute");
    IPS_SetParent($id_EndMinute, $IPS_SELF);
    SetValueString($id_EndMinute, date("i", time()+90000));

    //erzeugen und initialisieren der Variablen "Titel"
   $id_Titel                =  IPS_CreateVariable(3);
    IPS_SetName($id_Titel, "Titel");
    IPS_SetParent($id_Titel, $IPS_SELF);
    SetValueString($id_Titel, "Das ist ein Termin von IPS");

    //erzeugen und initialisieren der Variablen "Description"
   $id_Description          =  IPS_CreateVariable(3);
    IPS_SetName($id_Description, "Description");
    IPS_SetParent($id_Description, $IPS_SELF);
    SetValueString($id_Description, "Beschreibung für den IPS Testtermin");

    //erzeugen und initialisieren der Variablen "Where"
   $id_Where                =  IPS_CreateVariable(3);
    IPS_SetName($id_Where, "Where");
    IPS_SetParent($id_Where, $IPS_SELF);
    SetValueString($id_Where, "Hocheichberg");

    // erstellen der Bool-Variablen
    //=================================
    //erzeugen und initialisieren der Variablen "AllDay"
   $id_AllDay               =  IPS_CreateVariable(0);
    IPS_SetName($id_AllDay, "AllDay");
    IPS_SetParent($id_AllDay, $IPS_SELF);
    SetValueBoolean($id_AllDay, False);

    // nach dem Anlegen das Script beenden
    return;
}
else
{

   $id_StartMonth       =  IPS_GetObjectIDByName("StartMonth", $IPS_SELF);
   $id_StartYear        =  IPS_GetObjectIDByName("StartYear", $IPS_SELF);
   $id_StartHour        =  IPS_GetObjectIDByName("StartHour", $IPS_SELF);
   $id_StartMinute      =  IPS_GetObjectIDByName("StartMinute", $IPS_SELF);
   $id_EndDay           =  IPS_GetObjectIDByName("EndDay", $IPS_SELF);
   $id_EndMonth         =  IPS_GetObjectIDByName("EndMonth", $IPS_SELF);
   $id_EndYear          =  IPS_GetObjectIDByName("EndYear", $IPS_SELF);
   $id_EndHour          =  IPS_GetObjectIDByName("EndHour", $IPS_SELF);
   $id_EndMinute        =  IPS_GetObjectIDByName("EndMinute", $IPS_SELF);
   $id_Recur            =  IPS_GetObjectIDByName("Recur", $IPS_SELF);
   $id_Titel            =  IPS_GetObjectIDByName("Titel", $IPS_SELF);
   $id_Description      =  IPS_GetObjectIDByName("Description", $IPS_SELF);
   $id_Where            =  IPS_GetObjectIDByName("Where", $IPS_SELF);
   $id_AllDay           =  IPS_GetObjectIDByName("AllDay", $IPS_SELF);

}


// Variablen
//--------------
$StartDay         =  GetValueString($id_StartDay);
if(strlen($StartDay)< 2)
{
   $StartDay      =  "0".$StartDay;
   SetValueString($id_StartDay, $StartDay);
}

$StartMonth       =  GetValueString($id_StartMonth);
if(strlen($StartMonth)< 2)
{
   $StartMonth      =  "0".$StartMonth;
   SetValueString($id_StartMonth, $StartMonth);
}

$StartYear        =  GetValueString($id_StartYear);
if(strlen($StartYear)< 4)
{
   $StartYear      =  "20".$StartYear;
   SetValueString($id_StartYear, $StartYear);
}

$StartHour        =  GetValueString($id_StartHour);
if(strlen($StartHour)< 2)
{
   $StartHour      =  "0".$StartHour;
   SetValueString($id_StartHour, $StartHour);
}

$StartMinute      =  GetValueString($id_StartMinute);
if(strlen($StartMinute)< 2)
{
   $StartMinute      =  "0".$StartMinute;
   SetValueString($id_StartMinute, $StartMinute);
}

$EndDay           =  GetValueString($id_EndDay);
if(strlen($EndDay)< 2)
{
   $EndDay      =  "0".$EndDay;
   SetValueString($id_EndDay, $EndDay);
}

$EndMonth         =  GetValueString($id_EndMonth);
if(strlen($EndMonth)< 2)
{
   $EndMonth      =  "0".$EndMonth;
   SetValueString($id_EndMonth, $EndMonth);
}

$EndYear          =  GetValueString($id_EndYear);
if(strlen($EndYear)< 4)
{
   $EndYear      =  "20".$EndYear;
   SetValueString($id_EndYear, $EndYear);
}

$EndHour          =  GetValueString($id_EndHour);
if(strlen($EndHour)< 2)
{
   $EndHour      =  "0".$EndHour;
   SetValueString($id_EndHour, $EndHour);
}

$EndMinute        =  GetValueString($id_EndMinute);
if(strlen($EndMinute)< 2)
{
   $EndMinute      =  "0".$EndMinute;
   SetValueString($id_EndMinute, $EndMinute);
}

$Recur            =  GetValueInteger($id_Recur);
$Titel            =  GetValueString($id_Titel);
$Description      =  GetValueString($id_Description);
$Where            =  GetValueString($id_Where);
$AllDay           =  GetValueBoolean($id_AllDay);
$recurData         =    '';

//-------------------------------------------------------------

//benötigte Funktionen/Klassen
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');

//--------------------------- Main ----------------------------

// Die Verbindung zum Kalender aufbauen
try
{
    $client = getClientLoginHttpClient($user, $pass);
}
catch(Exception $e)
{
    // prevent Google username and password from being displayed
    // if a problem occurs
    echo "Could not connect to calendar.";
    die();
}

// Event schreiben
//================

//Auswahl der Wiederholung
Switch($Recur)
{
    // keine
    case 0:

        //Erzeugen von Start und Endzeiten
       $startDate     =  $StartYear.'-'.$StartMonth.'-'.$StartDay;
        $endDate           =  $EndYear.'-'.$EndMonth.'-'.$EndDay;
      $tzOffset      =  '+01';

        if($AllDay)
        {
            $startTime     =  '';
          $endTime       =  '';
        }
        else
        {
          $startTime     =  $StartHour.':'.$StartMinute;
          $endTime       =  $EndHour.':'.$EndMinute;
        }

        createEvent ($client, $calendar_user, $Titel, $Description, $Where, $startDate, $startTime, $endDate, $endTime, $tzOffset);
        break;

    // wöchentlich
    case 1:

        if($AllDay)
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."
";
        }
        else
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."T".$StartHour.$StartMinute."00"."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."T".$EndHour.$EndMinute."00"."
";
        }

        //wöchentlicher Termin
        $recurData                = $recurData."RRULE:FREQ=WEEKLY;INTERVAL=1"."
";


        createRecurringEvent ($client, $calendar_user, $Titel, $Description, $Where, $recurData);
        break;

    // 14 Tage
    case 2:

        if($AllDay)
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."
";
        }
        else
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."T".$StartHour.$StartMinute."00"."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."T".$EndHour.$EndMinute."00"."
";
        }

        //14 Tage Termin
        $recurData                = $recurData."RRULE:FREQ=WEEKLY;INTERVAL=2"."
";

        createRecurringEvent ($client, $calendar_user, $Titel, $Description, $Where, $recurData);
        break;

    // monatlich
    case 3:

        if($AllDay)
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."
";
        }
        else
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."T".$StartHour.$StartMinute."00"."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."T".$EndHour.$EndMinute."00"."
";
        }

        //monatlicher Termin
        $recurData                = $recurData."RRULE:FREQ=MONTHLY;INTERVAL=1"."
";

        createRecurringEvent ($client, $calendar_user, $Titel, $Description, $Where, $recurData);
        break;

    // jährlich
    case 4:

        if($AllDay)
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."
";
        }
        else
        {
            //Startzeit
            $recurData                = $recurData."DTSTART;TZID=Europe/Berlin:".$StartYear.$StartMonth.$StartDay."T".$StartHour.$StartMinute."00"."
";
            //Endzeit
            $recurData                = $recurData."DTEND;TZID=Europe/Berlin:".$EndYear.$EndMonth.$EndDay."T".$EndHour.$EndMinute."00"."
";
        }

        //jährlich Termin
        $recurData                = $recurData."RRULE:FREQ=YEARLY;INTERVAL=1"."
";

        createRecurringEvent ($client, $calendar_user, $Titel, $Description, $Where, $recurData);
}

//------------------------- Main ENDE --------------------------

//------------------------ Funktionen -------------------------

/**
 * Returns a HTTP client object with the appropriate headers for communicating
 * with Google using the ClientLogin credentials supplied.
 *
 * @param  string $user The username, in e-mail address format, to authenticate
 * @param  string $pass The password for the user specified
 * @return Zend_Http_Client
 */
function getClientLoginHttpClient($user, $pass)
{
  $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;

  $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
  return $client;
}

/**
 * Creates an event on the authenticated user's default calendar with the
 * specified event details.
 *
 * @param  Zend_Http_Client $client    The authenticated client object
 * @param  string           $title     The event title
 * @param  string           $desc      The detailed description of the event
 * @param  string           $where
 * @param  string           $startDate The start date of the event in YYYY-MM-DD format
 * @param  string           $startTime The start time of the event in HH:MM 24hr format
 * @param  string           $endDate   The end date of the event in YYYY-MM-DD format
 * @param  string           $endTime   The end time of the event in HH:MM 24hr format
 * @param  string           $tzOffset  The offset from GMT/UTC in [+-]DD format (eg -08)
 * @return string The ID URL for the event.
 */
function createEvent ($client, $calendar_user, $title, $desc, $where,
                             $startDate, $startTime,
                             $endDate, $endTime, $tzOffset)
{
  $gc = new Zend_Gdata_Calendar($client);
  $newEntry = $gc->newEventEntry();
  $newEntry->title = $gc->newTitle(trim($title));
  $newEntry->where  = array($gc->newWhere($where));

  $newEntry->content = $gc->newContent($desc);
  $newEntry->content->type = 'text';

  $when = $gc->newWhen();
  if($startTime == '' and $endTime == '')
  {
      $when->startTime = $startDate;
      $when->endTime = $endDate;
  }
  else
  {
        $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
     $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
  }

  $newEntry->when = array($when);

  if($calendar_user == '')
  {
      $createdEntry = $gc->insertEvent($newEntry);
  }
  else
  {
      $createdEntry = $gc->insertEvent($newEntry, "http://www.google.com/calendar/feeds/$calendar_user/private/full");
  }

  return $createdEntry->id->text;
}

/**
 * Creates a recurring event on the authenticated user's default calendar with
 * the specified event details.
 *
 * @param  Zend_Http_Client $client    The authenticated client object
 * @param  string           $title     The event title
 * @param  string           $desc      The detailed description of the event
 * @param  string           $where
 * @param  string           $recurData The iCalendar recurring event syntax (RFC2445)
 * @return void
 */
function createRecurringEvent ($client, $calendar_user, $title, $desc, $where, $recurData)
{
  $gc = new Zend_Gdata_Calendar($client);
  $newEntry = $gc->newEventEntry();
  $newEntry->title = $gc->newTitle(trim($title));
  $newEntry->where = array($gc->newWhere($where));

  $newEntry->content = $gc->newContent($desc);
  $newEntry->content->type = 'text';
  $newEntry->recurrence = $gc->newRecurrence($recurData);

  if($calendar_user == '')
  {
      $gc->post($newEntry->saveXML());
  }
  else
  {
      $gc->post($newEntry->saveXML(), "http://www.google.com/calendar/feeds/$calendar_user/private/full");
  }

}

//--------------------- Funktionen ENDE ------------------------

?>

Skript ausführen um die Variablen anzulegen.
Hier musste ich das mktime in time abändern, dann hat das Anlegen der Variablen funktioniert.
Habe auch die Skripte für Monats und Jahreskalender probiert mit der gleichen Fehlermeldung.

Das einzige was mir jetzt noch aufgefallen ist, ist dass die php_openssl.php zwar im ext Ordner liegt, aber nicht in der php.ini steht.

IPS Version 3.1#3316

Ich und PHP :confused:

Gruß
Manfred

Damit sie geladen wird solltest Du das hier tun:

"- Den IP-Symcon Dienst stoppen.

  • Den IP-Symcon Dienst starten."

Wahrscheinlich musst Du auch noch die dll’s austauschen im IP-Symcon Ordner

DLL.zip (575 KB)

Gruß
Bruno

Das ist ja mal ne Aussage.

Ich habe dir die aktuelle php_openssl.dll nochmal rangehängt.

  • Datei entpacken
  • in den ext Ordner von IPS
  • IPS-Dienst stoppen
  • IPS-Dienst starten

EDIT ----

Bruno war schneller!!

Danke Bruno.

php_openssl.zip (35.4 KB)

N’Abend,

Mhhhhm … wenn’s nur so einfach wäre :slight_smile:
Das Thema mit der openssl …

Dienst stoppen, Datei kopieren, in php.ini eintragen Dienst starten -> Eintrag „futsch“ :smiley:

Hab mal einen Scrennshot gemacht von vorher und nachher :confused:

Mein Name ist Hase und ich verstehe nur Bahnhof :smiley:

Im Log steht: >Erweiterung php_openssl.dll nicht geladen. Nicht nutzbar in Verbindung mit OpenSSL 1.0.1
Das habe ich hier doch schon wo gelesen … muss mal suchen.
Aber irgendwie verstehe ich den Zusammenhang mit der openssl und der Fehlermeldung das die Exception nicht gefunden werden kann nicht.

Gruß
Manfred

Wenn Du nicht tust, was ich schreibe, kann ich nicht helfen :rolleyes:

DLL ausgetauscht ??

Ja, alter Österreicher ist net so schnell :smiley:

Habe ich jetzt gerade gemacht!
Jetzt ist die Fehlermeldung im Log weg und die openssl wird geladen.

Wenn ich jetzt das Skript ausführe, dann kommt zwar keine Fehlermeldung, aber das Skript bleibt trotzdem als fehlerhaft markiert.

Habe jetzt mal alle 3 Skript’s ausprobiert.
Das zum Schreiben, den Monatskalender und den Jahreskalender.

Bei allen 3 der gleiche Effekt, keine Fehlermeldung aber Skript bleibt fehlerhaft.

IPS-Kiste neu starten, vielleicht liegt’s ja am „Fensta“ :rolleyes:

Gruß
Manfred

Gibt es ne Fehlermeldung in der Log-Datei ?

24.01.2014 23:05:38.101 | 38458 | DEBUG | ExecuteThreadID #6 | Skriptausführung: 38458.ips.php ~ Absender: RunScript

Das steht im Log, wenn ich das Skript ausführe.

Gruß
Manfred

Kann es sein das es nicht der standard Google-Kalender ist?

---- Schablone per Tapatalk ----

So, jetzt bin ich wieder am Anfang :smiley:

Jetzt wird das Skript wieder mit Fehlermeldung ausgeführt.
Habe beim Benutzer das @ durch %40 ersetzt.

Und jetzt bin ich wieder da, wo meine Frage begann …

Kannst du noch meine Frage beantworten!

---- Schablone per Tapatalk ----

Wenn es nicht der Standakalender ist, musst du das Script aus Post #12 nehmen.

---- Schablone per Tapatalk ----

Ja, dass ist richtig, es ist nicht der Standard Kalender.

Habe ich auch schon drüber nachgedacht und folgendes versucht:
Beim Jahreskalender:

// Variablen Deklaration --------------------------------------
// Bitte anpassen
// Variablen
//--------------
$user                             = GetValue(43289 /*[ System\Daten\Benutzer\Google]*/);
$pass                             = GetValue(17996 /*[ System\Daten\Passwörter\Google]*/);
$calender_id                      = GetValue(20461 /*[ System\Daten\GoogleKalender\ID_IPS]*/);
$magicCookie                   	 = GetValue(43953 /*[ System\Daten\GoogleKalender\MC_IPS]*/);
$arrEvent_Time             		 = array();
$arrEvent_Titel           			 = array();
//-------------------------------------------------------------

und dann:


// Übergeben der Daten der Suchanfrage
$query->setUser($calender_id);
$query->setVisibility('private-'.$magicCookie);
$query->setSingleEvents(true);
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setSortOrder('ascending');
$query->setMaxResults(30);
$query->setStartMin($start_date);
$query->setStartMax($end_date);

Aber das geht auch nicht.
Besser is, ich bleibe beim ein und ausschalten von Aktoren :smiley:

Gruß
Manfred

Auch mit dem Skript aus Post 12 bleibt die Fehlermeldung.

Was sagt diese Fehlermeldung aus?
Ich habe ja den kompletten Zend-Ordner kopiert.
Wo soll den diese Class Zend_Exception sein?

In dem angeführten Skript ist in Zeile 36 nur ein {}

Gruß
Manfred

Richtige Kalender-ID eingetragen?

---- Schablone per Tapatalk ----

User, Passwort und KalenderID sind korrekt

Bleibt jetzt nur die Frage:

Was sagt diese Fehlermeldung aus?
Ich habe ja den kompletten Zend-Ordner kopiert.
Wo soll den diese Class Zend_Exception sein?

In dem angeführten Skript ist in Zeile 36 nur ein {}

Gruß
Manfred

Wir müssen uns beeilen. Dschungelkamp isr gleich vorbei!

---- Schablone per Tapatalk ----

Nee. Mein Kopf ist gerade leer. Ich werde versuchen den Fehler nachzustelken. Morgen.

---- Schablone per Tapatalk ----

Na, nach einer Runde Dschungelcamp wäre ich auch reif für’s Bett :wink:

Irgendwann wird alles gut :rolleyes:

PS.: Mit dem Standardkalender funktioniert’s auch nicht.

Es hackt wieder an der gleichen Stelle.
Kann es sein, dass in dem Zend-Ordner etwas fehlt?
Oder verträgt sich das mit IPS 3.1 Beta nicht?

Dann mal Gute Nacht.

Schönen Dank für die Hilfe,
Gruß
Manfred