public function createPackage() { $input = JFactory::getApplication()->input; ob_start(); try { $result = new stdClass(); $buildopts = $input->get('buildopts', array(), 'array'); $presetName = $input->get('preset'); $buildOpts = array(); foreach ($buildopts as $v) { $buildOpts[$v] = true; } $project = EcrProjectHelper::getProject(); $ziper = new EcrProjectZiper(); $preset = $project->getPreset($presetName)->loadValues($buildopts); $result->result = $ziper->create($project, $preset, $buildOpts); $result->errors = $ziper->getErrors(); $result->downloadLinks = $ziper->getCreatedFiles(); $result->log = $ziper->printLog(); if ($result->errors) { $this->response->message = jgettext('Your ZIPfile has NOT been created'); $this->response->status = 1; $this->response->debug = '<ul><li>' . implode('</li><li>', $result->errors) . '</li></ul>'; } else { if (count($result->downloadLinks)) { $m = ''; $m .= jgettext('Your ZIPfile has been created sucessfully'); $m .= '<ul class="downloadLinks">'; $m .= '<li><strong>' . jgettext('Downloads') . '</strong></li>'; /* @var EcrProjectZiperCreatedfile $link */ foreach ($result->downloadLinks as $link) { $alt = $link->alternateDownload ? ' (<a href="' . $link->alternateDownload . '">' . $link->alternateDownload . '</a>)' : ''; $m .= '<li><a href="' . $link->downloadUrl . '">' . $link->name . '</a><' . $alt . '/li>'; } $m .= '</ul>'; $this->response->message = $m; } else { $this->response->message = jgettext('No download available'); $this->response->status = 1; } } if ($result->log) { $m = ''; $m .= '<div class="ecr_codebox_header" style="font-size: 1.4em;"' . 'onclick="toggleDiv(\'ecr_logdisplay\');">' . jgettext('Log File') . '</div>'; $m .= '<div id="ecr_logdisplay" style="display: none;">' . $result->log . '</div>'; $this->response->message .= $m; } } catch (Exception $e) { $this->response->debug = ECR_DEBUG ? nl2br($e) : ''; $this->response->message = $e->getMessage(); $this->response->status = 1; } $buffer = ob_get_clean(); if ($buffer) { $this->response->status = 1; $this->response->debug .= $buffer; } echo $this->response; jexit(); }