Mit einem Klick in die Dateiverwaltung
Verfasst: Fr 14. Aug 2009, 12:43
So, ich habe es geschafft.
In die Seite, in der der Dateimanager aufgerufen werden soll oben folgendes Script einfügen:
Oben findest du die Variable "fileLoca", die entsprechend deinem System angepasst werden muss:
Wichtig ist hier, dass der parameter contenido= mit dem aktuellen Sessionwert übergeben wird, sonst landest du anstatt im Dateibrowser auf der Loginseite.
In dem Template selbst kann du dann noch den Button integrieren, welcher dei Dateiverwaltung öffnet:
Die Parameter von myCustomFileBrowser sind:
TIPP:
Um die feste Verlinkung rauszunehemen kann auch folgendes gemacht werden:
### 18.09.2009 ###
Hab das Script nochmal verbessert. Nun wird nicht der ganze http://-Pfad übernommen, sondern lediglich nach die relative Verzeichnisstruktur
In die Seite, in der der Dateimanager aufgerufen werden soll oben folgendes Script einfügen:
Code: Alles auswählen
<script type="text/javascript">
var fb_fieldname;
var fb_handle;
var fb_intervalhandle;
var fb_win;
// set in php-file:
// $tpl->set('s','FILEBROWSER_PATH',$cfg['path']['contenido_fullhtml']."frameset.php?area=upl&".$sess->name."=".$sess->id."");
var fileLoca = "{FILEBROWSER_PATH}";
// Übergeben wird: $cfgClient[$client]["htmlpath"]["frontend"];
var frontend_path = '{FRONTEND_PATH}';
/* Pfad relativ machen */
function cutFullpath(html) {
html = html.replace(frontend_path, '');
return html;
}
function myCustomFileBrowser(field_name, url, type, win) {
switch (type)
{
case "image":
fb_handle = window.open(fileLoca+"&appendparameters=imagebrowser", "imagebrowser", "dialog=yes,resizable=yes");
fb_fieldname = field_name;
fb_win = win;
fb_intervalhandle = window.setInterval("updateImageFilebrowser()", 250);
break;
case "file":
fb_handle = window.open(fileLoca+"&appendparameters=filebrowser", "filebrowser", "dialog=yes,resizable=yes");
fb_fieldname = field_name;
fb_win = win;
fb_intervalhandle = window.setInterval("updateImageFilebrowser()", 250);
break;
default:
alert(type);
break;
}
}
function updateImageFilebrowser ()
{
if (!fb_handle.left)
{
return;
}
if (!fb_handle.left.left_top)
{
return;
}
if (!fb_handle.left.left_top.document.getElementById("selectedfile"))
{
return;
}
if (fb_handle.left.left_top.document.getElementById("selectedfile").value != "")
{
// short-Path
html = "./"+fb_handle.left.left_top.document.getElementById("selectedfile").value;
returnPath = cutFullpath(html);
//fb_win.document.forms[0].elements[fb_fieldname].value = fb_handle.left.left_top.document.getElementById("selectedfile").value;
fb_win.document.forms[0].elements[fb_fieldname].value = returnPath;
fb_handle.close();
window.clearInterval(fb_intervalhandle);
}
}
</script>
Code: Alles auswählen
var fileLoca = "http://deineWebadresse/contenido/contenido/frameset.php?area=upl&contenido=<aktuelle_Session>&appendparameters=filebrowser";
In dem Template selbst kann du dann noch den Button integrieren, welcher dei Dateiverwaltung öffnet:
Code: Alles auswählen
<a onmousedown="return false;" href="#" onclick=" myCustomFileBrowser('link_1', '', 'image', self)" id="hrefbrowser_link">Dateiverwaltung</a>
So, dass wars. Ich hoffe das Mühevolle raussuchen und dokumentieren nützt dem ein oder anderen.'link_1' = name des Inputfeldes, das den Rückgabewert aus der Dateiverwaltung erhalten soll
'image' = wählt, mit welchen Parametern die Dateiverwaltung aufgerufen wird (ggf. in der switch-Anweisung anpassen - image ist der image-browser, file ist der Filebrowser)
self = ist eine referenz auf das Fenster aus dem die Dateiverwaltung aufgerufen wurde (darf nicht geändert werden)
TIPP:
Um die feste Verlinkung rauszunehemen kann auch folgendes gemacht werden:
Code: Alles auswählen
// set in php-file:
// $tpl->set('s','FILEBROWSER_PATH',$cfg['path']['contenido_fullhtml']."frameset.php?area=upl&".$sess->name."=".$sess->id."");
var fileLoca = "{FILEBROWSER_PATH}";
Hab das Script nochmal verbessert. Nun wird nicht der ganze http://-Pfad übernommen, sondern lediglich nach die relative Verzeichnisstruktur