getParameterValue('export')) : ?> public function executeExport() { $this->getResponse()->addStylesheet('backend/stImportExportPlugin.css'); stAuthUsersListener::checkAccessCredentials($this, $this->getRequest(), $this->getModuleName()); $i18n = $this->getContext()->getI18N(); $this->processExportForwardParameters(); $this->errors = false; $this->export = false; if ($this->getRequest()->getMethod() == sfRequest::POST) { $data = $this->getRequestParameter('export'); $exportType = $data['type']; $exportProfile = isset($data['profile']) ? $data['profile'] : null; $customParameters = isset($data['custom_parameters']) ? $data['custom_parameters'] : array(); if (class_exists($exportType)) { if (!is_dir(sfConfig::get('sf_data_dir').'/export')) { mkdir(sfConfig::get('sf_data_dir').'/export', 0755); } $filename = $i18n->__('getParameterValue('export.filename', 'export') ?>').' '.date('Y-m-d').'T'.date('H-i-s'); $filepath = sfConfig::get('sf_data_dir').'/export/'.str_replace(' ', '-', $filename).'.tmp'; $exporter = new getModuleName() ?>ImportExport('export', $exportType, $filepath, $exportProfile, $filepath); $exporter->setI18nCatalogue('getModuleName() ?>ImportExport'); if ($this->hasRequestParameter('sample_file')) { $filename = $i18n->__('getParameterValue('export.filename', 'export') ?>').' - '.$i18n->__('przykladowy plik', null, 'stImportExportBackend'); stImportExportPropel::fileCleanup(); $this->setLayout(false); $response = $this->getContext()->getResponse(); $response->setContentType("application/octet-stream"); $response->setHttpHeader('Content-Disposition', 'attachment; filename="'.$filename.'.'.$exporter->class_handle->output_file_extension.'"'); return $this->renderText($exporter->sampleFile()); } $dataCount = $exporter->getDataCount(); $this->pb = new stProgressBar('getModuleName() ?>','doExport',$dataCount); $this->pb->setParam("exporter", $exportType); $this->pb->setParam("filename", $filename); $this->pb->setParam("profile", $exportProfile); $this->pb->setParam("custom_parameters", $customParameters); $exporter->setCustomParameters($customParameters); stImportExportLog::clearLogs('export'); $this->actual_step = $exporter->doProcess(0); $this->export = true; if ($dataCount==0 || $this->actual_step>=$dataCount) { $this->errors = $exporter->getImporterExporter()->getLogger()->hasLog(); $this->logFile = basename($exporter->getImporterExporter()->getLogger()->getFilename()); $link = $this->getController()->genUrl("getModuleName() ?>/exportDownload?filename=".$filename."&ext=".$exporter->class_handle->output_file_extension , true); sfLoader::loadHelpers('Partial'); $this->pb->setMsg(get_partial('export_link', array('link'=>$link))); stImportExportPropel::fileCleanup(); } } } if (!$this->export) { getParameterValue('export.show_profiles', true)): ?> $this->profiles = stImportExportPropel::getProfiles('getModuleName() ?>', 'getClassName() ?>'); $this->profiles = null; $this->export_types = $this->getExportTypes(); $this->custom_parameters = $this->getExportCustomParameters(); $this->default_export_type = 'getParameterValue('export.default', key($this->getParameterValue('exporters'))) ?>'; } $this->getBreadcrumbsBuilder()->getExportBreadcrumbs(); } public function executeDoExport() { $this->errors = false; $this->actual_step = $this->getRequestParameter('step'); $this->pb = new stProgressBar('getModuleName() ?>','doExport'); $filename = $this->pb->getParam('filename'); $filepath = sfConfig::get('sf_data_dir').'/export/'.str_replace(' ', '-', $filename).'.tmp'; $exporter = new getModuleName() ?>ImportExport('export', $this->pb->getParam('exporter'), $filepath, $this->pb->getParam('profile')); $exporter->setI18nCatalogue('getModuleName() ?>ImportExport'); $exporter->setCustomParameters($this->pb->getParam('custom_parameters')); $this->actual_step = $exporter->doProcess($this->actual_step); if ($this->actual_step>=$this->pb->getParam('steps')) { $this->errors = $exporter->getImporterExporter()->getLogger()->hasLog(); $this->logFile = basename($exporter->getImporterExporter()->getLogger()->getFilename()); $link = $this->getController()->genUrl("getModuleName() ?>/exportDownload?filename=".$filename."&ext=".$exporter->class_handle->output_file_extension , true); sfLoader::loadHelpers('Partial'); $this->pb->setMsg(get_partial('export_link', array('link'=>$link))); stImportExportPropel::fileCleanup(); } } public function executeExportLog() { $logFile = $this->getRequestParameter('file'); $logger = new stImportExportLog(sfConfig::get('sf_log_dir').DIRECTORY_SEPARATOR.$logFile); $this->logs = $logger->getLog(); } public function executeExportDownload() { $filename = $this->getRequestParameter('filename'); $file_extension = $this->getRequestParameter('ext'); $tmp = sfConfig::get('sf_data_dir').'/export/'.str_replace(' ', '-', $filename).'.tmp'; $this->setLayout(false); $response = $this->getContext()->getResponse(); $response->setContentType("application/octet-stream"); $response->setHttpHeader('Content-Disposition', 'attachment; filename="'.$filename.'.'.$file_extension.'"'); $response->sendHttpHeaders(); $handle = fopen($tmp,'r'); if ($handle) { while (!feof($handle)) { print fread($handle, 8192); ob_flush(); flush(); } fclose($handle); } throw new sfStopException(); } public function getExportTypes() { return array( getParameterValue('exporters', array()) as $type => $label): ?> '' => '', ); } public function getExportCustomParameters() { return array( getParameterValue('export.custom_parameters', array()) as $name => $options): ?> '' => , ); } getParameterValue('import')) : ?> public function executeImport() { $this->getResponse()->addStylesheet('backend/stImportExportPlugin.css'); stAuthUsersListener::checkModificationCredentials($this, $this->getRequest(), $this->getModuleName()); $this->import = false; $i18n = $this->getContext()->getI18N(); $this->processImportForwardParameters(); // obluga wyslanego formualrza if ($this->getRequest()->getMethod() == sfRequest::POST) { if($this->getRequest()->getFileName('import[filename]') || $this->hasRequestParameter('sample_file') || $this->hasRequestParameter('server_file')) { $importerType = $this->getRequestParameter('import[type]'); if (class_exists($importerType)) { if (!is_dir(sfConfig::get('sf_data_dir').'/import')) { mkdir(sfConfig::get('sf_data_dir').'/import', 0755); } $filename = 'getParameterValue('import.filename', 'import')) ?>-'.date('Y-m-d').'T'.date('H-i-s').'-'.uniqid(); $filepath = sfConfig::get('sf_data_dir').'/import/'.$filename.'.tmp'; if ($this->getRequestParameter('server_file')) { copy(sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'import'.DIRECTORY_SEPARATOR.$this->getRequestParameter('server_file'), $filepath); } else { $this->getRequest()->moveFile('import[filename]', $filepath); } $importer = new getModuleName() ?>ImportExport('import', $importerType, $filepath); $importer->setI18nCatalogue('getModuleName() ?>ImportExport'); if ($this->hasRequestParameter('sample_file')) { stImportExportPropel::fileCleanup(); $filename = $i18n->__('getParameterValue('import.filename', 'import') ?>').' - '.$i18n->__('przykladowy plik', null, 'stImportExportBackend'); $this->setLayout(false); $response = $this->getContext()->getResponse(); $response->setContentType("application/octet-stream"); $response->setHttpHeader('Content-Disposition', 'attachment; filename="'.$filename.'.'.$importer->class_handle->input_file_extension.'"'); return $this->renderText($importer->sampleFile()); } $valid = $importer->validateFile($errors); $items = $importer->getDataCount(); if ($items && $valid) { $this->pb = new stProgressBar('getModuleName() ?>','doImport',$items); $this->pb->setParam("importer",$importerType); $this->pb->setParam("filename",$filename); stImportExportLog::clearLogs('import'); $this->import = true; } else { if ($errors) { $this->getRequest()->setError('import{filename}', implode("
", $errors)); } else { $this->getRequest()->setError('import{filename}', sfContext::getInstance()->getI18n()->__('Nieprawidłowy format pliku', array(), 'stImportExportBackend')); } $this->import = false; } } } } if (!$this->import) { $this->import_types = $this->getImportTypes(); $this->default_import_type = 'getParameterValue('import.default', key($this->getParameterValue('importers'))) ?>'; } $this->getBreadcrumbsBuilder()->getImportBreadcrumbs(); } public function executeDoImport() { stFastCacheManager::disableClearCache(); stFunctionCache::disableClearCache(array('stTax')); stPartialCache::disableClearCache(); $this->setLayout(false); $this->errors = false; $this->actual_step = $this->getRequestParameter('step'); $this->pb = new stProgressBar('getModuleName() ?>','doImport'); $filename = $this->pb->getParam("filename"); $filepath = sfConfig::get('sf_data_dir').'/import/'.$filename.'.tmp'; $importer = new getModuleName() ?>ImportExport('import', $this->pb->getParam('importer'), $filepath); $importer->setI18nCatalogue('getModuleName() ?>ImportExport'); $this->actual_step = $importer->doProcess($this->actual_step); if ($this->actual_step>=$this->pb->getParam('steps')) { if ($importer->getImporterExporter()->getLogger()->hasLog()) { $this->errors = $importer->getImporterExporter()->getLogger()->hasLog(); $this->logFile = basename($importer->getImporterExporter()->getLogger()->getFilename()); $this->pb->setMsg(sfContext::getInstance()->getI18n()->__('Wystąpiły błędy podczas importu danych.', array(), 'stImportExportBackend')); } else { if (is_callable(array('getModuleName() ?>ImportExport', 'onImportFinished'))) { call_user_func(array('getModuleName() ?>ImportExport', 'onImportFinished')); } $this->pb->setMsg(sfContext::getInstance()->getI18n()->__('Dane zostały zaimportowane pomyślnie', array(), 'stImportExportBackend')); } stFunctionCache::enableClearCache(); stPartialCache::enableClearCache(); stFastCacheManager::enableClearCache(); stFunctionCache::clearAll(); stPartialCache::clearAll('frontend'); stFastCacheManager::clearCache(); stImportExportPropel::fileCleanup(); } } public function executeImportLog() { $logFile = $this->getRequestParameter('file'); $logger = new stImportExportLog(sfConfig::get('sf_log_dir').DIRECTORY_SEPARATOR.$logFile); $this->logs = $logger->getLog(); } public function handleErrorImport() { $this->processImportForwardParameters(); $i18n = $this->getContext()->getI18N(); $this->import = false; $this->import_types = $this->getImportTypes(); $this->default_import_type = 'getParameterValue('import.default', key($this->getParameterValue('importers'))) ?>'; $this->getBreadcrumbsBuilder()->getDefaultBreadcrumbs()->add($i18n->__('getParameterValue('import.title', 'Eksport') ?>', null, 'getModuleName() ?>')); return sfView::SUCCESS; } public function validateImport() { if ($this->getRequest()->getMethod() == sfRequest::POST) { $type = $this->getRequestParameter('import[type]'); // The name field is required if (!$type) { $this->getRequest()->setError('import{type}', sfContext::getInstance()->getI18n()->__('Proszę wybrać format pliku', array(), 'stImportExportBackend')); return false; } $filename = $this->getRequest()->getFileName('import[filename]'); // The name field is required if (!$filename && !$this->hasRequestParameter('sample_file')) { if (!$this->hasRequestParameter('server_file')) { $this->getRequest()->setError('import{filename}', sfContext::getInstance()->getI18n()->__('Nie wybrano pliku z danymi', array(), 'stImportExportBackend')); return false; } } } return true; } public function getImportTypes() { return array( getParameterValue('importers', array()) as $type => $label): ?> '' => '', ); } protected function processExportForwardParameters() { $this->forward_parameters = $this->processForwardParameters(array(getForwardParameters('export') ? "'".implode("', '", $this->getForwardParameters('export'))."'" : '' ?>), 'getGeneratedModuleName() ?>', 'export'); } protected function processImportForwardParameters() { $this->forward_parameters = $this->processForwardParameters(array(getForwardParameters('import') ? "'".implode("', '", $this->getForwardParameters('import'))."'" : '' ?>), 'getGeneratedModuleName() ?>', 'import'); }