Was bedeutet dieser Fehler: "Cannot redeclare class......" (Modul: Open Flash Chart)
Eingetragen von fryswe (63)
am 19.04.2009 - 18:04 Uhr in
am 19.04.2009 - 18:04 Uhr in
ich versuche gerade ein open flash chart in eine drupal node zu bekommen (drupal 5). aber irgendwas läuft da schief. außerhalb von drupal funktioniert das teil wunderbar. nur integriert in die entsprechende node-xxx.tpl.php kommt folgender fehler... irgendwelche ideen was der zu bedeuten hat?
Fatal error: Cannot redeclare class line_hollow in \xxx\sites\all\modules\open_flash_chart_api\ofc-library\open-flash-chart.php on line 1376
- Anmelden oder Registrieren um Kommentare zu schreiben
Durch das Einbinden, wird
am 19.04.2009 - 18:55 Uhr
Durch das Einbinden, wird diese classe >1 (mehr als einmal) eingebunden. Dh. entweder kannst du schon ohne einbinden der Datei die Funktionalität verwenden oder du musst ein include_once ('/pfad/zur/datei'); machen.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
In der node.tpl.php wird
am 19.04.2009 - 19:10 Uhr
In der node.tpl.php wird natürlich jede Funktion die deklariert wird, mehrfach deklariert, da die nodes von Drupal ja in einer Schleife aufgerufen werden. Also: keine Funktionen in node Templates deklarieren, sondern diese nur aufrufen. Ein guter Platz für Funktionen ist übrigens ein eigenes Modul für Funktionen. Die braucht man noch nicht mal inkludieren. Das macht Drupal.
Jede Funktion von Drupal oder von Modulen lässt sich problemlos überall aufrufen. In Templates ebenso wie in eigenen Modulen, selbst wenn die mit '_' als "private" gekennzeichnet sind. Ist ja nicht wie in OOP-Sprachen wirklich "private".
Nebenbei: ich denke Google kennt 'fryswe' schon.
vg
--
md - DrupalCenter.de
mdwp* :: Drupal Consulting
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
OT: "private" ist kein
am 19.04.2009 - 20:04 Uhr
OT:
"private" ist kein Indikator aller OO-Sprachen. OO-Urvater Smalltalk kommt ebenso ohne aus wie dessen geistiges Kind Objective C. Keiner würde aber erstnhaft aud die Idee kommen diesen beiden Sprachen den OO-Status abzuerkennen, zumal sie womöglich gar mehr OO sind als die üblichen Verdächtigen.
--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!
webseiter.de
Suchmaschinenoptimierung (SEO) & Drupal
danke für die zahlreichen
am 19.04.2009 - 21:37 Uhr
danke für die zahlreichen antworten. google kenne ich selbstverständlich, konnte da aber keine konkrete lösung für mein problem finden.
es geht mir hier ja um das modul "open flash chart" => http://drupal.org/project/open_flash_chart_api
um den chart in meine node-xxx.tpl.php einzubinden verwende ich folgenden code:
<?php
include_once( '/sites/all/modules/open_flash_chart_api/ofc-library/open-flash-chart.php' );
$g = new graph();
$g->bg = '#E4F0DB';
$g->pie(60,'#FFFFFF','{display:none;}',false,1);
$g->pie_values(
array(40,40,10,10),
array('A','B','C','D') );
$g->pie_slice_colours( array('#abbd15','#e5eac0','#4a7e00','#799908') );
$g->set_tool_tip( '#val#% #x_label#' );
$g->bg_colour = '#FFFFFF';
$g->set_width( 150 );
$g->set_height( 150 );
$g->set_output_type('js');
echo $g->render();
?>
dabei tritt oben genannter fehler auf.
leider is die modul-dokumentation nicht wirklich hilfreich, ob ich den chart wirklich korrekt einbinde => http://drupal.org/node/193294
außerhalb von drupal funktioniert es auf jeden fall wunderbar...
habe es auch schon wie hier beschrieben probiert: http://drupal.org/node/180157
das sieht dann bei mir wie folgt aus:
<?php
require_once './includes/open-flash-chart.php';
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$g = new graph();
$g->bg = '#E4F0DB';
$g->pie(60,'#FFFFFF','{display:none;}',false,1);
$g->pie_values(
array(40,40,10,10),
array('A','B','C','D') );
$g->pie_slice_colours( array('#abbd15','#e5eac0','#4a7e00','#799908') );
$g->set_tool_tip( '#val#% #x_label#' );
$g->bg_colour = '#FFFFFF';
$g->set_width( 150 );
$g->set_height( 150 );
$g->set_output_type('js');
echo $g->render();
?>
da kommt aber der gleiche fehler, sprich:
Fatal error: Cannot redeclare class line_hollow in xxx\includes\open-flash-chart.php on line 1376
wenn ich das include bzw. im zweiten beispiel require weglasse, bekomme ich übrigens folgenden fehler:
Fatal error: Class 'graph' not found in xxx\themes\xxx\node-xxx.tpl.php on line 100
falls jemand weiß, wie ich bei diesem modul den chart so einbinden kann, dass er funktioniert, dann wäre ich für jede hilfe dankbar! ich verzweifel hier leider schon langsam :(
hm, ich glaube ich habe
am 19.04.2009 - 21:51 Uhr
hm, ich glaube ich habe verstanden und den code jetzt in anlehnung an das beispiel in der dokumentation wie folgt runtergekürzt:
<?php
$g = new open_flash_chart_api();
$g->pie(60,'#FFFFFF','{display:none;}',false,1);
$g->pie_values(array(40,40,10,10),array('A','B','C','D') );
$g->pie_slice_colours( array('#abbd15','#e5eac0','#4a7e00','#799908') );
$g->set_tool_tip( '#val#% #x_label#' );
$g->bg_colour = '#FFFFFF';
$g->bg = '#E4F0DB';
$g->set_width( 150 );
$g->set_height( 150 );
$g->set_output_type('js');
echo $g->render();
?>
Allerdings bleibt die Ausgabe leer/blank.
Mit Hilfe von Firebug kann ich im Quelltext aber folgenden Code identifizieren:
<div id="ibc5115641db056f664a3e97bde511e59"/>
<script type="text/javascript">
1
2var so = new SWFObject("/xxx/sites/all/modules/open_flash_chart_api/open-flash-chart.swf", "ofc", "150", "150", "9", "#FFFFFF");
3so.addVariable("variables","true");
4so.addVariable("x_axis_steps","1");
5so.addVariable("y_ticks","5,10,5");
6so.addVariable("line","3,#87421F");
7so.addVariable("y_min","0");
8so.addVariable("y_max","20");
9so.addVariable("bg_colour","#FFFFFF");
10so.addVariable("pie","60,#FFFFFF,{display:none;},1,,1");
11so.addVariable("values","40,40,10,10");
12so.addVariable("pie_labels","A,B,C,D");
13so.addVariable("colours","#abbd15,#e5eac0,#4a7e00,#799908");
14so.addVariable("links","");
15so.addVariable("tool_tip","%23val%23%25+%23x_label%23");
16so.write("ibc5115641db056f664a3e97bde511e59");
17
</script>
er wandelt die sache also korrekt um, der flash-chart wird allerdings (noch) nicht ausgegeben...die seite bleibt wie gesagt leer :-/
hm ok, nun gehts! tausend
am 19.04.2009 - 22:23 Uhr
hm ok, nun gehts!
tausend dank noch mal für die anregungen :)
und an was lag es nun
am 28.10.2010 - 11:06 Uhr
und an was lag es nun ?!?!?!?!