Author Topic: [Mod] Multiupload with jQuery  (Read 184118 times)

0 Members and 1 Guest are viewing this topic.

Rembrandt

  • Guest
[Mod] Multiupload with jQuery
« on: July 25, 2012, 06:08:27 PM »
Hi!

Here is the new Multiupload,  works with jQuery and Uploadify.
About Style and all others, can you read here.

 - With this multi-upload you can upload more than one hundred images simultaneously.
 - Large Images are automatically scaled. (Update 01.07.2013)
 - Automatically upload in temp folder or direct,for each Categorie.
 - When uploading Image Preview.
 - Write Description and Keywords for all Images.
 - Select Category for each image.


1.) create a new folder in your root and call it "js", and copy all files, from Attachment (multi.zip), in the new Folder.
Copy all Images,  form (multi.zip), in your template/images folder.

2.) search in includes/upload_definitions.php:

$mime_type_match
['jpg'] = array("image/jpg""image/jpeg""image/pjpeg");
$mime_type_match['jpeg'] = array("image/jpg""image/jpeg""image/pjpeg");

$mime_type_match['gif'] = array("image/gif");

$mime_type_match['png'] = array("image/png""image/x-png");

and replace:

$mime_type_match
['jpg'] = array("image/jpg""image/jpeg""image/pjpeg""application/octet-stream");
$mime_type_match['jpeg'] = array("image/jpg""image/jpeg""image/pjpeg","application/octet-stream");

$mime_type_match['gif'] = array("image/gif","application/octet-stream");

$mime_type_match['png'] = array("image/png""image/x-png","application/octet-stream");


3.) search in your lang/main.php "?>" and insert above:
(deutsch)

 $lang
['image'] = "Bild";
 
$lang['queueSizeLimit'] = " Bilder können gleichzeitig hochgeladen werden.";
 
$lang['for_all'] = "Beschreibung und Schlüsselwörter für alle Bilder:";

(english)

 $lang
['image'] = "Image";
 
$lang['queueSizeLimit'] = " Images can be uploaded at the same time.";
 
$lang['for_all'] = "Description and Keywords for all Images:"


4.) search in your Template/header.html "</head>" and insert above:

<script type="text/javascript" src="./js/multiupload/jquery-1.7.2.min.js"></script>


5.) create a new file, call it "member_multi_upload.html" and copy it in your Template Folder.
Code: [Select]
<script type="text/javascript" src="./js/multiupload/jquery.uploadify-3.1.min.js"></script>
  <script type="text/javascript" >
  $(function() {        
    $('#file_upload').uploadify({
      formData : {
        '__csrf' : '{token}',
        'user_id' : '{user_id}',
        'sessionid': '{session_id}',
        'session_user_id' :'{session_user_id}'
      },
      'swf': './js/multiupload/uploadify.swf',
      'uploader' : 'member.php?action=multi_uploadimage',
      'fileObjName' : 'media_file',
      'queueSizeLimit' : '{queueSizeLimit}',
      'fileTypeExts' : '{allowed_mediatypes_js}',
      'fileSizeLimit' : '{max_media_size_js}',
      'height'        : 20,
      'width'         : 100,
      'buttonText': 'Select',
      'progressData': 'speed',
      'onQueueComplete' : function(queueData) {
        location.href="./member.php?action=multi_upload&cat_id={cat_id}";
      }
    });
  });
  </script>
  <table width="100%" border="0" cellspacing="0" cellpadding="1">
    <tr>
      <td valign="top" class="head1">
        <table width="100%" border="0" cellpadding="4" cellspacing="0">
          <tr>
            <td colspan="2" valign="top" class="head1">{lang_user_upload}</td>
          </tr>
          <tr>
            <td class="row2" valign="top">
            <b>{lang_media_file}</b><br>
            <span class="smalltext">
            {lang_max_filesize}<b>{max_media_filsize}</b><br>
            {lang_max_imagewidth}<b>{max_media_imagewidth}</b><br>
            {lang_max_imageheight}<b>{max_media_imageheight}</b><br>
            </span>
            </td>
            <td valign="top" class="row2" colspan="2"><b>Upload:</b><br>
            <input class="buttonClass" type="file" name="media_file" id="file_upload">
            <br>
            <span class="smalltext"><b>{queueSizeLimit}</b>{lang_queueSizeLimit}<br><b>{lang_allowed_file_types}</b> {allowed_media_types}</span>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>

6.) create a new file, call it "member_multi_uploadform.html" and copy it in your Template Folder.
Code: [Select]
 <script type="text/javascript">
    function CheckAll() {
      for (var i=0;i<document.multi_uploadform.elements.length;i++) {
        var e = document.multi_uploadform.elements[i];
        if ((e.name != 'allbox') && (e.type=='checkbox')) {
          e.checked = document.multi_uploadform.allbox.checked;
        }
      }
    }
  </script>
