Back to PhocaDownloadFileUploadMultiple class

Method renderMultipleUploadJS

public
renderMultipleUploadJS
(mixed $frontEnd = 0, mixed $chunkMethod = 0)

Method renderMultipleUploadJS - Source code

public function renderMultipleUploadJS($frontEnd = 0, $chunkMethod = 0)
{
    $document = Factory::getDocument();
    switch ($this->method) {
        case 2:
            $name = 'gears_uploader';
            $runtime = 'gears';
            break;
        case 3:
            $name = 'silverlight_uploader';
            $runtime = 'silverlight';
            break;
        case 4:
            $name = 'html5_uploader';
            $runtime = 'html5';
            break;
        case 5:
            $name = 'browserplus_uploader';
            $runtime = 'browserplus';
            break;
        case 6:
            $name = 'html4_uploader';
            $runtime = 'html4';
            break;
        case 1:
        default:
            $name = 'flash_uploader';
            $runtime = 'flash';
            break;
    }
    $chunkEnabled = 0;
    // Chunk only if is enabled and only if flash is enabled
    if ($chunkMethod == 1 && $this->method == 1 || $this->frontEnd == 0 && $chunkMethod == 0 && $this->method == 1) {
        $chunkEnabled = 1;
    }
    $this->url = PhocaDownloadUtils::filterValue($this->url, 'text');
    $this->reload = PhocaDownloadUtils::filterValue($this->reload, 'text');
    $this->url = str_replace('&', '&', $this->url);
    $this->reload = str_replace('&', '&', $this->reload);
    $js = 'var pgJQ = jQuery.noConflict();';
    $js .= 'pgJQ(function() {' . "\n";
    $js .= '' . "\n";
    $js .= '   plupload.addI18n({' . "\n";
    $js .= '	   \'Select files\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_SELECT_FILES')) . '\',' . "\n";
    $js .= '	   \'Add files to the upload queue and click the start button.\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_ADD_FILES_TO_UPLOAD_QUEUE_AND_CLICK_START_BUTTON')) . '\',' . "\n";
    $js .= '	   \'Filename\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_FILENAME')) . '\',' . "\n";
    $js .= '	   \'Status\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_STATUS')) . '\',' . "\n";
    $js .= '	   \'Size\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_SIZE')) . '\',' . "\n";
    $js .= '	   \'Add files\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_ADD_FILES')) . '\',' . "\n";
    $js .= '	   \'Add Files\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_ADD_FILES')) . '\',' . "\n";
    $js .= '	   \'Start upload\':\'' . addslashes(Text::_('COM_PHOCADOWNLOAD_START_UPLOAD')) . '\',' . "\n";
    $js .= '	   \'Start Upload\':\'' . addslashes(Text::_('COM_PHOCADOWNLOAD_START_UPLOAD')) . '\',' . "\n";
    $js .= '	   \'Stop upload\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD')) . '\',' . "\n";
    $js .= '	   \'Stop Upload\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD')) . '\',' . "\n";
    $js .= '	   \'Stop current upload\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_STOP_CURRENT_UPLOAD')) . '\',' . "\n";
    $js .= '	   \'Start uploading queue\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_START_UPLOADING_QUEUE')) . '\',' . "\n";
    $js .= '	   \'Drag files here.\' : \'' . addslashes(Text::_('COM_PHOCADOWNLOAD_DRAG_FILES_HERE')) . '\'' . "\n";
    $js .= '   });';
    $js .= '' . "\n";
    $js .= '	pgJQ("#' . $name . '").pluploadQueue({' . "\n";
    $js .= '		runtimes : \'' . $runtime . '\',' . "\n";
    $js .= '		url : \'' . $this->url . '\',' . "\n";
    //$js.='		max_file_size : \''.$this->maxFileSize.'\','."\n";
    if ($this->maxFileSize != '0b') {
        $js .= '		max_file_size : \'' . $this->maxFileSize . '\',' . "\n";
    }
    if ($chunkEnabled == 1) {
        $js .= '		chunk_size : \'1mb\',' . "\n";
    }
    $js .= '      preinit: attachCallbacks,' . "\n";
    $js .= '		unique_names : false,' . "\n";
    $js .= '		multipart: true,' . "\n";
    $js .= '		filters : [' . "\n";
    //$js.='			{title : "'.JText::_('COM_PHOCADOWNLOAD_IMAGE_FILES').'", extensions : "jpg,gif,png"}'."\n";
    //$js.='			{title : "Zip files", extensions : "zip"}'."\n";
    $js .= '		],' . "\n";
    $js .= '' . "\n";
    /*if ($this->method != 6) {
    			if ((int)$this->imageWidth > 0 || (int)$this->imageWidth > 0) {
    				$js.='		resize : {width : '.$this->imageWidth.', height : '.$this->imageHeight.', quality : '.$this->imageQuality.'},'."\n";
    				$js.=''."\n";
    			}
    		}*/
    if ($this->method == 1) {
        //$js.='		flash_swf_url : \''.JUri::root(true).'/components/com_phocadownload/assets/plupload/plupload.flash.swf\''."\n";
    } else {
        if ($this->method == 3) {
            //$js.='		silverlight_xap_url : \''.JUri::root(true).'/components/com_phocadownload/assets/plupload/plupload.silverlight.xap\''."\n";
        }
    }
    $js .= '	});' . "\n";
    $js .= '' . "\n";
    $js .= 'function attachCallbacks(Uploader) {' . "\n";
    $js .= '	Uploader.bind(\'FileUploaded\', function(Up, File, Response) {' . "\n";
    $js .= '		var obj = eval(\'(\' + Response.response + \')\');' . "\n";
    //if ($this->method == 4 || $this->method == 6) {
    if ($this->method == 6) {
        $js .= '		var queueFiles = Uploader.total.failed + Uploader.total.uploaded;' . "\n";
        $js .= '		var uploaded0 = Uploader.total.uploaded;' . "\n";
    } else {
        $js .= '		var queueFiles = Uploader.total.failed + Uploader.total.uploaded + 1;' . "\n";
        $js .= '		var uploaded0 = Uploader.total.uploaded + 1;' . "\n";
    }
    $js .= '' . "\n";
    $js .= '		if ((typeof(obj.result) != \'undefined\') && obj.result == \'error\') {' . "\n";
    $js .= '			' . "\n";
    if ($this->method == 6) {
        //$js.='		var uploaded0 = Uploader.total.uploaded;'."\n";
    } else {
        //$js.='		var uploaded0 = Uploader.total.uploaded + 1;'."\n";
    }
    $js .= '			Up.trigger("Error", {message : obj.message, code : obj.code, details : obj.details, file: File});' . "\n";
    $js .= '				if( queueFiles == Uploader.files.length) {' . "\n";
    if ($this->method == 6) {
        $js .= '		var uploaded0 = Uploader.total.uploaded;' . "\n";
    } else {
        $js .= '		var uploaded0 = Uploader.total.uploaded;' . "\n";
    }
    $js .= '					window.location = \'' . $this->reload . '\' + \'&muuploaded=\' + uploaded0 + \'&mufailed=\' + Uploader.total.failed;' . "\n";
    //$js.='					alert(\'Error\' + obj.message)'."\n";
    $js .= '				}' . "\n";
    $js .= '				return false; ' . "\n";
    $js .= '' . "\n";
    $js .= '		} else {' . "\n";
    $js .= '			if( queueFiles == Uploader.files.length) {' . "\n";
    //$js.='				var uploaded = Uploader.total.uploaded + 1;'."\n";
    if ($this->method == 6) {
        $js .= '		var uploaded = Uploader.total.uploaded;' . "\n";
    } else {
        $js .= '		var uploaded = Uploader.total.uploaded + 1;' . "\n";
    }
    $js .= '				window.location = \'' . $this->reload . '\' + \'&muuploaded=\' + uploaded + \'&mufailed=\' + Uploader.total.failed;' . "\n";
    //$js.='					alert(\'OK\' + obj.message)'."\n";
    $js .= '			}' . "\n";
    $js .= '		}' . "\n";
    $js .= '	});' . "\n";
    $js .= '	' . "\n";
    $js .= '    Uploader.bind(\'Error\', function(Up, ErrorObj) {' . "\n";
    $js .= '' . "\n";
    //	$js.='         if (ErrorObj.code == 100) { '."\n";
    //$js.='			pgJQ(\'#\' + ErrorObj.file.id).append(\'<div class="pgerrormsg">\'+ ErrorObj.message + ErrorObj.details +\'</div>\');'."\n";
    $js .= '			pgJQ(\'#\' + ErrorObj.file.id).append(\'<div class="alert alert-danger">\'+ ErrorObj.message + ErrorObj.details +\'</div>\');' . "\n";
    //	$js.='         }'."\n";
    $js .= '    });	' . "\n";
    $js .= '}';
    $js .= '});' . "\n";
    // End $(function()
    $document->addScriptDeclaration($js);
}