Bonsoir,
suite à la grande aide de ce forum sur mon probleme précédant je me permet de reposter ici.
En effet, la navigation AJAX fonctionne tres bien. Seulement maintenant j'ai d'autres soucis.
Notemment mes charts ne fonctionnent plus.
Le script que j'utilise affiche des charts.
Lorsque je taffe l'adresse complete le chart fonctionne. Lorsque je passe par la navigation ajax il ne fonctionne plus.
Je suppose qu'il y a quelque chose a modificer dans le code mais je n'en ai aucune idée.
Je ne sais pas quoi vous donner comme code donc dans le doute je vous donne tout.
Voici le FusionCharts.js
Et voila l'appelle dans le summary.tpl
Que faire pour que mes Charts s'affichent meme avec la navigation AJAX ?
Désolé de poser un probleme pareille si mal...mais je ne sais pas trop quoi faire la.
Je ne veux vraiment pas retirer la navigation AJAX.
Merci d'avance aux personnes qui se pencheront sur mon probleme !
Merci !!![/i][/i][/i][/i]
Modifié par jejemo (05 Jun 2010 - 00:57)
suite à la grande aide de ce forum sur mon probleme précédant je me permet de reposter ici.
En effet, la navigation AJAX fonctionne tres bien. Seulement maintenant j'ai d'autres soucis.
Notemment mes charts ne fonctionnent plus.
Le script que j'utilise affiche des charts.
Lorsque je taffe l'adresse complete le chart fonctionne. Lorsque je passe par la navigation ajax il ne fonctionne plus.
Je suppose qu'il y a quelque chose a modificer dans le code mais je n'en ai aucune idée.
Je ne sais pas quoi vous donner comme code donc dans le doute je vous donne tout.
Voici le FusionCharts.js
if(typeof infosoftglobal == "undefined") var infosoftglobal = new Object();
if(typeof infosoftglobal.FusionChartsUtil == "undefined") infosoftglobal.FusionChartsUtil = new Object();
infosoftglobal.FusionCharts = function(swf, id, w, h, debugMode, registerWithJS, c, scaleMode, lang){
if (!document.getElementById) { return; }
//Flag to see whether data has been set initially
this.initialDataSet = false;
//Create container objects
this.params = new Object();
this.variables = new Object();
this.attributes = new Array();
//Set attributes for the SWF
if(swf) { this.setAttribute('swf', swf); }
if(id) { this.setAttribute('id', id); }
if(w) { this.setAttribute('width', w); }
if(h) { this.setAttribute('height', h); }
//Set background color
if(c) { this.addParam('bgcolor', c); }
//Set Quality
this.addParam('quality', 'high');
//Add scripting access parameter
this.addParam('allowScriptAccess', 'always');
//Pass width and height to be appended as chartWidth and chartHeight
this.addVariable('chartWidth', w);
this.addVariable('chartHeight', h);
//Whether in debug mode
debugMode = debugMode ? debugMode : 0;
this.addVariable('debugMode', debugMode);
//Pass DOM ID to Chart
this.addVariable('DOMId', id);
//Whether to registed with JavaScript
registerWithJS = registerWithJS ? registerWithJS : 0;
this.addVariable('registerWithJS', registerWithJS);
//Scale Mode of chart
scaleMode = scaleMode ? scaleMode : 'noScale';
this.addVariable('scaleMode', scaleMode);
//Application Message Language
lang = lang ? lang : 'EN';
this.addVariable('lang', lang);
}
infosoftglobal.FusionCharts.prototype = {
setAttribute: function(name, value){
this.attributes[name] = value;
},
getAttribute: function(name){
return this.attributes[name];
},
addParam: function(name, value){
this.params[name] = value;
},
getParams: function(){
return this.params;
},
addVariable: function(name, value){
this.variables[name] = value;
},
getVariable: function(name){
return this.variables[name];
},
getVariables: function(){
return this.variables;
},
getVariablePairs: function(){
var variablePairs = new Array();
var key;
var variables = this.getVariables();
for(key in variables){
variablePairs.push(key +"="+ variables[key]);
}
return variablePairs;
},
getSWFHTML: function() {
var swfNode = "";
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) {
// netscape plugin architecture
swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" ';
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
var params = this.getParams();
for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
var pairs = this.getVariablePairs().join("&");
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
swfNode += '/>';
} else { // PC IE
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
var params = this.getParams();
for(var key in params) {
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
}
var pairs = this.getVariablePairs().join("&");
if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
swfNode += "</object>";
}
return swfNode;
},
setDataURL: function(strDataURL){
//This method sets the data URL for the chart.
//If being set initially
if (this.initialDataSet==false){
this.addVariable('dataURL',strDataURL);
//Update flag
this.initialDataSet = true;
}else{
//Else, we update the chart data using External Interface
//Get reference to chart object
var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id'));
chartObj.setDataURL(strDataURL);
}
},
setDataXML: function(strDataXML){
//If being set initially
if (this.initialDataSet==false){
//This method sets the data XML for the chart INITIALLY.
this.addVariable('dataXML',strDataXML);
//Update flag
this.initialDataSet = true;
}else{
//Else, we update the chart data using External Interface
//Get reference to chart object
var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id'));
chartObj.setDataXML(strDataXML);
}
},
render: function(elementId){
var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
n.innerHTML = this.getSWFHTML();
return true;
}
}
// ------------ Fix for Out of Memory Bug in IE in FP9 ---------------//
/* Fix for video streaming bug */
infosoftglobal.FusionChartsUtil.cleanupSWFs = function() {
if (window.opera || !document.all) return;
var objects = document.getElementsByTagName("OBJECT");
for (var i=0; i < objects.length; i++) {
objects[i].style.display = 'none';
for (var x in objects[i]) {
if (typeof objects[i][x] == 'function') {
objects[i][x] = function(){};
}
}
}
}
// Fixes bug in fp9
infosoftglobal.FusionChartsUtil.prepUnload = function() {
__flash_unloadHandler = function(){};
__flash_savedUnloadHandler = function(){};
if (typeof window.onunload == 'function') {
var oldUnload = window.onunload;
window.onunload = function() {
infosoftglobal.FusionChartsUtil.cleanupSWFs();
oldUnload();
}
} else {
window.onunload = infosoftglobal.FusionChartsUtil.cleanupSWFs;
}
}
if (typeof window.onbeforeunload == 'function') {
var oldBeforeUnload = window.onbeforeunload;
window.onbeforeunload = function() {
infosoftglobal.FusionChartsUtil.prepUnload();
oldBeforeUnload();
}
} else {
window.onbeforeunload = infosoftglobal.FusionChartsUtil.prepUnload;
}
/* Add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}
/* Function to return Flash Object from ID */
infosoftglobal.FusionChartsUtil.getChartObject = function(id)
{
if (window.document[id]) {
return window.document[id];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1) {
if (document.embeds && document.embeds[id])
return document.embeds[id];
} else {
return document.getElementById(id);
}
}
/* Aliases for easy usage */
var getChartFromId = infosoftglobal.FusionChartsUtil.getChartObject;
var FusionCharts = infosoftglobal.FusionCharts;
Et voila l'appelle dans le summary.tpl
<div id="chartdiv" align="center">
FusionCharts. </div>
<script type="text/javascript">
var chart = new FusionCharts("js/Line.swf?ChartNoDataText=Please select a record above", "ChartId", "310", "144", "0", "0");
chart.setDataXML("<chart bgSWF='charts/chart.png' canvasBorderColor='e0e0e0' lineColor='33373e' showShadow='1' shadowColor='bdbdbd' anchorBgColor='f1cc2b' caption='Your advertisement clicks' showLabels='0' numVDivLines='8' hoverCapBgColor='f7df39' decimalPrecision='2' formatNumberScale='0' showValues='0' divLineAlpha='20' alternateHGridAlpha='6'>{$myclicks}</chart>");
chart.render("chartdiv");
</script>
</div>
Que faire pour que mes Charts s'affichent meme avec la navigation AJAX ?
Désolé de poser un probleme pareille si mal...mais je ne sais pas trop quoi faire la.
Je ne veux vraiment pas retirer la navigation AJAX.
Merci d'avance aux personnes qui se pencheront sur mon probleme !
Merci !!![/i][/i][/i][/i]
Modifié par jejemo (05 Jun 2010 - 00:57)