<form name="multi_uploadform" method="post" action="member.php" enctype="multipart/form-data" onsubmit="uploadbutton.disabled=true;">
<input type="hidden" name="action" value="multi_saveimages">
<table width="100%" border="0" cellspacing="0" cellpadding="1">
  <tr>
    <td valign="top" class="head1">
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td class="head1"colspan="4"><input name="allbox" type="checkbox" checked="checked" onClick="CheckAll();"></td>
        </tr>
        <tr>
          <td>
          {uploadform_content}
          </td>
        </tr>
      </table>
      {if captcha_upload}
      <table width="100%" border="0" cellpadding="4" cellspacing="0">          
        <tr>
          <td class="row1" valign="top"><b>{lang_captcha}</b></td>
          <td class="row1" >
           <a href="javascript:new_captcha_image();"><img src="{url_captcha_image}" border="0" alt="" id="captcha_image" /></a> <br>
            <input type="text" name="captcha" size="30" value="" class="captchainput" id="captcha_input">
            <br>
            <table cellpadding="0" cellspacing="0" width="210">
              <tr>
                <td width="600">{lang_captcha_desc}</td>
               </tr>
            </table>
          </td>
        </tr>
      </table>
      {endif captcha_upload}
      </td>
    </tr>
  </table>
  <p align="center">
    <input type="hidden" name="cat_id" value="{cat_id}">
    <input type="submit" name="uploadbutton" value="{lang_submit}" class="button">
    <input type="reset" value="{lang_reset}" class="button">
  </p>
</form>

7.) add in your Templates/style.css at the end of the file, a:
Code: [Select]
.uploadify-button {
border: 1px solid #fcdc43;
background-color: #004c75;
  color: #fcdc43;
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  font-weight:bold;
text-align:center;
  padding:0;
  margin:0;
}

.uploadify:hover .uploadify-button {
  border:1px solid #fcdc43;
  background-color: #0f5475;
  color: red;
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  font-weight:bold;
  cursor:pointer;
}

.uploadify:active .uploadify-button {
border: 1px solid #fcdc43;
 }

.uploadify-queue {
margin-bottom: 1em;
}
.uploadify-queue-item {
background-color: #e1e1e1;
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  font-size: 11px;
margin-top: 5px;
max-width: 350px;
padding: 10px;
}
.uploadify-error {
background-color: #FDE5DD !important;
}
.uploadify-queue-item .cancel a {
background: url('images/uploadify-cancel.png') 0 0 no-repeat;
float: right;
height: 16px;
  width: 16px;
text-indent: -9999px;
}
.uploadify-queue-item.completed {
background-color: #f9f9f9;
  
}
.uploadify-progress {
background-color: #fcdc43;
margin-top: 10px;
width: 100%;
}
.uploadify-progress-bar {
background-color: #0099FF;
height: 3px;
width: 1px;
}
.uploadify-textarea{
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  color: #0f5475;
  font-size: 11px;
  width: 280px;
  height:40px;
}

.uploadify-input{
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  color: #0f5475;
  font-size: 11px;
  width: 190px;
}

8.) search in root/categories.php:

$upload_button 
"<img src=\"".get_gallery_image("upload_off.gif")."\" border=\"0\" alt=\"\" />";

insert below:

  $multi_upload_url 
"";
  
$multi_upload_button "<img src=\"".get_gallery_image("multiupload_off.gif")."\" border=\"0\" alt=\"\" />";

8.2) search:

$upload_button 
"<a href=\"".$upload_url."\"><img src=\"".get_gallery_image("upload.gif")."\" border=\"0\" alt=\"\" /></a>";

insert below:

  $multi_upload_url 
$site_sess->url(ROOT_PATH."member.php?action=multi_upload&".URL_CAT_ID."=".$cat_id);
  
$multi_upload_button "<a href=\"".$multi_upload_url."\"><img src=\"".get_gallery_image("multiupload.gif")."\" border=\"0\" alt=\"\" /></a>";

8.3) search:

"upload_button" => $upload_button,

insert below:

  
"multi_upload_url" => $multi_upload_url,
  
"multi_upload_button" => $multi_upload_button,


9.) search in your template/categories.html
Code: [Select]
<td align="right" valign="bottom">{upload_button}</td>
replace:
Code: [Select]
<td align="right" valign="bottom">{multi_upload_button}&nbsp;{upload_button}</td>

10.) search in member.php:

