4images Forum & Community

4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: Rembrandt on August 04, 2013, 07:52:56 PM

Title: [Mod] Upload Form Auto Fill with image drop down field
Post by: Rembrandt on August 04, 2013, 07:52:56 PM
Choose a image name and the upload form is automatically filled.

1.) search in member.php:

if ($action == "uploadform") {

inser above:

if ($action == "autofill") {
  if ($cat_id != 0 && (!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_id, 1).$config['category_separator'];
  }
  $txt_clickstream .= $lang['user_upload'];

  $image_id = (isset($HTTP_POST_VARS['autofill_image_id'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['autofill_image_id']))) : "";
  
  if($image_id){
    $additional_sql = "";
    if (!empty($additional_image_fields)) {
      foreach ($additional_image_fields as $key => $val) {
        $additional_sql .= ", ".$key;
      }
    }

    $sql = "SELECT image_id, cat_id, user_id, image_name, image_description, image_keywords, image_active".$additional_sql."
            FROM ".IMAGES_TABLE."
            WHERE  image_active=1 AND cat_id = $cat_id AND image_id = $image_id";
    $image_row = $site_db->query_firstrow($sql);
 
    $site_template->register_vars(array(
      "image_dropdown_field" => get_image_dropdown_field($cat_id, $image_id),
      "cat_id" => $cat_id,
      "cat_name" => ($cat_id != 0) ? format_text($cat_cache[$cat_id]['cat_name'], 2) : get_category_dropdown($cat_id),
      "image_id" => $image_id,
      "image_name" => format_text($image_row['image_name'], 2),
      "image_description" => format_text($image_row['image_description'], 2),
      "image_keywords" => format_text($image_row['image_keywords'], 2),
      "lang_auto_fill" => $lang['auto_fill'],
      "lang_category" => $lang['category'],
      "lang_user_upload" => $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_max_filesize" =>  $lang['max_filesize'],
      "lang_max_imagewidth" => $lang['max_imagewidth'],
      "lang_max_imageheight" => $lang['max_imageheight'],
      "lang_image_name" => $lang['image_name'],
      "lang_description" => $lang['description'],
      "lang_keywords" => $lang['keywords_ext'],
      "lang_allow_comments" => isset($lang['allow_comments']) ? $lang['allow_comments'] : "",
      "lang_submit" => $lang['submit'],
      "lang_reset" => $lang['reset'],
      "lang_yes" => $lang['yes'],
      "lang_no" => $lang['no'],
      "lang_captcha" => $lang['captcha'],
      "lang_captcha_desc" => $lang['captcha_desc'],
    ));

    if (!empty($additional_image_fields)) {
      $additional_field_array = array();
      foreach ($additional_image_fields as $key => $val) {
        if ($val[1] == "radio") {
          $value = (isset($HTTP_POST_VARS[$key])) ? intval($HTTP_POST_VARS[$key]) : $image_row[$key];
          if ($value == 1) {
            $additional_field_array[$key.'_yes'] = " checked=\"checked\"";
            $additional_field_array[$key.'_no'] = "";
          }
          else {
            $additional_field_array[$key.'_yes'] = "";
            $additional_field_array[$key.'_no'] = " checked=\"checked\"";
          }
        }
        else {
          $value = (isset($HTTP_POST_VARS[$key])) ? format_text(stripslashes(trim($HTTP_POST_VARS[$key]))) : $image_row[$key];
        }
        $additional_field_array[$key] = $value;
        $additional_field_array['lang_'.$key] = $val[0];
      }
      if (!empty($additional_field_array)) {
        $site_template->register_vars($additional_field_array);
      }
    }
    $content = $site_template->parse_template("member_uploadform");
  }
  else{
    $action = "uploadform";
  }
}

1.1) search in section "if ($action == "uploadform") {"

  $site_template->register_vars(array(,
    "cat_id" => $cat_id,

insert below:

    "image_dropdown_field" => get_image_dropdown_field($cat_id,$image_id),
    "lang_auto_fill" => $lang['auto_fill'],


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

 $lang['auto_fill'] = "Formular Automatisch Ausfüllen:<br><span class=\"smalltext\">Wähle einen Bildnamen um das Formular Automatisch auszufüllen.</span>";

(english)

$lang['auto_fill'] = "Choose a image name and the upload form is automatically filled.";


3.) search in includes/function.php "?>" and insert above :

function get_image_dropdown_field($cat_id, $image_id = "") {
  global $site_db, $lang;

  $sql = "SELECT image_id, cat_id, image_name, image_date, image_active
    FROM ".IMAGES_TABLE."
    WHERE image_active = 1 AND cat_id NOT IN (".get_auth_cat_sql("auth_viewcat", "NOTIN").")  AND cat_id = $cat_id
    ORDER BY image_date DESC
    ";
  $result = $site_db->query($sql);
  
  $image_dropdown = "";
  $image_dropdown .= "\n<select name=\"autofill_image_id\" onchange=\"if (this.options[this.selectedIndex].value != 0){ forms['autofill'].submit() }\" class=\"categoryselect\">\n";

  while ($image_row = $site_db->fetch_array($result)){
    $image_dropdown .= "<option value=\"".$image_row['image_id']."\"";
    if($image_row['image_id'] == $image_id) {
      $image_dropdown .= " selected=\"selected\"";
    }
    $image_dropdown .= ">".format_text($image_row['image_name'], 2)."</option>\n";
  }
  $image_dropdown .= "</select>\n";
  return $image_dropdown;
}


4.) search in templates your template/member_uploadform.html:
Code: [Select]
<form method="post" action="{url_member}" enctype="multipart/form-data" onsubmit="uploadbutton.disabled=true;">
insert above:
Code: [Select]
<form method="post" name="autofill" action="{url_member}">
  <input type="hidden" name="action" value="autofill" >
  {if cat_id}<input type="hidden" name="cat_id" value="{cat_id}" />{endif cat_id}
  <input type="hidden" name="image_name" value="{image_name}" />
  <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 class="row1" width="240"><b>{lang_auto_fill}</b></td>
            <td class="row1">{image_dropdown_field}</td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</form>

mfg Andi
Title: Re: [Mod] Upload Form Auto Fill with image drop down field
Post by: Jan-Lukas on August 04, 2013, 08:39:08 PM
Perfekt  :D

Danke
Title: Re: [Mod] Upload Form Auto Fill with image drop down field
Post by: Loda on August 04, 2013, 09:00:06 PM
 :thumbup: :thumbup: :thumbup:
so hatte ich mir das gedacht! Prima! fettes Dankeschön!
Title: Re: [Mod] Upload Form Auto Fill with image drop down field
Post by: Rembrandt on August 04, 2013, 09:12:08 PM
Kein Problem...  :)
Title: Re: [Mod] Upload Form Auto Fill with image drop down field
Post by: Jan-Lukas on August 17, 2013, 12:18:49 AM
@ Andy,
Bitte den Text in english abändern

$lang['auto_fill'] = "Choose a image name and the upload form is automatically filled.";

LG Harald