## FusionCharts PHP Class API > List of Functions

Here is a list of the functions in FusionCharts_Gen PHP Class. These functions create the required XML output based on the parameters passed through and make the chart rendering process easier for you. FusionCharts PHP class functions can be divided under various heads, as shown in the list below:

- Constructor
- Public Functions
  - General Functions
  - Array Handling Functions
  - Database Handling Functions
  - Chart rendering and XML generating Functions

Constructor
FusionCharts(string $chartType, string $width, string $height[,string $chartID,boolean $isTransparent ])
Instantiates chart object. Use the constructor to specify chart type and chart width & chart height.
Parameters:

- $chartType = type of the chart. To get the list of supported Chart Types please click here.
- $width = numeric value for chart width in pixels.
- $height = numeric value for chart height in pixels.
- $chartID = (Optional) unique ID for the chart. Required, to use chart's JavaScript APIs.

  NOTE: If no ID is specified by the developer, PHP automatically generates an ID using Session and assigns it to the chart. This ID is generated using a counter variable kept in session. Hence, one every page refresh new ID would be assigned to chart. One should provide and ID, if one wishes to interact with the chart later using JavaScript APIs like setDataXML(), setDataURL(), print(), saveAsImage() etc.

- $isTransparent = (Optional)(true/false) prepares the chart for transparent background if set to true. To set the chart transparent, one need to set bgApha chart parameter using setChartParam() or setChartParams() function.

