Использование Fusion Chart в PHP и рендеринг в Smarty Templating Engine

StackOverflow https://stackoverflow.com/questions/813009

Вопрос

Моя проблема не позволяет отобразить диаграмму в файле .tpl.Следующий код представляет собой пример, взятый из проверки документа Fusion Chart для ссылка

<?php
   include("../Includes/FusionCharts.php");

   //Create an XML data document in a string variable
   $strXML  = "";
   $strXML .= "<graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units'
   decimalPrecision='0' formatNumberScale='0'>";
   $strXML .= "<set name='Jan' value='462' color='AFD8F8' />";
   $strXML .= "<set name='Feb' value='857' color='F6BD0F' />";
   $strXML .= "<set name='Mar' value='671' color='8BBA00' />";
   $strXML .= "<set name='Apr' value='494' color='FF8E46' />";
   $strXML .= "<set name='May' value='761' color='008E8E' />";
   $strXML .= "<set name='Jun' value='960' color='D64646' />";
   $strXML .= "<set name='Jul' value='629' color='8E468E' />";
   $strXML .= "<set name='Aug' value='622' color='588526' />";
   $strXML .= "<set name='Sep' value='376' color='B3AA00' />";
   $strXML .= "<set name='Oct' value='494' color='008ED6' />";
   $strXML .= "<set name='Nov' value='761' color='9D080D' />";
   $strXML .= "<set name='Dec' value='960' color='A186BE' />";
   $strXML .= "</graph>";

   //Create the chart - Column 3D Chart with data from strXML variable using dataXML method
   echo renderChartHTML("../../FusionCharts/FCF_Column3D.swf", "", $strXML, "myNext", 600, 300);
?>


Это работает, если я визуализирую в обычном .php, но как передать значение renderChartHTML в Smarty tpl, чтобы оно отображалось в <div>{$chartdata}</div> вот так. Было бы здорово, если бы какой-нибудь пример отображал диаграмму Fusion в smarty tpl.

На данный момент я могу получить график, например, присвоив $strXML переменной smarty и передав значения непосредственно для параметров внедрения.Кто-нибудь предложит лучший способ сделать это?

В PHP:

$smarty->assign('strXML', $strXML);

В .tpl:

<embed src="FCF_MSLine.swf" flashVars="&dataXML={$strXML}&chartWidth=900&chartHeight=600" quality="high" width="900" height="600" name="testgraph" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
Это было полезно?

Решение

$output = renderChartHTML("../../FusionCharts/FCF_Column3D.swf", "", $strXML, "myNext", 600, 300);
$smarty->assign('chartdata', $output);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top