SOAP + Ajax in eigenen Webapplikationen in PHP

Muss der Community mal was zurück geben…

Folgendes Beispiel zeigt wie man in PHP (z.b. Joomla) eine Webseite bauen kann, die sich alle 10sek Daten von der IPS holt und in der Seite updated ohne die ganze Seite neu laden zu müssen. Das Script ist einfach zu erweitern.
Lasst eurer Kreativität freien Lauf :smiley:

<?php
/*
KOOLPHPSUITE - INSTALL INSTRUCTION  
download: http://www.koolphp.net/?mod=products&act=view&id=1

1. Unzip KoolPHPSuite.zip file.
2. Copy KoolPHPSuite folder inside unzipped directory to your localhost folder.
3. Start browsing the suite in web browser with url "http://localhost/KoolPHPSuite/index.php".

*/
    // ----------------------------------------------------
    //Step 1: Register koolajax component to your page
    // ----------------------------------------------------
    require "koolajax/koolajax.php";

    // ----------------------------------------------------
    //Step 2: Serverseitige Zugriffsfunktionen
    // ----------------------------------------------------
    function getIPSKernelVersion()
    {
        // Serverseitiger Code SOAP Call to IPS
        $IIPSSimpleKernel = new SoapClient("http://server:3773/wsdl/IIPSSimpleKernel");
        $res= $IIPSSimpleKernel->GetKernelVersion();
        return $res;
    }
    // ----------------------------------------------------
    //Step3: Enable the functions for ajax call.
    //For security reason, you need to specify which functions can be called.
    // ----------------------------------------------------
    $koolajax->enableFunction("getIPSKernelVersion");  
?>

<html>
    <head>
        <title></title>
        <!----------------------------------------------------
        //Step 4: Register koolajax Komponente 
        // ---------------------------------------------------->
        <?=$koolajax->Render();?>
    </head>
    <body>
        <!----------------------------------------------------
        //Step 5: Serverseitige Paneldefinition mit Update Mechanismus
        // ---------------------------------------------------->
        ... Hier irgendwelches HTML ....
        <?php echo KoolScripting::Start();?>
          <updatepanel id="GetKernelVersion">
            <content>
              <?php
                // Serverseitiger Code der beim Update ausgeführt wird
                $erg = getIPSKernelVersion();
                echo "KernelVersion=".$erg;
              ?>
            </content>
          </updatepanel>
        <?php echo KoolScripting::End();?>
        ... Hier irgendwelches HTML ....
      
        <!----------------------------------------------------
        //Step 6: Hier noch Clientseitig für den Update sorgen ...
        // ---------------------------------------------------->
         <script type = "text/javascript">
          function Update()
          {
            GetKernelVersion.update();
            setTimeout("Update()",10000);        // Ajax Call alle 10 Sekundem
          }
          Update();
        </script>    
        
    </body>
</html>

Falls es nicht läuft …

  1. Probiers mit dem Firefox und Firebug Plugin - ist cool zu debuggen!
  2. Php sollte laufen !! -> ausprobieren
  3. Stelle sicher,dass das KoolPHP packet vorhanden ist siehe Header des Scripts
    Ruf eine Testseite im KoolPHP packet auf.
  4. Serveradresse anpassen !!! in http://server:3773/wsdl/IIPSSimpleKernel
  5. ruf mal http://server:3773/wsdl/ auf mit angepasstem „server“ zb. http://localhost:3773/wsdl
    Sollte eine Liste der IPS SOAP Calls liefern.
    5a. Stelle sicher das zwischen dem Server des PHP Scripts und dem IPS Soap Server (port 3773) keine Firewall rumpfuscht.

Da manche hier Probleme haben noch 1, 2, Tipps.
Das Ganze geht nur mit IP-Symcon 2.0!!! sonst habt ihr kein Soap.

Bitte die „Falls es nicht läuft …“ Sektion beachten. Und falls ihr Fragen habt und sie sendet. BITTE auch schreiben was passiert oder nicht passiert.
Ein „geht nicht, bitte helfen“ hilft mir nicht gerade bei der Antwort :smiley:

Immer noch haben manche Probleme also noch folgende Ergänzung:

Bei mir läuft der KoolAjax und das CMS System (Joomla) auf einem Apache Server unter Windows XP. KoolAjax läuft bei mir nicht auf dem IP-Symcon Webserver! vieleicht ist das ja der Grund für manches Problem …
Hope it helps!

Hi,

Ajax hat unter der Version1 schon nicht funktioniert. Scripte die unter Apache gelaufen sind, wollten unter dem IPS WebServer absolut nicht laufen. In der Version2 ist es leider das gleiche. Was funktioniert ist Sajax, hierbei gibt es aber das Problem, das sich der Browser mit der Zeit immer mehr Speicher einverleibt und der Seitenaufbau dann auch langsamer wird.

Gruß
Thomas