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"'; }