Versionsabfrage

Antworten

Versionsabfrage

Hallo,

wir versuchen momentan ein script zu schreiben, um CAO mit Magento zu verbinden.

Leider scheitert es an der Versionsabfrage im CAO.
Kann man das abschalten?
Oder wie kann man die Scriptversion so abfragen, dass sie wie gefordert, an die URL angehängt wird?
Code sieht so aus:

Code: Alles auswählen

$version_nr    = '1.56';
$version_datum = '2009.08.26';

if ($_GET['action'] == 'read_version') {
	$schema = '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
	       '<STATUS>' . "\n" .
             '<STATUS_DATA>' . "\n" .
             '<ACTION>' . $_GET['action'] . '</ACTION>' . "\n" .
             '<CODE>' . '111' . '</CODE>' . "\n" .
             '<SCRIPT_VER>' . $version_nr . '</SCRIPT_VER>' . "\n" .
             '<SCRIPT_DATE>' . $version_datum . '</SCRIPT_DATE>' . "\n" .
             '</STATUS_DATA>' . "\n" .
             '</STATUS>' . "\n\n";
           echo $schema;
}
Oder habe ich einen Denkfehler?

Re: Versionsabfrage

Moin,

ich vermute einen Denkfehler.

In der aufzurufenden Datei, bei XTC ist es z.B. die cao_xtc.php, fragt man per switch den Request für action ab und reagiert auf den Wert version . Beispiel:

Code: Alles auswählen

switch ($_GET['action'])  {
   case 'version':        // Ausgabe Scriptversion
      SendXMLHeader ();
      SendScriptVersion ();
      exit;
... 
Du fragst nach 'read_version', welches es nicht gibt. Es muss nach 'version' gefragt werden. Bei jeglicher Komunikation mit dem Script wird immer erst action=version gesendet und die Rückgabe der Parameter ausgewertet. Abstellen kann man das nicht, da damit die bestimmte Prüfungen in CAO verbunden sind.

Im übrigen würde ich dringend raten, nicht die alten Sourcen anzupassen, sondern das ganze in Klassen zu packen und wenn möglich Teile des Shop einzubauen und auf die entsprechenden Klassen zurück greifen, z.B. für die Datenbankabfragen. Das macht das Ganze wesentlich einfacher. Beispielauszug aus COI:

Code: Alles auswählen

   /**
    * XML-Ausgabestring
    * @access protected
    * @var string $_sXMLout
    */
   protected $_sXMLout;

   /**
    * XML-Header für Ausgabe vorbereiten
    * @param string $sXMLHeader - Erstes TAG für die Ausgabe
    */
   public function XMLHeader($sXMLheader)
   {
      if($this->_iUtfMode) $sXMLEncode="<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n".$sXMLheader."\n";
      else $sXMLEncode="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"."\n".$sXMLheader."\n";
      header("Last-Modified: ". gmdate ("D, d M Y H:i:s"). " GMT");
      header("Cache-Control: no-cache, must-revalidate");
      header("Pragma: no-cache");
      header("Content-type: text/xml");
      echo $sXMLEncode;
   }

   /**
    * XML-Tags ausgeben
    * @access protected
    * @param string $sXMLstring - XLM-Tags
    */
   protected function _doXMLout($sXMLstring)
   {
      echo $sXMLstring;
   }

   /**
    * Scriptversion ausgeben
    * wird bei jeder Aktion von CAO abgefragt
    * param array $action
    */
   public function GetScript($action)
   {
      if($this->xmlversion)
      {
         $this->XMLHeader('<STATUS>');
         $this->_sXMLout=("<STATUS_DATA>\n".
                          "<ACTION>".$action."</ACTION>\n".
                          "<CODE>111</CODE>\n".
                          "<SCRIPT_VER>".Config::$sCOVERSION."</SCRIPT_VER>\n".
                          "<SCRIPT_DATE>".Config::$sSCRIPTDATE."</SCRIPT_DATE>\n".
                          "</STATUS_DATA></STATUS>\n\n");
         $this->_doXMLout($this->_sXMLout);
      }
   }
bis dahin
Thoren
______________________________________________
Alles wird gut....:)
______________________________________________
Shopsysteme
Oxid CE mit COI-Modul

Re: Versionsabfrage

Hallo Thoren,

danke für den code, leider ist ein Fehler drinnen:

protected $_sXMLout; erzeugt ==>syntax error: unexpected T_Puplic

Re: Versionsabfrage

Moin,

das ist nur ein Teil des Ganzen und kann nicht 1 zu 1 übernommen werden. Ist nur als Beispiel gedacht. Da mußt du dein Hirn schon selbst anstrengen und deine Klassen aufbauen ;)
bis dahin
Thoren
______________________________________________
Alles wird gut....:)
______________________________________________
Shopsysteme
Oxid CE mit COI-Modul

Re: Versionsabfrage

redone hat geschrieben:Moin,

das ist nur ein Teil des Ganzen und kann nicht 1 zu 1 übernommen werden. Ist nur als Beispiel gedacht. Da mußt du dein Hirn schon selbst anstrengen und deine Klassen aufbauen ;)
wär ja auch zu einfach gewesen... ;)
Leider übersteigt das meine php Kenntisse.