示例#1
0
 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);
 }
示例#2
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));
     }
 }
示例#3
0
 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;
     }
 }