Example #1
0
    function fileMultiple($name, $caption = false, $required = false, $permitted_ext = false, $max_size = false, $dir = false, $image_sizes = false, $amount = 0, $crop_images = false, $encrypt = false)
    {
        global $CFG;
        if ($required) {
            $this->required[$name] = 'file';
            $req_img = $CFG->req_img;
        }
        if ($CFG->pm_editor) {
            $method_name = self::peLabel($CFG->method_id, 'fileMultiple');
        }
        $caption = $caption ? $caption : $name;
        $HTML = $req_img . "<div class=\"label_extend\"></div><label class=\"file_input_label\">{$caption} {$method_name}</label><ul class=\"file_input_list\">";
        $dir = $dir ? $dir : $CFG->default_upload_location;
        $permitted_ext = $permitted_ext ? $permitted_ext : $CFG->accepted_file_formats;
        $amount = $amount > 0 ? $amount : '0';
        $max_size = $max_size > 0 ? $max_size : '0';
        $i = 1;
        if ($this->record_id) {
            if ($files = DB::getFiles($this->table . '_files', $this->record_id, $name)) {
                foreach ($files as $file) {
                    $i++;
                    $amount--;
                    $HTML .= '<li>';
                    $HTML .= File::showLinkForResult($file, false, $this->table, $encrypt);
                    $HTML .= "<input type=\"hidden\" name=\"attached_file_fields[]\" value=\"{$name}\" />";
                    if (!empty($file['url'])) {
                        $HTML .= "<a title=\"{$CFG->delete_hover_caption}\" onclick=\"formDeleteUrl(this,'{$this->table}_files','{$file['id']}')\" class=\"delete\"></a>";
                    } else {
                        $HTML .= "<a title=\"{$CFG->delete_hover_caption}\" onclick=\"formDeleteFile(this,'{$this->table}_files','{$file['id']}','{$file['name']}.{$file['ext']}','{$file['dir']}')\" class=\"delete\"></a>";
                    }
                    $HTML .= '</li>';
                }
            }
        }
        if (!is_array($this->temp_files) && is_array($CFG->temp_files)) {
            $this->temp_files = $CFG->temp_files;
        }
        if (is_array($this->temp_files)) {
            foreach ($this->temp_files as $k => $v) {
                if (stristr($k, $name)) {
                    $i++;
                    $amount--;
                    $HTML .= '<li>';
                    $HTML .= File::showLink($v, $CFG->temp_file_location, false, $encrypt);
                    $HTML .= "<input type=\"hidden\" name=\"temp_files[{$k}]\" value=\"{$v}\" /> <a title=\"{$CFG->delete_hover_caption}\" onclick=\"formDeleteTemp(this,'{$v}')\" class=\"delete\"></a>";
                    $HTML .= '</li>';
                }
            }
        }
        $name_n = $name . '__' . $i;
        $class = 'class="file_input"';
        $style = $style ? 'style="' . $style . '"' : false;
        $id = $id ? $id . '__' . $i : $name_n;
        $value = $this->info ? $this->info[$name] : $value;
        $custom_image_sizes = $image_sizes ? urlencode(serialize($image_sizes)) : false;
        if ($this->table) {
            $this->db_fields[$name] = 'file';
        }
        if (!$CFG->pm_editor) {
            $HTML .= '
			<li class="upload_template">
				<span class="file_name"></span><span class="file_size"></span><a title="' . $CFG->delete_hover_caption . '" class="delete"></a>
				<div class="progress_bar"><div class="progress"></div></div>
				<input type="hidden" name="" value="" /> 
			</li>';
        }
        $HTML .= '
		<li>
			<span class="file_input_container">
				<input type="text" name="cover" class="input_cover" value=""/>
				<input type="button" name="cover_button" class="input_cover_button" value="' . $CFG->file_input_button . '"/>
				<div class="flash_upload" id="' . $this->name . '_' . $name . '">
					<input type="button" id="button" />
				</div>
			</span>
			<div class="clear"></div>
		</li>';
        if (!$CFG->pm_editor) {
            $HTML .= '
			<script type="text/javascript">
			var bar_size = new Array();
			var i = ' . $i . ';
			$(function(){
				$("#' . $this->name . '_' . $name . '").swfupload({
					upload_url: "ajax.upload.php",
					file_types : "' . ($permitted_ext ? $permitted_ext : '*.*') . '",
					file_types_description : "All Files",
					file_upload_limit : "' . $amount . '",
					file_size_limit : "' . $max_size . '",
					flash_url : "../shared/js/swfupload.swf",
					button_width : 251,
					button_height : 21,
					button_placeholder : $("#' . $this->name . '_' . $name . ' #button")[0],
					button_window_mode : SWFUpload.WINDOW_MODE.TRANSPARENT
				})
				.bind("fileQueued", function(event, file){
					var clone = $(".upload_template").clone();
					var file_name = normalizeName(file.name);
					
					$(clone).attr("class","");
					$(clone).attr("id","file_"+file_name);
					$(clone).find(".file_name").html(file.name);
					$(clone).find(".file_size").html(file.size+"b");
					$(clone).find(".button").hide();
					$(clone).css("display","none");
					$(".upload_template").before(clone);
					$(clone).show(200);
					// start the upload since it"s queued
					$(this).swfupload("startUpload");
				})
				.bind("fileQueueError", function(event, file, errorCode, message){
					
				})
				.bind("uploadStart", function(event, file){
					var file_name = normalizeName(file.name);
					$("#file_"+file_name).find(".progress_bar").show(100);
				})
				.bind("uploadProgress", function(event, file, bytesLoaded){
					var file_name = normalizeName(file.name);
					var bar_size = parseInt($(".upload_template").find(".progress_bar").css("width"));
					var percent = (parseInt(bytesLoaded) / parseInt(file.size)) * bar_size;
					$("#file_"+file_name).find(".progress").css("width",percent+"px");
				})
				.bind("uploadSuccess", function(event, file, serverData){
					var file_name = normalizeName(file.name);
					$("#file_"+file_name).find(".progress_bar").hide(100);
					$("#file_"+file_name).find(".file_size").hide(100);
					var response = serverData.split("|");
					if (response[0] == "error") {
						alert("Error: ' . $CFG->verify_file_misc_error . '");
						$("#file_"+file_name).remove();
					}
					else {
						i++;
						$("#file_"+file_name).append("<input type=\\"hidden\\" value=\\""+file.name+"\\" name=\\"temp_files[' . $name . '__"+i+"]\\">");
						$("#file_"+file_name).find(".button").show(100);
						$("#file_"+file_name).find(".button").click(function() { 
							formDeleteTemp(this,file.name);
						});
					}
					$(this).swfupload("startUpload");
				})
				.bind("uploadError", function(event, file, errorCode, message){
					alert("Error: "+message);
					var file_name = normalizeName(file.name);
					$("#file_"+file_name).remove();
				});
			
			});	
			</script>
			';
        }
        $HTML .= '<div class="clear"></div></ul>';
        if ($encrypt) {
            $HTML .= "<input type=\"hidden\" name=\"encrypt_files[{$name}]\" value=\"1\" />";
        }
        if ($crop_images) {
            $HTML .= "<input type=\"hidden\" name=\"crop_images[{$name}]\" value=\"{$crop_images}\" />";
        }
        $this->HTML[] = $HTML;
        $this->enctype = 'enctype="multipart/form-data"';
    }
Example #2
0
 function files($name, $caption = false, $encrypted = false)
 {
     global $CFG;
     $caption = $caption ? $caption : $name;
     if ($CFG->pm_editor) {
         $method_name = Form::peLabel($CFG->method_id, 'files');
     }
     $HTML = "<b class=\"record_label files_caption\">{$caption}</b> {$method_name}<ul>";
     if ($this->record_id) {
         if ($files = DB::getFiles($this->table . '_files', $this->record_id, $name)) {
             foreach ($files as $file) {
                 $HTML .= '<li>';
                 $HTML .= File::showLinkForResult($file, false, $this->table, $encrypted);
                 $HTML .= '</li>';
             }
         }
     }
     $HTML .= '</ul>';
     $this->HTML[] = $HTML;
 }