Enfin, le code final de la fonction render() qui fonctionne aussi avec IE.
function render()
{
return "<input type='hidden' name='MAX_FILE_SIZE' value='" . $this->getMaxFileSize() . "' /><input type='file' style='visibility:hidden;height:0px' name='" . $this->getName(). "' id='" . $this->getName(). "' title='" . $this->getTitle() . "'" .$this->getExtra() . " />
<input type='hidden' name='xoops_upload_file[]' id='xoops_upload_file[]' value='" . $this->getName() . "' />
<br><div class='block inline'><input type='text' readonly='readonly' name='" . $this->getName() ."_txt". "' title='" . $this->getTitle() . "' id='" . $this->getName() ."_txt". "' size='" . $this->getSize() . "' maxlength='" . $this->getMaxlength() . '" value="' . $this->getValue() . "'
onclick='javascript:
document.getElementById("" . $this->getName(). "").click();
var inputElement = document.getElementById("" . $this->getName(). "");
if (inputElement.addEventListener){
inputElement.addEventListener("change", handleFiles, false);
} else if (inputElement.attachEvent) {
el.attachEvent("change", handleFiles);
}
function handleFiles() {
var fullPath = document.getElementById("" . $this->getName(). "").value;
document.getElementsByName("" . $this->getName() ."_txt". "")[0].value = fullPath;
}; '/>
<input type='" . $this->getType() . "' class='formButton' name='" . $this->getName() ."_btn". "' id='" . $this->getName() ."_btn". "' value='" . _BROWSE . "' title='" . $this->getValue() . "'
onclick='javascript:
document.getElementById("" . $this->getName(). "").click();
var inputElement = document.getElementById("" . $this->getName(). "");
if (inputElement.addEventListener){
inputElement.addEventListener("change", handleFiles, false);
} else if (inputElement.attachEvent) {
el.attachEvent("change", handleFiles);
}
function handleFiles() {
var fullPath = document.getElementById("" . $this->getName(). "").value;
document.getElementsByName("" . $this->getName() ."_txt". "")[0].value = fullPath;
}; '/></div>";
}
}
Il m'aura fait transpirer jusqu'au bout celui-là