if ($action == "emailuser") {

insert above:

//############################## Start Multiupload ###################################
if ($action == "multi_saveimages") {
  
$txt_clickstream "";
  if (
$cat_id && isset($cat_cache[$cat_id])) {
    
$txt_clickstream .= get_category_path($cat_id1).$config['category_separator'];
  }
  
$txt_clickstream .= $lang['user_upload'];

  
$num_newimages intval(trim($HTTP_POST_VARS['sum_images']));
  
$captcha = (isset($HTTP_POST_VARS['captcha'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['captcha'])) : "";

  
$error = array();

  for (
$i 1$i <= $num_newimages$i++) {
   
    
$image_id intval(trim($HTTP_POST_VARS['image_id_'.$i]));
    
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 0;
    
$old_media_path MEDIA_TEMP_PATH."/".un_htmlspecialchars(trim($HTTP_POST_VARS['image_media_file_'.$i]));
    
$old_thumb_path THUMB_TEMP_PATH."/".un_htmlspecialchars(trim($HTTP_POST_VARS['image_thumb_file_'.$i]));
    
$image_description =  un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_description_'.$i])));
    
$image_keywords =  un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_keywords_'.$i])));

    if (
$addimage) {
      
$count_add_image++;
      
$image_name un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
      
$cat_id intval($HTTP_POST_VARS['cat_id_'.$i]);

      if (
$image_name == "")  {
        
$error['image_name_'.$i] = 1;
        
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['image_name']), $lang['field_required']);
        
$msg .= (($msg != "") ? "<br />" "").$lang['image']." ".$i." ".$field_error;
      }
      
      if (
$cat_id == 0) {
        
$error['cat_id'.$i] = 1;
        
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['category']), $lang['field_required']);
        
$msg .= (($msg != "") ? "<br />" "").$lang['image']." ".$i." ".$field_error;
      }
      
      if (!empty(
$additional_image_fields)) {
        foreach (
$additional_image_fields as $key => $val) {
          if (isset(
$HTTP_POST_VARS[$key.'_'.$i]) && intval($val[2]) == && trim($HTTP_POST_VARS[$key.'_'.$i]) == "") {
            
$error[$key.'_'.$i] = 1;
            
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$val[0]), $lang['field_required']);
            
$msg .= (($msg != "") ? "<br />" "").$lang['image']." ".$i." ".$field_error;
          }
        }
      }
    }
    else{
      
$image_name un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
      
$sql "DELETE FROM ".IMAGES_TEMP_TABLE."
              WHERE image_id = 
$image_id
             "
;
      
$site_db->query($sql);
      @
unlink($old_media_path);
      @
unlink($old_thumb_path);
      
$msg .=  "<br><b>".$i.".)</b>&nbsp;".$lang['image_delete_success'].":";
      
$msg .= "&nbsp;<b>".format_text(stripslashes($image_name))."";
    }  
  }
//end for
  
  
if ($addimage && $captcha_enable_upload && !captcha_validate($captcha)) {
    
$msg .= (($msg != "") ? "<br />" "").$lang['captcha_required'];
    
$error 1;
  }

  if (!
$error) {
    include(
ROOT_PATH.'includes/upload.php');
    
$save_all intval(trim($HTTP_POST_VARS['save_all']));
    
    for (
$i 1$i <= $num_newimages$i++){
      
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 0;
      
$save_all intval(trim($HTTP_POST_VARS['save_all']));
      
      if (
$addimage) {
        
$cat_id intval(trim($HTTP_POST_VARS['cat_id_'.$i]));
        
$temp_image_id intval(trim($HTTP_POST_VARS['image_id_'.$i]));
        
$image_name un_htmlspecialchars(trim($HTTP_POST_VARS['image_name_'.$i]));
        
$image_media_file un_htmlspecialchars(trim($HTTP_POST_VARS['image_media_file_'.$i]));
        
$image_thumb_file un_htmlspecialchars(trim($HTTP_POST_VARS['image_thumb_file_'.$i]));
        
$old_media_path MEDIA_TEMP_PATH."/".$image_media_file;
        
$old_thumb_path THUMB_TEMP_PATH."/".$image_thumb_file;
        
$image_description = ($save_all) ? un_htmlspecialchars(trim($HTTP_POST_VARS['image_description_1'])) : un_htmlspecialchars(trim($HTTP_POST_VARS['image_description_'.$i]));
        
$image_keywords = ($save_all) ?  un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords_1'])) :  un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords_'.$i]));
        
$image_keywords preg_replace("/[\n\r]/is"","$image_keywords);
        
$image_keywords_arr explode(','$image_keywords);
        
array_walk($image_keywords_arr'trim_value');
        
$image_keywords implode(','array_unique(array_filter($image_keywords_arr)));
        
$direct_upload = (check_permission("auth_directupload"$cat_id)) ? 0;
      
        
$additional_field_sql "";
        
$additional_value_sql "";
        if (!empty(
$additional_image_fields)) {
          
$table = ($direct_upload) ? IMAGES_TABLE IMAGES_TEMP_TABLE;
          
$table_fields $site_db->get_table_fields($table);
//################# Start Exif IPTC #####################
      
$src_file $old_media_path;
      
$size getimagesize ($src_file$info);
        if(isset(
$info['APP13'])){
          
$iptc_array get_iptc_info($info['APP13']);
          foreach (
$iptc_array as $key => $val) {
            
$additional_field_sql .= ',image_'.$key;
            
$additional_value_sql .= ",'".$val."'";
          }
        }
//################# End Exif IPTC ########################         
          
foreach ($additional_image_fields as $key => $val) {
            if (isset(
$HTTP_POST_VARS[$key.'_'.$i]) && isset($table_fields[$key])) {
              
$additional_field_sql .= ", $key";
              
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
              
$additional_sql .= ", $key = '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
            }
          }
        }  

        
