function showLinkForResult($row, $icon = true, $table = false, $no_link = false) { global $CFG; if (!$row['url']) { $image_sizes = DB::getImageSizes($row['field_name']); $dir = !$row['dir'] ? $CFG->default_upload_location : $row['dir']; if (in_array($row['ext'], $CFG->accepted_image_formats)) { foreach ($image_sizes as $size => $dims) { $suffix = $size; } $suffix = '_' . $suffix; } $url = File::fileExists($row['name'] . $suffix . '.' . $row['ext'], $dir, $table); if (!$url) { return '<span class="error">File ' . $row['old_name'] . ' not found.</span>'; } $file_icon = $icon ? File::showExtIcon($row['ext']) : false; if (!$no_link) { return "{$file_icon} <a target=\"_blank\" href=\"{$url}\">{$row['old_name']}</a>"; } else { return "{$file_icon} {$row['old_name']}"; } } else { return File::showUrl($row['url'], $icon); } }
function fileInput($name, $caption = false, $required = false, $permitted_ext = false, $max_size = false, $dir = false, $image_sizes = false, $amount = 0, $id = false, $class = false, $jscript = false, $style = false, $crop_images = false, $no_url = false, $encrypt = false, $allow_descriptions = 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, 'fileInput'); } $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\"><input type=\"hidden\" class=\"file_list_name\" id=\"file_list_" . $name . "\" value=\"" . $name . "\" />"; $dir = $dir ? $dir : $CFG->default_upload_location; $permitted_ext = $permitted_ext ? $permitted_ext : $CFG->accepted_file_formats; $amount = $amount > 0 ? $amount : 12; $jscript = self::parseJscript($jscript, $id, $j, $grid_input); $outside_jscript = strstr($jscript, 'outside|') ? '<script type="text/javascript">' . str_replace('outside|', '', $jscript) . '</script>' : false; $jscript = strstr($jscript, 'outside|') ? false : $jscript; $i = 0; if ($this->record_id) { $files = DB::getFiles($this->table . '_files', $this->record_id, $name); if ($files) { $c = count($files); foreach ($files as $file) { $HTML .= '<li id="' . $i . '">'; $HTML .= File::showLinkForResult($file, false, $this->table, $encrypt); if ($allow_descriptions) { $HTML .= '<div class="file_desc" onclick="fieldZoomIn(\'file_desc__' . $this->table . '_' . $file['id'] . '\',\'textarea\',\'' . urlencode($CFG->gallery_desc_label) . '\')"><img class="' . ($file['file_desc'] ? 'opaq' : '') . '" src="' . $CFG->gallery_desc_icon . '" title="' . ($file['file_desc'] ? $file['file_desc'] : $CFG->gallery_desc_tooltip) . '"/><input type="hidden" id="file_desc__' . $this->table . '_' . $file['id'] . '" name="file_descs[' . $file['id'] . ']" value="' . $file['file_desc'] . '" /></div>'; } $HTML .= $c > 1 ? '<a href="#" title="' . $CFG->move_hover_caption . '" class="file_move"></a>' : false; $HTML .= "<input type=\"hidden\" name=\"attached_file_fields[]\" value=\"{$name}\" />"; $HTML .= '<input type="hidden" name="file_order[]" value="' . $file['id'] . '" />'; 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>'; $i++; } } } 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++; $HTML .= '<li>'; $HTML .= File::showLink($v, $CFG->temp_file_location, false, $encrypt); if ($allow_descriptions) { $HTML .= '<div class="file_desc" onclick="fieldZoomIn(\'file_desc__' . $this->table . '_' . $k . '\',\'textarea\',\'' . urlencode($CFG->gallery_desc_label) . '\')"><img src="' . $CFG->gallery_desc_icon . '" title="' . $CFG->gallery_desc_tooltip . '"/><input type="hidden" id="file_desc__' . $this->table . '_' . $k . '" name="file_descs_temp[' . $k . ']" value="' . $this->temp_descs[$k] . '" /></div>'; } $HTML .= "<input type=\"hidden\" name=\"temp_files[{$k}]\" value=\"{$v}\" />\n\t\t\t\t\t<a title=\"{$CFG->delete_hover_caption}\" onclick=\"formDeleteTemp(this,'{$v}')\" class=\"delete\"></a>"; $HTML .= '</li>'; } } } if (!$this->record_id) { if (is_array($this->urls)) { foreach ($this->urls as $k => $v) { if (is_array($v)) { foreach ($v as $j => $v1) { if (stristr($k, $name) && !empty($v1)) { $i++; $HTML .= '<li>'; $HTML .= File::showUrl($v1); $HTML .= "<input type=\"hidden\" name=\"urls[{$k}][{$j}]\" value=\"" . htmlentities($v1) . "\" /> <a title=\"{$CFG->delete_hover_caption}\" onclick=\"formDeleteTemp(this)\" 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'; } $reproduction_script = 'onchange="fileInputReproduce(this,' . $amount . ',0,\'' . $CFG->gallery_desc_tooltip . '\')"'; $reproduction_script1 = 'onblur="fileInputReproduce(this,' . $amount . ',1,\'' . $CFG->gallery_desc_tooltip . '\')"'; if ($amount > 0) { $c = count($this->urls) + count($this->temp_files) + count($files); $hidden = $c >= $amount ? 'hidden' : false; $HTML .= ' <li class="' . $hidden . '"> <div class="file_input_container"> <input type="hidden" class="amount" value="' . $amount . '" /> <input type="text" name="cover" class="input_cover" value="" /> <input type="button" name="cover_button" class="input_cover_button" value="' . $CFG->file_input_button . '" /> <input type="file" name="' . $this->name . '[' . $name_n . ']" value="' . $value . '" id="' . $this->name . '_' . $id . '" ' . $reproduction_script . ' ' . $class . ' ' . $jscript . ' ' . $style . ' /> </div>'; if (!$no_url) { $HTML .= "<label class=\"file_label\">{$CFG->alt_url_label}</label><input type=\"text\" class=\"file_url\" name=\"urls[{$name}][{$i}]\" value=\"{$value}\" id=\"{$this->name}_{$id}\" {$reproduction_script1} />"; } if (is_array($permitted_ext)) { foreach ($permitted_ext as $ext) { $HTML .= "<input type=\"hidden\" name=\"files[{$name}][exts][]\" value=\"{$ext}\" />"; } } elseif ($permitted_ext) { $HTML .= "<input type=\"hidden\" name=\"files[{$name}][exts][]\" value=\"{$permitted_ext}\" />"; } if ($max_size) { $HTML .= "<input type=\"hidden\" name=\"files[{$name}][max_size]\" value=\"{$max_size}\" />"; } if ($dir) { $HTML .= "<input type=\"hidden\" name=\"files[{$name}][dir]\" value=\"{$dir}\" />"; } if ($custom_image_sizes) { $HTML .= "<input type=\"hidden\" name=\"image_sizes[{$name}]\" value=\"{$custom_image_sizes}\" />"; } if ($crop_images) { $HTML .= "<input type=\"hidden\" name=\"crop_images[{$name}]\" value=\"{$crop_images}\" />"; } if ($encrypt) { $HTML .= "<input type=\"hidden\" name=\"encrypt_files[{$name}]\" value=\"1\" />"; } if ($allow_descriptions) { $HTML .= '<div class="file_desc" onclick="fieldZoomIn(\'file_desc__' . $this->table . '_' . $i . '\',\'textarea\',\'' . urlencode($CFG->gallery_desc_label) . '\')"><img class="hack fdesk_img" src="' . $CFG->gallery_desc_icon . '" title="' . $CFG->gallery_desc_tooltip . '"/><input type="hidden" id="file_desc__' . $this->table . '_' . $i . '" class="fdesk" name="file_descs_new[' . $name_n . ']" value="" /></div>'; } $HTML .= '<a href="#" title="' . $CFG->delete_hover_caption . '" onclick="multipleRemoveInput(this);" class="delete"></a><div class="clear"></div></li>'; } $HTML .= '<div class="clear"></div></ul>' . $outside_jscript; $this->HTML[] = $HTML; $this->enctype = 'enctype="multipart/form-data"'; }