/**
  * Does EVERYTHING
  * @todo cleanup interface
  */
 public function index()
 {
     $formData = array();
     if ($this->hasRequestParameter('classUri')) {
         if (trim($this->getRequestParameter('classUri')) != '') {
             $formData['class'] = new core_kernel_classes_Class(tao_helpers_Uri::decode($this->getRequestParameter('classUri')));
         }
     }
     if ($this->hasRequestParameter('uri') && $this->hasRequestParameter('classUri')) {
         if (trim($this->getRequestParameter('uri')) != '') {
             $formData['instance'] = new core_kernel_classes_Resource(tao_helpers_Uri::decode($this->getRequestParameter('uri')));
         }
     }
     $formData['id'] = $this->getRequestParameter('id');
     $handlers = $this->getAvailableExportHandlers();
     $exporter = $this->getCurrentExporter();
     $selectedResource = isset($formData['instance']) ? $formData['instance'] : $formData['class'];
     $formFactory = new tao_actions_form_Export($handlers, $exporter->getExportForm($selectedResource), $formData);
     $myForm = $formFactory->getForm();
     if (!is_null($exporter)) {
         $myForm->setValues(array('exportHandler' => get_class($exporter)));
     }
     $this->setData('myForm', $myForm->render());
     if ($this->hasRequestParameter('exportChooser_sent') && $this->getRequestParameter('exportChooser_sent') == 1) {
         //use method GET to allow direct file download (not ajax compatible)
         $exportData = $_GET;
         if (isset($exportData['instances'])) {
             $instanceCount = count($exportData['instances']);
             for ($i = 0; $i < $instanceCount; $i++) {
                 $exportData['instances'][$i] = tao_helpers_Uri::decode($exportData['instances'][$i]);
             }
         } elseif (isset($exportData['exportInstance'])) {
             $exportData['exportInstance'] = tao_helpers_Uri::decode($exportData['exportInstance']);
         }
         $file = $exporter->export($exportData, tao_helpers_Export::getExportPath());
         if (!is_null($file) && file_exists($file)) {
             return tao_helpers_Export::outputFile(tao_helpers_Export::getRelativPath($file));
         }
     }
     $context = Context::getInstance();
     $this->setData('export_extension', $context->getExtensionName());
     $this->setData('export_module', $context->getModuleName());
     $this->setData('export_action', $context->getActionName());
     $this->setData('formTitle', __('Export '));
     $this->setView('form/export.tpl', 'tao');
 }
 /**
  * Output file with direct download with tao_helpers_export
  * Filename is extracted from form data
  *
  * @param File $file
  * @throws \common_Exception
  */
 protected function output(File $file)
 {
     $tmpFile = \tao_helpers_Export::getExportPath() . DIRECTORY_SEPARATOR . $file->getBasename();
     if (($resource = fopen($tmpFile, 'w')) === false) {
         throw new \common_Exception('Unable to write "' . $file->getPrefix() . '" into tmp folder("' . $tmpFile . '").');
     }
     stream_copy_to_stream($file->readStream(), $resource);
     fclose($resource);
     $filename = $this->hasRequestParameter('filename') ? $this->getRequestParameter('filename') . '.csv' : '';
     \tao_helpers_Export::outputFile($file->getBasename(), $filename);
     return;
 }
Example #3
0
 /**
  * @param $file
  */
 protected function sendFileToClient($file, $test)
 {
     setcookie("fileDownload", "true", 0, "/");
     tao_helpers_Export::outputFile(tao_helpers_Export::getRelativPath($file));
     return;
 }