$current_time time();
        if (!
$direct_upload) {
      
          
$sql "UPDATE ".IMAGES_TEMP_TABLE."
                  SET cat_id = 
$cat_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $current_time".$additional_sql."
                  WHERE user_id = "
.$user_info['user_id']." AND image_id = ".$temp_image_id."
                 "
;
          
$result $site_db->query($sql);
          
          
$cat_id_array[] = $cat_id;
          
$image_name_array[] = $image_name;
          
$new_name_array[] = $image_media_file;
        
          
$msg .= "<br><b>".$i.".)</b>&nbsp;".$lang['new_upload_validate_desc'].":"
          
$msg .= "&nbsp;<b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br />";
          
$sendprocess 1;
        }
        else {
          
$new_name multi_copy_media($image_media_file"-1"$cat_id);
          
$new_thumb_name multi_copy_thumbnail($new_name$image_thumb_file"-1"$cat_id);
          
          if(
$new_name){
            
$sql "INSERT INTO ".IMAGES_TABLE."
                    (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file"
.$additional_field_sql.")
                    VALUES
                    (
$cat_id, ".$user_info['user_id'].", '$image_name', '".mysql_real_escape_string($image_description)."', '".mysql_real_escape_string($image_keywords)."', $current_time, '$new_name', '$new_thumb_name'".$additional_value_sql.")";
            
$result $site_db->query($sql);
            
$image_id $site_db->get_insert_id();
        
            if (
$result) {
              include_once(
ROOT_PATH.'includes/search_utils.php');
              
$search_words = array();              
              foreach (
$search_match_fields as $image_column => $match_column) {

              if(
$save_all){
                if (isset(
$HTTP_POST_VARS[$image_column.'_1'])) {
                  
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column.'_1']);
                }
                }else{
                  if (isset(
$HTTP_POST_VARS[$image_column.'_'.$i])) {
                    
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column.'_'.$i]);
                  }
                }
              }
              
add_searchwords($image_id$search_words);
//######################### Start Exif IPTC  #########################
          
$sql "SELECT image_id".$additional_field_sql."
                  FROM "
.IMAGES_TABLE."
                  WHERE image_id = 
$image_id
                  "
;
          
$result $site_db->query($sql);
          while (
$row $site_db->fetch_array($result)) {
            
$additional_search_words = array();
            foreach (
$search_match_fields as $image_column => $match_column) {
              if (isset(
$row[$image_column])) {
                
$additional_search_words[$image_column] = $row[$image_column];
              }
            }
            
add_searchwords($image_id$additional_search_words);
          };
//####################### End Exif IPTC ##########################               
              
$sql "DELETE FROM ".IMAGES_TEMP_TABLE."
                      WHERE image_id = 
$temp_image_id
                     "
;
              
$site_db->query($sql);
            }
          }
          else {
            
$msg .= "<br><b>".$i.".)</b>&nbsp;".$lang['image_add_error'].":"
            
$msg .= "&nbsp;<b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br>";
          }
          
$msg .= "<br><b>".$i.".)</b>&nbsp;".$lang['image_add_success'].":";
          
$msg .= "&nbsp;<b>".format_text(stripslashes($image_name), 2)."</b> (".$image_media_file.")<br>"
        }
      }
//add_image
    
//end for 
  
}//error
  
else {
    
$action "multi_upload";
  }  
  
  if (
$config['upload_notify'] == && $sendprocess) {
    
$cat_id_send "";
    
$image_name_send "";
    
$new_name_send "";

    
$cat_id_send implode("\",\" "$cat_id_array);
    
$image_name_send implode("\",\" "$image_name_array);
    
$new_name_send implode("\",\" "$new_name_array);

    include(
ROOT_PATH.'includes/email.php');
    
$site_email = new Email();

    
$config['upload_emails'] = str_replace(" """$config['upload_emails']);
    
$emails explode(","$config['upload_emails']);
    
$validation_url $script_url."/admin/index.php?goto=".urlencode("validateimages.php?action=validateimages");

    
$site_email->set_to($config['site_email']);
    
$site_email->set_subject($lang['new_upload_emailsubject']);
    
$site_email->register_vars(array(
      
"image_name" => stripslashes('"'.$image_name_send.'"'),
      
"file_name" => '"'.$new_name_send.'"',
      
"cat_name" => '"'.$cat_id_send.'"',
      
"validation_url" => $validation_url,
      
"site_name" => $config['site_name']
    ));
      
$site_email->set_body("multi_upload_notify"$config['language_dir_default']);
      
$site_email->set_bcc($emails);
      
$site_email->send_email();
  }  
  
$action "multi_upload";
}

