MultiGraph mit GoogleChart V1.01 läuft nicht mehr

Hi,

meine Graphendarstellung mit „MultiGraph mit GoogleChart V1.01“ läuft seit dem Update auf die aktuelle 2.5#-beta nicht mehr. Im Objektbaum wird ein Ausrufezeichen vorm „GoogleChart_V1_02.ips.php“ -script angezeigt, ohne das ich den Fehler im Script lokalisieren kann. Noch jemand mit ähnlichen Problemen bzw. ner Lösung?

hardlog

Das Problem liegt an der Übergabe der Daten mit IPS_RunSkriptEx.

Wie kann jetzt ein Array im Array übergeben?:confused:

hmm,

hat da schon jemand ne Idee?

Hallo,
modifiziere vorübergehend den „GoogleChart“-Script

<?
header('content-type: image/png');
require_once ("GOOGLEGRAPH_FUNCTION.PHP");

//Arrays extrahieren und anlegen + + + + + + + + + + + + + + + + + + + + + + + +

foreach($_IPS as $key => $val)
  {
   if (strpos($key,"[") >= 1)
      {
       $ArrayName    = substr($key,0,strpos($key,"["));
       $ArrayIndex   = substr($key,strpos($key,"[")+1,strpos($key,"]")-strpos($key,"[")-1);
       ${$ArrayName}[$ArrayIndex] = $val;
      }
  }
// + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +


if (@$Vari == "")
	exit ("Keine Variablen vorhanden");

@PARESY,
kannst Du das in den „__autoinclude.inc.php“ aufnehmen ?? :loveips:

tgusi74

Tausend Dank, läuft!!! :slight_smile:

Du kannst einfach in der __autoload.php deine gewünschte Funktionen eintragen oder includen ;).

if(file_exists("GlobalDefines.php"))
	require_once("GlobalDefines.php");

Damit binde ich mein auto_append_file wieder ein :).

Hallo Ralf,
danke für den Hinweis

Ich wollte nur, dass es im Standard mitaufgenommen wird, da es ja in 2.4 möglich war „Arrays im Array“ beim Befehl „IPS_RunScriptEx“ zu übergeben und in der IPS2.5 Beta #2120 nicht mehr

(aus meiner Sicht, ein nicht abgefange (vergessene) Möglichkeit in der „__autoinclude.inc.php“ in der Kategorie „RunScript“)

… ob es aufgenommen wird oder nicht, obliegt alleine den Entwicklern

tgusi74

Hmm. Ich weiß nicht warum das in der 2.4 funktioniert hat. Aber wenn es nicht mehr geht, dass liegt es daran, dass PHP 5.4 restriktiver ist. IPS 2.4 hatte nie Array im Array erlaubt. Das was im Google MultiGraph genutzt wird, ist also im besten Falle ein PHP Trick.

paresy

Laut PHP: Arrays - Manual

sollte es aber funktionieren oder verstehe ich das falsch?:rolleyes:

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

IP-Symcon nimmt das aber so nicht an. Die IPS_*Ex Funktionen können das nicht.

In dem Google Skript wird das per Trick so gemacht:
$A[‚A[0]‘] = ‚X‘;

Soweit ich es aber sehe, ist das keine korrekt PHP Syntax. Es erschließt sich mir grad auch nicht warum das in der 2.4 so funktioniert haben soll.

paresy

Gibt es den eine andere Möglichkeit.

Ein Array im Array zu übergeben.:o