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