if(
$action == "multi_upload"){

  
$config['queueSizeLimit'] = 10;
  if (
$cat_id != && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload"$cat_id))) {
    
show_error_page($lang['no_permission']);
    exit;
  } 

  
$txt_clickstream "";
  if (
$cat_id && isset($cat_cache[$cat_id])) {
    
$txt_clickstream .= get_category_path($cat_id1).$config['category_separator'];
  }
  
$txt_clickstream .= "Multi ".$lang['user_upload'];
  
$site_template->register_vars(array(
    
"cat_id" => $cat_id,
    
"user_id" => $user_info['user_id'],
    
"session_id" => session_id(),
    
"session_user_id" => $session_info['session_user_id'],
    
"token" => (string)csrf_token(),
    
"lang_user_upload" => $lang['user_upload'],
    
"queueSizeLimit" => $config['queueSizeLimit'],
    
"allowed_mediatypes_js" => "*.".str_replace(",","; *.",$config['allowed_mediatypes']),
    
"max_media_size_js" => $config['max_media_size']."KB",
    
"lang_category" => $lang['category'],
    
"lang_user_upload" => "Multi ".$lang['user_upload'],
    
"lang_media_file" => $lang['media_file'],
    
"lang_thumb_file" => $lang['thumb_file'],
    
"lang_allowed_file_types" => $lang['allowed_mediatypes_desc'],
    
"allowed_media_types" => str_replace(",",", ",$config['allowed_mediatypes']),
    
"allowed_thumb_types" => "jpg, gif, png",
    
"lang_queueSizeLimit" => $lang['queueSizeLimit'],
    
"lang_max_filesize" => $lang['max_filesize'],
    
"lang_max_imagewidth" => $lang['max_imagewidth'],
    
"lang_max_imageheight" => $lang['max_imageheight'],
    
"max_media_filsize" => $config['max_media_size']."&nbsp;".$lang['kb'],
    
"max_media_imagewidth" => $config['max_image_width']."&nbsp;".$lang['px'],
    
"max_media_imageheight" => $config['max_image_height']."&nbsp;".$lang['px'],
  ));
  
  
$content $site_template->parse_template("member_multi_upload");
  
  
$sql "SELECT COUNT(image_id) AS sum_images
          FROM "
.IMAGES_TEMP_TABLE."
          WHERE user_id = "
.$user_info['user_id']." AND cat_id = 0
         "
;
  
$sum $site_db->query_firstrow($sql);
  
$sum_images $sum['sum_images'];

  if(
$sum_images){
    
$sql "SELECT image_id, cat_id, user_id, image_name, image_date, image_media_file, image_thumb_file".$additional_sql."
            FROM "
.IMAGES_TEMP_TABLE."
            WHERE user_id = "
.$user_info['user_id']." AND cat_id = 0
           "
;
    
$result $site_db->query($sql);

    if(
$result){
      
$save_all "<br>
                  <b>Description and Keywords for all Images<br>
                  <input type=\"checkbox\" name=\"save_all\" value=\"1\">
                  "
;

      
$uploadform_content ="";
      
$i 1;
      
$site_template->register_vars("save_all",$save_all);
      while (
$image_row $site_db->fetch_array($result)){
      
        
$addimage = (isset($HTTP_POST_VARS['addimage_'.$i]) && $HTTP_POST_VARS['addimage_'.$i] == 1) ? 0;
        
$cat_id = (isset($HTTP_POST_VARS['cat_id_'.$i])) ? intval($HTTP_POST_VARS['cat_id_'.$i]) : (($image_row['cat_id'])? $image_row['cat_id'] : $cat_id);// Cat_id
        
$image_name = (isset($HTTP_POST_VARS['image_name_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_name_'.$i]))) : $image_row['image_name'];
        
$image_description = (isset($HTTP_POST_VARS['image_description_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_description_'.$i]))) : $image_row['image_description'];
        
$image_keywords = (isset($HTTP_POST_VARS['image_keywords_'.$i])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_keywords_'.$i]))) : $image_row['image_keywords'];

        
$row_bg_number = ($i == 0) ? 2;
        
$save_all = ($i == 1) ? $save_all :"";
        
$uploadform_content .= "
          <table cellpadding=\"4\" cellspacing=\"1\" border=\"0\">
            <tr class=\"row"
.$row_bg_number."\">
              <td>
                <table cellpadding=\"4\" cellspacing=\"0\" border=\"0\">
                  <tr>
                    <td>
                      <input type=\"checkbox\" name=\"addimage_"
.$i."\" checked value=\"1\">
                     </td>
                    <td valign=\"top\" width=\""
.$config['max_thumb_width']."\">
                      <img src=\"data/tmp_thumbnails/"
.$image_row['image_thumb_file']."\">
                    </td>
                    <td valign=\"top\"><b>"
.$i.".)  ".$lang['image_name']."</b></br>
                      <input class=\"input\" type=\"text\" name=\"image_name_"
.$i."\" size=\"20\" value=\"".format_text(stripslashes($image_name), 2)."\">
                      <input  type=\"hidden\" name=\"image_id_"
.$i."\"  value=\"".$image_row['image_id']."\">
                      <input  type=\"hidden\" name=\"image_media_file_"
.$i."\"  value=\"".$image_row['image_media_file']."\">
                      <input  type=\"hidden\" name=\"image_thumb_file_"
.$i."\"  value=\"".$image_row['image_thumb_file']."\">
                      <input  type=\"hidden\" name=\"sum_images\"  value=\""
.$sum_images."\">
                   </td>
                    <td valign=\"top\">
                      <b>"
.$lang['category']."</b></br>
                     "
.get_category_dropdown($cat_id,"",3,$i)."
                    </td>
                    <td valign=\"top\">
                      <b>"
.$lang['description']."</b></br>
                      <textarea class=\"textarea\" cols=\"20\"  rows=\"2\" name=\"image_description_"
.$i."\" >".$image_description."</textarea>
                      <br>
                      <b>"
.$lang['keywords']."</br>
                      <textarea  class=\"textarea\" cols=\"20\" rows=\"2\" name=\"image_keywords_"
.$i."\">".$image_keywords."</textarea>
                      "
.$save_all."
                    </td>
                  </tr>
                  <tr>
                    <td colspan=\"5\"></td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        "
;
        
$i++;
      } 
//while
    
}
    
    
$site_template->register_vars(array(
      
"uploadform_content" => $uploadform_content,
      
"cat_id" => $cat_id,
      
"lang_captcha" => $lang['captcha'],
      
"lang_captcha_desc" => $lang['captcha_desc'],
      
"captcha_upload" => (bool)$captcha_enable_upload,
      
"lang_category" => $lang['category'],
      
"lang_submit" => $lang['submit'],
      
"lang_reset" => $lang['reset'],
      
"lang_category" => $lang['category'],
      
"lang_image" => $lang['image'],
    ));
    
$content .= $site_template->parse_template("member_multi_uploadform");
  }else{
    
$action="multi_upload";
  }
}