Example: $FC= new FusionCharts("Column3D, "350", "250");
Public Functions
General Functions
setParamDelimiter(string $strDelm)
Sets the delimiter for lists of chart attributes which are passed to function like setChartParams, addDataset, addChartData etc. Delimiter is the character used to separate consecutive attributes for various chart elements. Default delimiter is semicolon (;).
Parameter:

- $strDelm = delimiter character. The character becomes reserved and can not be as normal character in chart attributes.

Note: You can use this functions any number of times in a single code block for a chart. By defining a new delimiter one can use the earlier delimiter as a regular character in chart attributes.
Example : $FC->setParamDelimiter("|"); $FC->setChartParams("caption=Monthly Report|subCaption=June;July;September|bgColor=efefdd"); $FC->setParamDelimiter("\n"); $FC->addDataset("June", "color=009900\nshowValues=0);

setSWFPath(string $SWFPath)
Sets the path of the chart SWF file. Users may need to specify the relative file path of the SWF files while using them in different applications. This function allows users to set the path. The default path for SWF file is set to the application folder itself.
Parameter:

- $SWFPath = relative SWF file path of FusionCharts SWF file in string format

Example : $FC->setSWFPath("FusionCharts/");
setChartParam(string $paramName, string $paramValue)
Sets a single chart attribute at a time. Attributes listed under <graph> element section in Chart XML Reference can be used here.
Parameters:

- $paramName = name of the chart attribute.
- $paramValue = value of the chart attribute.

Example: $FC->setChartParam("caption","Monthly Sales");
setChartParams(string $strParams)
Sets multiple chart attributes in one function call. Multiple attributes from <graph> element section of Chart XML Reference can be passed through this function.
Parameter:

- $strParams = delimiter separated list of attributes in string format. Note that the attribute values must not be enclosed in single or double quotes.

Example: $FC->setChartParams("caption=Factory Sales;subCaption=Year 2007;bgColor=ffccff");
setCategoriesParams(string $catParams)
Sets category set's attributes in Multi-Series charts. Attributes mentioned under the <categories> element in Chart XML Reference section can be set through this function.
Parameter:

- $catParams = delimiter separated list of chart attributes for chart categories. Note that the attribute values must not be enclosed in single or double quotes.

Example: $FC->setCategoriesParams("font=Arial;fontColor=ff0000");
setInitParam( string $tname, string $tvalue)
Sets the chart’s initializing parameters and adds extra chart settings as well.
Parameters:

- $tname = name of the initializing parameters. Please refer to the table below for the list of parameter names.
- $tvalue = sets values for the initializing parameters. It can take any one of the several parameters listed below: Please refer to the table below for the possible values for each parameter name.

  Parameter Name | Range/Value | Description
  bgcolor | Hex Coded Color | Background color of the chart. If background color of the chart is not defined in XML, this property would be used to set the chart’s background. E.g. #ff0000
  scaleMode | noscale or exactfit or noborder or showall | Scaling option of the chart. It can take any value out of the four: "noscale", "exactfit", "noborder" and "showall".
  lang |  | Preferred language. e.g. EN

addCategory(string $label[, string $catParams])
Adds a single category information at a time.
Parameters:

- $label = category name
- $catParams = (Optional) attributes of the category in string format. Attributes mentioned under the <category> element in Chart XML Reference section can be set through this. Note that the attribute values must not be enclosed in single or double quotes.

Example: $FC->addCategory("Week 1"); $FC->addCategory("Week 2 ", "hoverText=Sales data for Second Week;ShowName=0");
addDataset(string $seriesName[, string $datasetParams])
Adds a dataset to multi-series chart.
Parameters:

- $seriesName = series name of the dataset.
- $datasetParams = (Optional) delimiter separated attribute list of the series in string format. Attributes listed under <dataset> elements in the Chart XML Reference section can be passed through this. Note that the attribute values must not be enclosed in single or double quotes.

Note: Remember to add data values pertaining to the dataset immediately after using this function.
Example: $FC->addDataset("This Month"); $FC->addChartData("40800"); $FC->addChartData("31400"); $FC->addDataset("Previous Month");
$FC->addChartData("38300");
Data values '40800' and '31400' will be assigned to the dataset "This Month" and the data value '38300' will be assigned to the dataset "Previous Month".
addChartData(string $value[, string $params])
Provides chart data. For single series charts $params must be passed having atleast an attrubite "name=foo". For multiseries, stacked and combination charts $params is optional.
Parameters:

- $value = data value to be plotted over the chart.
- $params = (Optional) list of dataplot attributes. Attributes listed under <set> elements in the Chart XML Reference section can be passed through this. Note that the attribute values must not be enclosed in single or double quotes.

Example: For Single-Series Charts : $FC->addChartData("40800","name="Week 1"); $FC->addChartData("31400","name="Week 2;color=ff0000;link=http://www.FusionCharts.com"); For Multi-Series Charts:

$FC->addChartData("40800");
$FC->addChartData("31400","link=http://www.FusionCharts.com;");

addTrendLine(string $tlineParams)
Adds a trendline in the chart. All attributes for the <line> element of <trendlines> element like startValue, endValue, color, displayValue, isTrendZone, showOnTop etc. are passed here.
Parameter:

- $tlineParams = delimiter separated attributes for trend line. Attributes mentioned under the <line> element for <trendlines> element in Chart XML Reference section can be set through this. Note that the attribute values must not be enclosed in single or double quotes.

Example : $FC->addTrendLine("startValue=89.5;endValue=98;color=FF0000;displayvalue=Roll. Avg.; thickness=2;alpha=100;isTrendZone=0;showOnTop=1");
addColors(string $colorList)
Adds and apply user-defined colors to chart dataplots. Although FusionCharts v3 has a set of colors by default, this function allows the developers to provide own set of colors.
Parameter:

- $colorList = delimiter separated list of hexcoded colors. Note that the hexcoded colors should not be prefixed by #.

Example:
// the hex-colour code series passed is a de-limiter separated string $FC->addColors("FF0000;00FF00;0000FF;FFFF00;00FFFF"); // ';' is the default de-limiter //the default de-limiter can be changed by the following method $FC->setParamDelimiter("|");

$FC->addColors("FF0000|00FF00|0000FF|FFFF00|00FFFF");

setChartMessage(string $msgParam)
Sets various chart messages. For more on chart messages please see the page: Changing chart messages
Parameter:

- $msgParam = chart messages attributes separated by delimiters. Messages attributes specified in Changing chart messages are used here. Note that the attribute values must not be enclosed in single or double quotes.

Example : $FC->setChartMessage("ChartNoDataText=Chart Data not provided;PBarLoadingText=Please Wait.The chart is loading...");
Array Handling
addChartDataFromArray(array $dataArray[, array $dataCatArray])
Adds chart data from array(s). We can use this function for both Single Series and Multi Series charts; however, the structure of the $dataArray should be different for single and multi-series charts. Also, the second parameter $dataCatArray is required only for Multi Series or Combination Charts.
Parameters:
$dataArray (required for both Single Series and Multi Series/Stacked/Combination charts) For Single Series charts a 2 dimnestional array (n rows x 2 columns):

1. First Column stores Category Names.
2. Second Column stores data values.

For MultiSeries/Stacked/Combination charts:

1. First Column stores Dataset Names.
2. Second Column stores Dataset Attributes (compulsory for combination chart)
3. Rest of the columns store data values for the dataset

$dataCatArray (required only for Multi Series/Stacked/Combination charts)

1. Category names stored in a single dimensional array.

Example: Single Series Chart: $arrData[0][0]="Week 1"; $arrData[1][0]="Week 2"; $arrData[2][0]="Week 3";
$arrData[3][0]="Week 4";
$arrData[0][1]="100";
$arrData[1][1]="200";
$arrData[2][1]="300";
$arrData[3][1]="400";
$FC->addChartDataFromArray($arrData);

Multi-Series/Stacked/Combination Charts: //Store Name of Products $arrCatNames[0] = "Week 1"; $arrCatNames[1] = "Week 2"; $arrCatNames[2] = "Week 3";
$arrCatNames[3] = "Week 4";
//Store sales data for current month
$arrData[0][0] = "Current Month";
$arrData[0][1] = "color=ff0000";
// Dataset Parameters
$arrData[0][2] = 567500;
$arrData[0][3] = 815300;
$arrData[0][4] = 556800;
$arrData[0][5] = 734500;
//Store sales data for previous month
$arrData[1][0] = "Previous Month";
$arrData[1][1] = "color=0000ff";
// Dataset Parameter
$arrData[1][2] = 547300;
$arrData[1][3] = 584500;
$arrData[1][4] = 754000;
$arrData[1][5] = 456300;
$FC->addChartDataFromArray($arrData,$arrCatNames);
For detailed examples on FusionCharts PHP Class' Array Handling function please go through the section Using with PHP Class
Database Handling
setDataBaseType(string $dbType)
Sets the type of the Database. It takes either of the two values – “mysql” or ”oracle” The default value is “mysql”.
Parameter:

- $dbType = type of the database.

Example:
$FC->setDataBaseType("oracle"); or $FC->setDataBaseType("mysql");
addCategoryFromDatabase(resource $query_result, string $categoryColumn)
Creates the set of chart Category Names from database for database driven multi-series charts.
Parameters:

- $query_result = the SQL query result as resource.
- $categoryColumn = database field name for category names.

Example: $strQuery = "select distinct weekNames from Sales"; $result = mysql_query($strQuery); $FC->addCategoryFromDatabase($result, "weekNames");
For detailed examples on FusionCharts PHP Class' Database Handling functions please go through the section Using with PHP Class
addDatasetsFromDatabase(resource $query_result, string $ctrlField, string $valueField[, array $datasetParamArray, string $link])
Adds datasets with data values for each dataset (only for multiseries/stacked/combination charts) from database.
Parameters:

- $query_result = SQL query result to fetch dataset from database.
- $ctrlField = Control Break field. The database field that contains all series names in sorted order; the function uses this parameter to pick series names for multiple datasets.
- $valueField = delimiter separated attribute list for data-set values.
- $datasetParamArray = (Optional) an array that stores delimiter separated list of attributes for each dataset.
- $link = (Optional) Adds hyperlink feature to dataplots. This adds the link attribute to dataplots or <set> elements.It can be a simple URL say, "http://www.google.com" or another page say, "Drill/Detailed.php" etc. For details on drill down and creating links using FusionCharts, please go through the section Drill Down Charts.
  This parameter has a link place holder format that helps creating dynamic links. Anything placed between ## and ##
  (for example, . FactoryID in "Detailed.php?FId=##FactoryID##") will be regarded as a field/column name in the SQL query result. Value from that column will dynamically replcae that place holder. Hence, for each dataplot in the chart the link values will be different.
  For detailed exmaple on this feature, please refer to Creating Drilldown charts in "Using With PHP Class" section.

Note: The control Break field must be sorted.
Example: $strQuery = "select weekNames,revenue from Sales order by weekNames"; $result = mysql_query($strQuery); $FC->addDatasetsFromDatabase($result, "weekNames", "revenue;quantity");
For detailed examples on FusionCharts PHP Class' Database Handling functions please go through the section Using with PHP Class
addDataFromDatabase(resource $query_result, string $db_field_ChartData[, string $db_field_CategoryNames, string $strParam, string $link])
Adds chart data and category names from database. This function is specially designed for single-series charts, but can be used to provide chart values for a single dataset in multi-series/stacked/combination charts.
Parameters:

- $query_result = SQL query result to fetch dataset from database.
- $db_field_ChartData = database field that contains data values.
- $db_field_CategoryNames = database field that contains category names.(Optional for multi-serise/stacked/combination charts)
- $strParam = (Optional) delimiter separated attribute list for dataplots.
- $link = (Optional) Adds hyperlink feature to dataplots. This adds the link attribute to dataplots or <set> elements.It can be a simple URL say, "http://www.google.com" or another page say, "Drill/Detailed.php" etc. For details on drill down and creating links using FusionCharts, please go through the section Drill Down Charts.
  This parameter has a link place holder format that helps creating dynamic links. Anything placed between ## and ##
  (for example, . FactoryID in "Detailed.php?FId=##FactoryID##") will be regarded as a field/column name in the SQL query result. Value from that column will dynamically replcae that place holder. Hence, for each dataplot in the chart the link values will be different.
  For detailed exmaple on this feature, please refer to Creating Drilldown charts in "Using With PHP Class" section.

Example: $strQuery = "select weekNames,revenue from Sales order by weekNames where CMonth=1"; $result = mysql_query($strQuery); $FC->addDataFromDatabase($result, "revenue", weekNames");
For detailed examples on FusionCharts PHP Class' Database Handling functions please go through the section Using with PHP Class
Chart rendering and XML generating functions
string getXML()
This function is used to get the full XML required for chart generation. FusionCharts PHP Class functions build specific parts of chart XML. getXML() function assembles those parts and returns the full XML. Users can use this XML to render charts in dataURL method.
Return Type:

- Chart XML in string.

Example: $xml=$FC->getXML();
Chart rendering and XML generating functions
encodeXMLChars(boolean $isEnabled)
This function is used along with the dataXML(default) method. In case the user needs to build the XML separately (dataURL method), one needs to set the parameter to false.
Parameter:

- $isEnabled = (true/false) the chart is generated with the dataXML method by default, or if set to true. It is set to false if generation needs to be done in dataURL method.

Example: $xml=$FC->encodeXMLChars(true);
renderChart(boolean $renderAsHTML, boolean $display)
This function builds the full XML required for chart generation and also renders chart based on chart type, width and height as specified. This function does not accept any parameter, nor does it return any value.
Parameter:

- $renderAsHTML = (true/false) renders the chart using HTML embedding method if set to true. Note that this method does not make use of FusionCharts.JS. This HTML embedding method is helpful where JavaScript is disabled or in AJAX Portback.
- $display = (true/false) renders the chart in the webpage if it is true. The equivalent code for rendering the chart is returned as a string if set to false. This feature is helpful when you want to use this class in another framework.

Example:
// The retuned string conforms with the JavaScript embeddeding method using FusionCharts.js $FC->renderChart(); //render as HTML $FC->renderChart(true); //returns the chart code as a string

$returnValue = $FC->renderChart(true, false);

renderChartFromExtXML(string $dataXML)
Renders chart from XML which has not been created in the program. After creating chart object and setting relative SWF file path, this function can be used where the full XML is passed through.
Parameter:

- $dataXML = full XML for chart rendering in string format

Example: $xml="<graph><set value='100' name='Product A' /><set value='120' name='Product B' /></graph>"; $FC=new FusionCharts("Column3D","300","250"); $FC->renderChartFromExtXML($xml);