Beispiel #1
0
 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();
 }