if(
$action == "multi_uploadimage"){

  if (isset(
$HTTP_GET_VARS['user_id']) || isset($HTTP_POST_VARS['user_id'])) {
    
$user_id = (isset($HTTP_GET_VARS['user_id'])) ? intval($HTTP_GET_VARS['user_id']) : intval($HTTP_POST_VARS['user_id']);
    if (!
$user_id) {
      
$user_id GUEST;
    }
  }
  else {
    
$user_id GUEST;
  }
  
  if(
$cat_id != && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload"$cat_id))){
    
show_error_page($lang['no_permission']);
    exit;
  }
  
  if(!empty(
$_FILES)){
    
$uploaderror 0;
    
$image_name utf8_decode(get_file_name(un_htmlspecialchars(trim($_FILES['media_file']['name']))));
    
    include(
ROOT_PATH.'includes/upload.php');
    
$site_upload = new Upload();
    
    if(!empty(
$HTTP_POST_FILES['media_file']['tmp_name']) && $HTTP_POST_FILES['media_file']['tmp_name'] != "none"){
      
$new_name = ($site_upload->upload_file("media_file""media"));
       if (!
$new_name) {
          echo  
$site_upload->get_upload_errors();
        
$uploaderror 1;
      }
    }
    
    
$new_thumb_name "";
    if(
$config['auto_thumbnail'] == && !empty($new_name) && !$uploaderror && ((!empty($HTTP_POST_FILES['media_file']['tmp_name']) && $HTTP_POST_FILES['media_file']['tmp_name'] != "none") || is_remote($new_name))) {

      if (
is_remote($new_name)){
        
$src $new_name;
        
$thumb create_unique_filename(THUMB_TEMP_PATHfilterFileName($new_name));
      }else{
        
$src MEDIA_TEMP_PATH."/".$new_name;
        
$thumb $new_name;
      }
      
$dest THUMB_TEMP_PATH."/".$thumb;
      
      
$do_create 0;
      if(
$image_info = @getimagesize($src)){
        if (
$image_info[2] == || $image_info[2] == || $image_info[2] == 3) {
          
$do_create 1;
        }
      }
      if(
$do_create){
        require(
ROOT_PATH.'includes/image_utils.php');
        
$convert_options init_convert_options();
      if (!
$convert_options['convert_error']&& $image_info[2] == 2||$image_info[2] == 3){
        
$quality 100;
        if (!
resize_image($src$quality$config['max_image_width'], 1$config['max_image_height'])){
          
$msg .= (($msg != "") ? "<br>" "")."<b>".$lang['file_upload_error'].": ".$new_name;
          
$uploaderror 1;
        }
      }

        if(!
$convert_options['convert_error']){
          
$dimension = (intval($config['auto_thumbnail_dimension'])) ? intval($config['auto_thumbnail_dimension']) : 100;
          
$resize_type = (intval($config['auto_thumbnail_resize_type'])) ? intval($config['auto_thumbnail_resize_type']) : 1;
          
$quality = (intval($config['auto_thumbnail_quality']) && intval($config['auto_thumbnail_quality']) <= 100) ? intval($config['auto_thumbnail_quality']) : 100;

          if(
create_thumbnail($src$dest$quality$dimension$resize_type)){
            
$new_thumb_name $thumb;
          }
        }
      }
    }
    if(!
$uploaderror){
      
$additional_field_sql "";
      
$additional_value_sql "";
      if(!empty(
$additional_image_fields)) {
        
$table IMAGES_TEMP_TABLE;
        
$table_fields $site_db->get_table_fields($table);
        foreach (
$additional_image_fields as $key => $val){
          if(isset(
$HTTP_POST_VARS[$key]) && isset($table_fields[$key])){
            
$additional_field_sql .= ", $key";
            
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
          }
        }
      } 
      
$current_time time();
      
$sql "INSERT INTO ".IMAGES_TEMP_TABLE."
              (cat_id, user_id, image_name, image_date, image_media_file, image_thumb_file"
.$additional_field_sql.")
              VALUES
              (
$cat_id, '$user_id', '$image_name', $current_time, '$new_name', '$new_thumb_name'".$additional_value_sql.")
             "
;
      
$result $site_db->query($sql);
    }
    echo 
1;
  }
  else {
    echo 
0;
  }
}
//############################ End Multiupload #################################################


11.) search in includes/functions..php "?>" and insert above:

//############################## Start Multiupload ###################################
function multi_copy_media($image_media_file$from_cat 0$to_cat 0) {
  global 
$config;

  if (
is_remote($image_media_file)) {
    return 
$image_media_file;
  }

  
$image_src = ($from_cat != -1) ? MEDIA_PATH.(($from_cat != 0) ? "/".$from_cat "") : MEDIA_TEMP_PATH;
  
$image_dest = ($to_cat != -1) ? MEDIA_PATH.(($to_cat != 0) ? "/".$to_cat "") : MEDIA_TEMP_PATH;
  return 
multi_copy_file($image_src$image_dest$image_media_file$image_media_file$config['upload_mode']);
}


