public function test_transform() { $options = array(); $options['trans'] = 'name=strtoupper(name)'; $exp = new ExportToCsvUtf8(); ob_start(); $exp->export('Ages', $options); $text = ob_get_contents(); $this->assertTrue(strlen($text) > 20); $this->assertTrue(strpos($text, 'msimpson') > 0); $this->assertTrue(strpos($text, 'B1') > 0); $this->assertTrue(strpos($text, 'P2') > 0); }
public function export($formName, $options = null) { $this->setOptions($options); // Security Check if (!$this->isAuthorized()) { $this->assertSecurityErrorMessage(); return; } // Headers $this->echoHeaders('Content-Type: text/html; charset=UTF-8'); if (!CFDBCheckZendFramework::checkIncludeZend()) { return; } Zend_Loader::loadClass('Zend_Gdata'); Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); //Zend_Loader::loadClass('Zend_Gdata_Spreadsheets'); Zend_Loader::loadClass('Zend_Gdata_App_AuthException'); Zend_Loader::loadClass('Zend_Http_Client'); Zend_Loader::loadClass('Zend_Gdata_Docs'); $guser = $options['guser']; $gpwd = $options['gpwd']; try { $client = Zend_Gdata_ClientLogin::getHttpClient($guser, $gpwd, Zend_Gdata_Docs::AUTH_SERVICE_NAME); //Zend_Gdata_Spreadsheets::AUTH_SERVICE_NAME } catch (Zend_Gdata_App_AuthException $ae) { CFDBDie::wp_die("<p>Login failed for: '{$guser}' </p><p>Error: " . $ae->getMessage() . '</p>', __('Login Failed', 'contact-form-7-to-database-extension'), array('response' => 200, 'back_link' => true)); } try { // Generate CSV file contents into buffer $exporter = new ExportToCsvUtf8(); $exporter->setOptions($options); $exporter->setCommonOptions(); $exporter->setUseBom(false); ob_start(); $exporter->echoCsv($formName); $csvFileContents = ob_get_contents(); ob_end_clean(); // Put the contents in a tmp file because Google upload API only reads from a file $tmpfname = tempnam(sys_get_temp_dir(), "{$formName}.csv"); $handle = fopen($tmpfname, 'w'); fwrite($handle, $csvFileContents); fclose($handle); // Upload the tmp file to Google Docs $docs = new Zend_Gdata_Docs($client); $newDocumentEntry = $docs->uploadFile($tmpfname, $formName, 'text/csv'); unlink($tmpfname); // delete tmp file // Get the URL of the new Google doc $alternateLink = ''; foreach ($newDocumentEntry->link as $link) { if ($link->getRel() === 'alternate') { $alternateLink = $link->getHref(); break; } } //header("Location: $alternateLink"); //$title = $newDocumentEntry->title; $title = __('New Google Spreadsheet', 'contact-form-7-to-database-extension'); $output = utf8_encode("{$title}: <a target=\"_blank\" href=\"{$alternateLink}\">") . $formName . utf8_encode('</a>'); CFDBDie::wp_die($output, $title, array('response' => 200, 'back_link' => true)); } catch (Exception $ex) { CFDBDie::wp_die($ex->getMessage() . '<pre>' . $ex->getTraceAsString() . '</pre>', __('Error', 'contact-form-7-to-database-extension'), array('back_link' => true)); } }
static function export($formName, $encoding, $options) { switch ($encoding) { case 'HTML': require_once 'ExportToHtmlTable.php'; $exporter = new ExportToHtmlTable(); $exporter->export($formName, $options); break; case 'HTMLBOM': // IQY callback require_once 'ExportToHtmlTable.php'; $exporter = new ExportToHtmlTable(); $exporter->setUseBom(true); $exporter->export($formName, $options); break; case 'DT': require_once 'ExportToHtmlTable.php'; if (!is_array($options)) { $options = array(); } $options['useDT'] = true; if (!isset($options['printScripts'])) { $options['printScripts'] = true; } if (!isset($options['printStyles'])) { $options['printStyles'] = 'true'; } $exporter = new ExportToHtmlTable(); $exporter->export($formName, $options); break; case 'HTMLTemplate': require_once 'ExportToHtmlTemplate.php'; $exporter = new ExportToHtmlTemplate(); $exporter->export($formName, $options); break; case 'IQY': require_once 'ExportToIqy.php'; $exporter = new ExportToIqy(); $exporter->export($formName, $options); break; case 'CSVUTF8BOM': $options['unbuffered'] = 'true'; require_once 'ExportToCsvUtf8.php'; $exporter = new ExportToCsvUtf8(); $exporter->setUseBom(true); $exporter->export($formName, $options); break; case 'TSVUTF16LEBOM': $options['unbuffered'] = 'true'; require_once 'ExportToCsvUtf16le.php'; $exporter = new ExportToCsvUtf16le(); $exporter->export($formName, $options); break; case 'GLD': require_once 'ExportToGoogleLiveData.php'; $exporter = new ExportToGoogleLiveData(); $exporter->export($formName, $options); break; case 'GSS': $options['unbuffered'] = 'true'; require_once 'ExportToGoogleSS.php'; $exporter = new ExportToGoogleSS(); $exporter->export($formName, $options); break; case 'JSON': require_once 'ExportToJson.php'; $exporter = new ExportToJson(); $exporter->export($formName, $options); break; case 'VALUE': require_once 'ExportToValue.php'; $exporter = new ExportToValue(); $exporter->export($formName, $options); break; case 'COUNT': require_once 'ExportToValue.php'; if (!is_array($options)) { $options = array(); } $options['function'] = 'count'; unset($options['show']); unset($options['hide']); $exporter = new ExportToValue(); $exporter->export($formName, $options); break; case 'CSVSJIS': require_once 'ExportToCsvUtf8.php'; $exporter = new ExportToCsvUtf8(); $exporter->setUseBom(false); $exporter->setUseShiftJIS(true); $exporter->export($formName, $options); break; case 'RSS': require_once 'ExportToRSS.php'; $exporter = new ExportToRSS(); $exporter->export($formName, $options); break; case 'ENTRY': require_once 'ExportEntry.php'; $exporter = new ExportEntry(); $exporter->export($formName, $options); break; case 'CSVUTF8': default: require_once 'ExportToCsvUtf8.php'; $exporter = new ExportToCsvUtf8(); $exporter->setUseBom(false); $exporter->export($formName, $options); break; } }