function chart_copy in Google Chart Tools: Image Charts 5
Same name and namespace in other branches
- 6 chart.module \chart_copy()
- 7 chart.module \chart_copy()
Copies rendered chart image.
Parameters
array $chart: Chart API structure
string $name: (optional) Filename WITHOUT extension. when NULL #chart_id is used.
string $dest : (optional) A string containing the path to verify. If this value is omitted, Drupal's 'files/charts' directory will be used.
string $replace : (optional) Replace behavior when the destination file already exists.
- FILE_EXISTS_REPLACE: Replace the existing file
- FILE_EXISTS_RENAME: Appends _{incrementing number} until the filename is unique
- FILE_EXISTS_ERROR: Do nothing and return FALSE.
Return value
bool
File
- ./
chart.module, line 147 - Google Charting API. Developed by Tj Holowaychuk
Code
function chart_copy($chart, $name = NULL, $dest = 'charts', $replace = FILE_EXISTS_REPLACE) {
if (!($chart_query_string = chart_build($chart))) {
return FALSE;
}
if ($dest = file_create_path($dest)) {
if (file_check_directory($dest, FILE_CREATE_DIRECTORY)) {
// Defaults
$name = is_null($name) ? $chart['#chart_id'] : $name;
// Generate temp image
$tempname = tempnam(file_directory_temp(), 'tmp_');
$filename = file_create_path($dest) . '/' . $name . '.png';
$png = imagecreatefrompng(CHART_URI . '?' . $chart_query_string);
$fh = fopen($tempname, 'w+');
imagepng($png, $tempname);
// Copy temp image to new location
if (!file_copy($tempname, $filename, $replace)) {
_chart_error(t('Failed to copy chart image.'));
return FALSE;
}
// Remove temp image
fclose($fh);
}
}
return TRUE;
}