function 
multi_copy_thumbnail($image_media_file$image_thumb_file$from_cat 0$to_cat 0) {
  if (
is_remote($image_thumb_file)) {
    return 
$image_thumb_file;
  }

  
$thumb_src = ($from_cat != -1) ? THUMB_PATH.(($from_cat != 0) ? "/".$from_cat "") : THUMB_TEMP_PATH;
  
$thumb_dest = ($to_cat != -1) ? THUMB_PATH.(($to_cat != 0) ? "/".$to_cat "") : THUMB_TEMP_PATH;

  if (
$image_thumb_file != "" && file_exists($thumb_src."/".$image_thumb_file)) {
    
$thumb_extension get_file_extension($image_thumb_file);
    
$new_thumb get_file_name($image_media_file).".".$thumb_extension;
    if (
$new_thumb multi_copy_file($thumb_src$thumb_dest$image_thumb_file$new_thumb1))
    {
      
$image_thumb_file $new_thumb;
    }
  }
  return 
$image_thumb_file;
}

function 
multi_copy_file($image_src$image_dest$image_media_file$dest_file_name$type$filter 1$move 1)
{
  
$image_src_file $image_src."/".$image_media_file;
  
$dest_file_name = ($filter) ? filterFileName($dest_file_name) : $dest_file_name;
  
$ok 0;
  if (!
file_exists($image_dest) || !is_dir($image_dest))
  {
	
	
$oldumask umask(0);
	
	
$result _mkdir($image_dest);
        @
chmod($image_destCHMOD_DIRS);
	
	
umask($oldumask);
  }
  switch (
$type) {
  case 
1// overwrite mode
    
if (file_exists($image_src."/".$image_media_file)) {
      if (
file_exists($image_dest."/".$dest_file_name)) {
        
unlink($image_dest."/".$dest_file_name);
      }
      
$ok copy($image_src."/".$image_media_file$image_dest."/".$dest_file_name);
    }
    break;

  case 
2// create new with incremental extention
     
if (file_exists($image_src."/".$image_media_file)) {
       
$file_extension get_file_extension($dest_file_name);
       
$file_name get_file_name($dest_file_name);

       
$n 2;
       
$copy "";
       while (
file_exists($image_dest."/".$file_name.$copy.".".$file_extension)) {
         
$copy "_".$n;
         
$n++;
       }
       
$new_file $file_name.$copy.".".$file_extension;
       
$ok copy($image_src."/".$image_media_file$image_dest."/".$new_file);
       
$dest_file_name $new_file;
     }
     break;

   case 
3// do nothing if exists, highest protection
   
default:
     if (
file_exists($image_src."/".$image_media_file)) {
       if (
file_exists($image_dest."/".$dest_file_name)) {
         
$ok 0;
       }
       else {
         
$ok copy($image_src."/".$image_media_file$image_dest."/".$dest_file_name);
       }
     }
     break;
  }

  if (
$ok) {
    if (
$move)
    {
      @
unlink($image_src_file);
    }
    @
chmod($image_dest."/".$dest_file_nameCHMOD_FILES);
    return 
$dest_file_name;
  }
  else {
    return 
false;
  }
}
//############################## End Multiupload ###################################


12.) create a new file, call it "multi_upload_notify.html" and copy it in your lang/your language/email Folder.
(deutsch)
Code: [Select]
Neue Bilder wurden auf "{site_name}" hinzugefügt und muessen freigeschaltet werden.

Kategorie: {cat_name}
Bildnamen: {image_name}
Dateien: {file_name}

{validation_url}

--
Mit freundlichen Grüßen,
{site_name}
(english)
Code: [Select]
New images has been uploaded to "{site_name}" and awaits validation.

Category:  {cat_name}
Image Name:  {image_name}
File:  {file_name}

{validation_url}

--
Best regards,
{site_name}

the queue Size Limit can you set in member.php, search in the new code:

//########## config ########
  
$config['queueSizeLimit'] = 10;
//########## config ########


that's for sure, this is my last Multiupload.  :mrgreen:

mfg Andi

« Last Edit: July 01, 2013, 07:47:54 PM by Rembrandt »

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: [Mod] Multiupload with jQuery
« Reply #1 on: July 26, 2012, 05:53:52 PM »
ENDLICH !!!!! :D

Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #2 on: July 26, 2012, 05:55:50 PM »
ENDLICH !!!!! :D

hast du ihn ausprobiert?
ich frage deshalb weil ich den Mod schon seit einen Monat herrum liegen hatte weil mir das *.swf im FF schwierigkeiten machte.

mfg Andi

Offline Nosferatu

  • Full Member
  • ***
  • Posts: 230
    • View Profile
    • Project-Firepower
Re: [Mod] Multiupload with jQuery
« Reply #3 on: July 28, 2012, 10:47:16 AM »
irgendwie haut das bei mir nicht hin....

ich hoffe ihr seht den button ;) sollte eigentlich schon sei.
http://wallpapers.pj-firepower.com/categories.php?cat_id=432

