get("workflow")); $sql = 'SELECT * FROM vtiger_wf_types WHERE id = ?'; $result = $adb->pquery($sql, array((int)$_REQUEST['task'])); $taskData = $adb->fetchByAssoc($result); $taskDir = $root_directory.'/test/taskdir/'; mkdir($taskDir); copy($root_directory.'/modules/Workflow2/tasks/'.$taskData['handlerclass'].'.php', $taskDir.'task.php'); if(file_exists($root_directory.'/modules/Workflow2/tasks/'."WfTask".ucfirst(strtolower(str_replace("WfTask", "", $taskData["handlerclass"]))).'.js')) { copy($root_directory.'/modules/Workflow2/tasks/'."WfTask".ucfirst(strtolower(str_replace("WfTask", "", $taskData["handlerclass"]))).'.js', $taskDir.'task.js'); } if(file_exists($root_directory.'/modules/Workflow2/icons/'.$taskData['background'].'.png')) { copy($root_directory.'/modules/Workflow2/icons/'.$taskData['background'].'.png', $taskDir.'icon.png'); } if(file_exists($root_directory.'/layouts/v7/modules/Settings/Workflow2/taskforms/WfTask'.ucfirst(strtolower($taskData['type'])).'.tpl')) { copy($root_directory.'/layouts/v7/modules/Settings/Workflow2/taskforms/WfTask'.ucfirst(strtolower($taskData['type'])).'.tpl', $taskDir.'task.tpl'); } if(file_exists($root_directory.'/layouts/v7/modules/Settings/Workflow2/taskforms/WfStat'.ucfirst(strtolower($taskData['type'])).'.tpl')) { copy($root_directory.'/layouts/v7/modules/Settings/Workflow2/taskforms/WfStat'.ucfirst(strtolower($taskData['type'])).'.tpl', $taskDir.'statistik.tpl'); } $newzip = new \ZipArchive(); $ret = $newzip->open($taskDir.'tmp.zip', ZipArchive::CREATE); $newzip->addFile($taskDir.'task.php', 'task.php'); if(file_exists($taskDir.'icon.png')) { $newzip->addFile($taskDir.'icon.png', 'icon.png'); } if(file_exists($taskDir.'task.js')) { $newzip->addFile($taskDir.'task.js', 'task.js'); } if(file_exists($taskDir.'task.tpl')) { $newzip->addFile($taskDir.'task.tpl', 'task.tpl'); } if(file_exists($taskDir.'statistik.tpl')) { $newzip->addFile($taskDir.'statistik.tpl', 'statistik.tpl'); } $fh = fopen($taskDir.'task.xml', 'w+'); $code = ' '.$taskData['type'].' '.$taskData['handlerclass'].' '.$taskData['category'].' '; $outputs = @json_decode(html_entity_decode($taskData['output']), true); foreach($outputs as $output) { $code .= ''.$output[1].''."\n"; } $code .= ' '.$taskData['helpurl'].' Administrator '; fwrite($fh, $code); $newzip->addFile($taskDir.'task.xml', 'task.xml'); $newzip->close(); header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="'.strtolower($taskData['type']).'.zip"'); readfile($taskDir.'tmp.zip'); } public function validateRequest(Vtiger_Request $request) { $request->validateReadAccess(); } }