/** * Process a module upload * * @param string $inputName Optionally specify the name of the $_FILES input to look for (default=upload_module) * @param string $destinationDir Optionally specify destination path for completed unzipped files * @return bool|string Returns destinationDir on success, false on failure. * */ public function uploadModule($inputName = 'upload_module', $destinationDir = '') { if (!$this->canUploadDownload()) { $this->error($this->_('Unable to complete upload')); return false; } $tempDir = $this->getTempDir(); $ul = new WireUpload($inputName); $ul->setValidExtensions(array('zip')); $ul->setMaxFiles(1); $ul->setOverwrite(true); $ul->setDestinationPath($tempDir); $ul->setExtractArchives(false); $ul->setLowercase(false); $files = $ul->execute(); if (count($files)) { $file = $tempDir . reset($files); $destinationDir = $this->unzipModule($file, $destinationDir); if ($destinationDir) { $this->modules->resetCache(); } } else { $this->error($this->_('No uploads found')); $destinationDir = false; } return $destinationDir; }