Zur sicherheit hab ich noch 2 screenshots gemacht

habs nochmal extra durchgesehen :(

Edit:
ich hab jetzt zum testen auch einfach mach nur TEST TEST in die member_multi_upload.html geschrieben.
nicht einmal das wird geladen ...
« Last Edit: July 28, 2012, 11:22:54 AM by Nosferatu »

Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #4 on: July 28, 2012, 01:17:27 PM »
sorry, war wieder mal mein Fehler hatte Step 8.2) aus dem alten Mod genommen und da stimmt der verweis natürlich nicht, jetzt sollte es klappen.

wenn du das änderst funktioniert es auf deiner Webseite, habs soeben ausprobiert :)

mfg Andi

Offline Nosferatu

  • Full Member
  • ***
  • Posts: 230
    • View Profile
    • Project-Firepower
Re: [Mod] Multiupload with jQuery
« Reply #5 on: July 28, 2012, 02:16:03 PM »
suppi danke !!!!

läuft perfekt ;)

Werde gleich mal bei meinem mod zu deinen verweisen ;)

mfg
jeff

Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #6 on: July 28, 2012, 02:19:52 PM »
...läuft perfekt ;)
....
sag ich ja, ich habe im Test über 100 files auf einmal hochgeladen.. :)

mfg Andi

Offline kochi198

  • Pre-Newbie
  • Posts: 2
    • View Profile
Re: [Mod] Multiupload with jQuery
« Reply #7 on: August 10, 2012, 08:47:05 PM »
Also bei mir haut das irgendwie nicht hin.
Ich habe neben dem Button Upload auch Multiupload. Klicke ich darauf.
Kann ich ein Bild auswählen - Habe aber weder mehrere Bilder zur auswahl, noch einen "abschicken bzw. hochladen" button.

Kann es daran liegen das meine gallery nicht im root meines Webspace liegt? Wo muss ich noch etwas anpassen???

Vielen Dank.

Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #8 on: August 10, 2012, 09:07:28 PM »
Willkommen im Forum!
... Wo muss ich noch etwas anpassen???
....
1.) Überprüfe step 1.) und 4.), die neue Ordner Struktur sollte so ausehen: "js/multiupload/" und nicht etwa "js/js/multiupload/".
2.) könntest du eine Test Kategorie zum Upload frei geben, damit man sich das ansehen kann.

und zuletzt lies dir das Bitte durch.

Danke...

mfg Andi

Offline kochi198

  • Pre-Newbie
  • Posts: 2
    • View Profile
Re: [Mod] Multiupload with jQuery
« Reply #9 on: August 11, 2012, 10:29:42 AM »
Vielen Dank,
habe den Ordner "multiupload" in /js vergessen und die Dateien gleich eingefügt.

Danke für die schnelle Antwort! TOP!
Ein schönes Wochenende

Offline relu

  • Newbie
  • *
  • Posts: 44
    • View Profile
    • Pulsarmedia
Re: [Mod] Multiupload with jQuery
« Reply #10 on: August 17, 2012, 03:49:22 PM »
is anything else to modify? i get a blank page when i edit member.php and if i put the code elsewhere no upload button apear... somehow member_multi_upload.html not apear... i tried also to place code inside member.html and it shows something but not working... my script is 1.7.6. and my page www.pulsarmedia.eu

my member.php


Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #11 on: August 17, 2012, 04:33:48 PM »
Hi!

you create the js folder (step.1)in the template folder, and not in root.

mfg Andi

Offline relu

  • Newbie
  • *
  • Posts: 44
    • View Profile
    • Pulsarmedia
Re: [Mod] Multiupload with jQuery
« Reply #12 on: August 17, 2012, 06:34:10 PM »
i did in root also  /js/multiupload &  template/js/multiupload  also in (root/js/js/multiupload  template/js/js/multiupload) to be shure :P  i think is something else...

Rembrandt

  • Guest
Re: [Mod] Multiupload with jQuery
« Reply #13 on: August 17, 2012, 06:46:44 PM »
hm.. try this, deactivate on your site:
Code: [Select]
<script type="text/javascript" src="./templates/fantasy/js/jquery.min.js"></script>
call the "jquery.min" only one time on your website.

perhaps it does not work with the SEO mod

Offline relu

  • Newbie
  • *
  • Posts: 44
    • View Profile
    • Pulsarmedia
Re: [Mod] Multiupload with jQuery
« Reply #14 on: August 18, 2012, 10:43:52 AM »
i just removed the other  jQuery and also i disabled the SEO Mod replacing session.php ... and the same page and nothing happens... anyways i see if i place the content from member_multi_upload.html inside member.html it sows upload button and i can make upload but not really uploading images... i think is just animation and after no editing page is displayed. In my opinion member_multi_upload.html and member_multi_uploadform.html is not called in my case. When i check source code isn't any code from these two files... i can't figure out why... member.php has the code for that and if i place your mod code above if ($action == "emailuser") { (step.10)  i get only a blank white page. right now code for member php is above... ?>  if you have an working copy of member.php i will try to replace mine... maybee somebody has modified files (member.php,functions.php) from a working mod.

you can see my multiupload page here after i press the button...  http://www.pulsarmedia.eu/member.php?action=multi_upload&cat_id=23