link_title; $extraParms['SQL2EXCEL_WB_DLCNT'] = $wbParms->count + 1; $colHeadRow=1; // Filename $fileName = trim($wbParms->filename); $fileName = writeExcel::replace_vars($fileName, $substParms, $extraParms, $cmpParms ); $fileName = trim($fileName); $fileName = str_replace('.xls','.csv',$fileName); $fileName = str_replace('.XLS','.csv',$fileName); if ( $fileName == '' || $fileName == null ) { $fileName = 'download.csv'; } // Compression? $usingCompression = false; if ( !$noComp && ($wbParms->compress_wb == 'Yes' || ($wbParms->compress_wb == 'Global' && Sql2excelParms::get($cmpParms,'compress_wb', 0) ) )) { // Load ZIP class require_once ( JPATH_SITE.DS.'components'.DS.'com_sql2excel'.DS.'helpers'.DS.'zip.lib.php'); $usingCompression = true; } // Check extension $path_info = pathinfo($fileName); if ( !isset($path_info['extension']) || ( isset($path_info['extension']) && strtolower($path_info['extension']) != 'csv' ) ) { $fileName .= '.csv'; } $extraParms['SQL2EXCEL_WB_FN'] = $fileName; ////////////////////////////////////////////////////////////////// // Use Cache? ////////////////////////////////////////////////////////////////// $cacheEnabled = Sql2excelParms::get($cmpParms,'cache_enabled', 0); $cacheDir = writeExcel::get_cache_dir($cmpParms); $cacheTime = Sql2excelParms::get($cmpParms,'cache_time', 30); $wbCache = $wbParms->cache; $usingCache = false; if ( ( $useCache && ($cacheEnabled && $wbCache == 'Global') ) || ( $useCache && $wbCache == 'Yes' ) ) { $usingCache = true; } if ( $usingCache || $usingCompression ) { // Cache or Compression if ( file_exists($cacheDir) ) { $cacheFileName = writeExcel::get_cache_filename($wbParms, $wsParms); $wbFN = $cacheDir . 'download_csv_' . $cacheFileName . '.cache'; if ( $usingCompression ) { $wbFN .= '_c'; } $cacheFN = $wbFN; if ( $silent && $usingCompression ) { // Write out original filename (.csv), will be zippped later into the cache file $wbFN = $wbParms->filename; if ( substr($wbFN,strlen($wbFN)-4,4) != '.csv' ) { $wbFN .= '.csv'; } $wbFN = $cacheDir . $wbFN; } if ( $usingCache && file_exists($wbFN) && !$silent ) { // Serve from Cache!? $fileModified = filemtime($wbFN); $age = time() - $fileModified; $minutesOld = $age / 60; if ( $cacheTime >= $minutesOld ) { // Server from cache if ( $usingCompression ) { $fsize = @filesize($wbFN); $fh = fopen($wbFN, 'rb', false); if ($fh == false) { die("Can't read cache file."); } $data = fread($fh, $fsize); fclose($fh); // Write the ZIP header writeExcel::ZipHeader(str_replace('.csv','.zip', $fileName),strlen($data)); // Output cached file echo $data; } else { $fh = fopen($wbFN, "rb"); if ($fh == false) { die("Can't read cache file."); } fpassthru($fh); } return; } } } } //////////////////////////////////////////////////////////////// // Write to file? (Cache or Compression) $fh = -1; if ( $wbFN != '-' && $wbFN != '' ) { $fh = fopen($wbFN, "w"); } // Get which Worksheet to output if ( is_array($wsParms) ) { // Get first sheet $sheetID = $wsParms[0]->ws_id; // Sheet specified through URL? if ( $sheet > 0 ) { // Yes, check that the sheet is accessible $sheetID = 0; foreach ( $wsParms as $ws ) { if ( $ws->ws_id == $sheet ) { $sheetID = $sheet; } } } if ( $sheetID > 0 ) { // OK We have a Sheet! // Get WS Object $ws = new stdClass; foreach ( $wsParms as $wsheet ) { if ( $wsheet->ws_id == $sheetID ) { $ws = $wsheet; } } $sheetName = $ws->sheetname; if ( trim($sheetName) == '' ) { $sheetName = 'Sheet 1'; } $extraParms['SQL2EXCEL_WS_SN'] = $sheetName; $extraParms['SQL2EXCEL_WS_DLCNT'] = $ws->count + 1; $query = $ws->query; $extraParms['SQL2EXCEL_WS_SQL_RAW'] = $query; // Substitute variables in SQL query? if ( Sql2excelParms::get($cmpParms,'subst_sql', '1') ) { $query = writeExcel::replace_vars($query, $substParms,0,$cmpParms); } $extraParms['SQL2EXCEL_WS_SQL'] = $query; // Forumla columns $formulas = explode(',', $ws->formulas ); // Get Database Connection $querydb = writeExcel::getDB($ws); // Run query! if ( $querydb ) { $rows = writeExcel::getResults($querydb, $query, $cmpParms, $ws->db_type); if ( is_array($rows) ) { $removeCR = Sql2excelParms::get($cmpParms,'removereturnhtm', 4); $extraParms['SQL2EXCEL_WS_ROWS'] = count($rows); writeHTM::write_string("",$fh); writeHTM::write_string("
",$fh); writeHTM::write_string("",$fh); writeHTM::write_string("",$fh); writeHTM::write_string("",$fh); writeHTM::write_string("