Ich habe das Modul Dateiwähler von chobbert für contenido 4.4 überarbeitet...
@chobbert: ich habe bewußt auf die Hervorhebung Deines Orginaltextes per Zitat verzichtet,
da sich an fast allen Stellen Feinheiten verändert haben.
Damit kann man die URL eines Bildes oder eines Videos aus den Upload-Ordnern von Contenido
in das Text-Eingabefeld eines Moduls zu schreiben.
Dazu brauch man zum ersten eine Datei (zu speichern unter /contenido/choose_pics.php):
Code: Alles auswählen
<?
/* choose_pics.php
* zum Auswählen von Bild-, Flash- und Quicktime-Dateien und der Übertragung des Wertes in ein Textfeld
* benötigt Internet Explorer ab Version 5.0
*
* Vorige Version (0.8):
* Autor: Robert Strouhal
* Datum: 14.08.2003
*
* Aktuelle Version (0.9) getestet mit contenido 4.4.0
* Autor: Jumar
* Datum: 27.10.2003
*
* Neue Funktionen:
* - Diese Erweiterung kann mehrfach in einem Template eingebaut werden
* - Dateien können wie in der Dateiverwaltung sortiert werden
* (diese Funktion ist der contenido-Dateiverwaltung entnommen)
* - Dateien (sofern es Bilder sind) können wie in der Dateiverwaltung
* in Orginalgrösse angesehen werden (Pop-Up-Fenster; diese Funktion
* ist der contenido-Dateiverwaltung entnommen)
* - Dateien (sofern es Bilder sind) werden automatisch in der in der
* config.php angegebenen Größe angezeigt, ansonsten max. 100 hoch und 100 breit
*
*****************
*
* Verwendung:
* übeträgt den Namen der ausgewählten Datei in ein Textfeld innerhalb der Datei,
* die das PopUP mit dem Datei-Auswähler geöffnet hat.
*
*
* Wenn man diese Funktionalität in einem Modul einsetzen will,
* muß man ein Textfeld um folgendes erweitern
* (alle Zeilenumbrüche aus dem Code entfernen!!!):
* onClick="window.open('choose_pics.php?client=<?=$client;?>
* &form='+this.name+'&getwidth=0&type=','PicSelector','toolbar=no,
* location=no,directories=no,status=no,menubar=no,scrollbars=yes,
* resizable=yes,height=450,width=500,left=10,top=10');">
*
*
* Ein Textfeld sollte dann z.B. so lauten (alle Zeilenumbrüche aus dem Code entfernen!!!):
* <input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]"
* onClick="window.open('choose_pics.php?client=<?=$client;?>
* &form='+this.name+'&getwidth=0&type=','PicSelector','toolbar=no,
* location=no,directories=no,status=no,menubar=no,scrollbars=yes,
* resizable=yes,height=450,width=500,left=10,top=10');">
*
*
*
* Die drei Parameter der Funktion openPicSelector bedeuten:
*
* 1. this.name -> darf nicht verändert werden, beinhaltet den Namen des Eingabefeldes
* 2. getwidth -> die Breite der gesuchten Bilder,
* bei 0 werden Bilder unabhängig von Ihrer Breite angezeigt
* 3. type -> beschränkt die Suche auf bestimmte Dateitypen;
* möglich sind: 'jpg', 'gif', 'png', swf', 'mov'; wenn es leergelassen wird, werden alle Dateitypen angezeigt
****
*/
include_once ('./includes/config.php');
include_once ($cfg["path"]["classes"] . 'class.plugin.php');
include_once ($cfg["path"]["classes"] . 'class.xml.php');
include_once ($cfg["path"]["classes"] . 'class.navigation.php');
include_once ($cfg["path"]["classes"] . 'class.template.php');
include_once ($cfg["path"]["classes"] . 'class.backend.php');
include_once ('./includes/functions.upl.php');
if(!$sort) $sort="filename";
switch ($sort) {
case "fileasc" : $sort="filename asc";
break;
case "filedesc" : $sort="filename desc";
break;
case "descriptionasc" : $sort="description asc";
break;
case "descriptiondesc" : $sort="description desc";
break;
case "sizeasc" : $sort="size asc";
break;
default : $sort="filename asc";
}
?>
<html>
<head>
<title>Bild auswählen</title>
<link rel="stylesheet" type="text/css" href="<? print $cfg["path"]["contenido_fullhtml"] . $cfg["path"]["styles"] ?>contenido.css">
<script type="text/javascript">
function uplSort(selObj)
{
var url = 'choose_pics.php?client=<?=$client?>&form=<?=$form?>&getwidth=<?=$getwidth?>&type=<?=$type?>&folder=<?=$folder?>';
var i = selObj.selectedIndex;
var sortkey = selObj.options[i].value;
window.location.href = url + '&sort=' + sortkey;
}
function iZoom(path, defaultWidth, defaultHeight)
{
//var defaultWidth = 640;
//var defaultHeight = 480;
var xwin = parseInt((screen.availWidth / 2) - (defaultWidth / 2));
var ywin = parseInt((screen.availHeight / 2) - (defaultHeight / 2));
zwin = window.open("","","left="+xwin+",top="+ywin+",width=" + defaultWidth + ",height=" + defaultHeight + "\"");
zwin.moveTo(xwin,ywin);
zcon = "<html>\n<head>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/contenido.css\" /><title></title>\n</head>\n";
zcon += "<body leftmargin=\"0\" topmargin=\"0\"><table width=\"100%\" height=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td valign=\"top\" align=\"center\" valign=\"middle\">";
zcon += "<body self.moveTo((screen.availWidth / 2) - (defaultWidth / 2 + 5),(screen.availHeight / 2) - (defaultHeight / 2 + 20))\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\n";
zcon += "<a class=\"text_medium\" href=\"javascript:self.close()\"><img name=\"zimg\" src=\""+path+"\" border=\"0\" alt=\"schliessen\"><br>schliessen</a>\n";
zcon += "</td></tr></table></body>\n</html>";
zwin.document.open();
zwin.document.write(zcon);
zwin.document.close();
}
</script>
</HEAD>
<BODY MARGINHEIGHT=0 MARGINWIDTH=0 LEFTMARGIN=0 TOPMARGIN=0>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr style="background-color: #C6C6D5; height: 18px">
<td style="font-family: Arial; font-size: 10pt; color: #00000; font-weight: bold;"> Bild auswählen</td>
<td style="font-family: Arial; font-size: 10pt; color: #00000; font-weight: bold;" align="right">
Dateisortierung: <!-- Generated by Contenido 4.4.0-->
<select id="{ID}" name="sort" class="text_medium" onchange="uplSort(this)">
<option value="fileasc" >Dateiname A-Z</option>
<option value="filedesc" >Dateiname Z-A</option>
<option value="descriptionasc" >Beschreibung A-Z</option>
<option value="descriptiondesc" >Beschreibung Z-A</option>
<option value="sizeasc" >Dateigrösse</option>
</select>
</td>
</tr>
<tr style="background-color: #747488; height: 1px">
<td colspan="2"><img src="images/spacer.gif" width="1" height="1"></td>
</tr>
</table>
<?
// Create Contenido classes
$db = new DB_Contenido;
if (!$folder){
$folder = "bilder/";
}
if (!$type){
$sql="SELECT DISTINCT dirname FROM ".$cfg["tab"]["upl"]." WHERE idclient='$client' AND (filetype='jpg' OR filetype='gif' OR filetype='png') order by $sort";
}else{
$sql="SELECT DISTINCT dirname FROM ".$cfg["tab"]["upl"]." WHERE idclient='$client' AND (filetype='$type') order by $sort";
}
$db->query($sql);
echo "<br><table width=\"400\" cellspacing=\"0\" cellpadding=\"3\" border=\"0\" style=\"border:0px; border-left:1px; border-top: 1px;border-color: #747488; border-style: solid;\">\n";
echo "<tr style=\"background-color: #a9aec2\">\n";
echo "<td style=\"font-family: Arial; font-size: 10pt; border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\">";
echo "Ordner auswählen:\n";
echo "</td>\n";
echo "<td style=\"font-family: Arial; font-size: 10pt; border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\">";
echo "<select style=\"font-size: 9pt;\" name=\"folders\" onChange=\"document.location.search = document.location.search+'&folder='+this.value\">";
while($db->next_record()){
echo "<option value=\"".$db->f("dirname")."\" ";
if ($folder == $db->f("dirname")){
echo " selected ";
}
echo ">".$db->f("dirname")."</option>\n";
}
echo "</select></td>\n";
echo "<td style=\"font-family: Arial; font-size: 10pt; border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\"> </td>\n";
echo "</tr>\n";
$sql = "SELECT * FROM ".$cfg["tab"]["upl"]." WHERE idclient='$client' AND dirname='".$folder."'";
if (!$type){
$sql .= " AND (filetype='jpg' OR filetype='gif' OR filetype='png' OR filetype='swf' OR filetype='mov') order by $sort";
}else{
$sql .= " AND (filetype='$type') order by $sort";
}
$db->query($sql);
while($db->next_record()){
if(!is_int($type))
{
switch ($type){
case "gif": $type=1; break;
case "jpg": $type=2; break;
case "png": $type=3; break;
case "swf": $type=4; break;
case "mov": $type=5; break;
case "": $type = 0; break;
}
}
if ($type != 5){
$imgsize = getimagesize("../cms/upload/".$folder.$db->f("filename"));
$width = $imgsize[0];
$height = $imgsize[1];
$filetype = $imgsize[2];
}
elseif ($type == 5){
require_once "includes/getid3/getid3.php";
$imgSize = GetAllFileInfo("../cms/upload/".$folder.$db->f("filename"));
$width = $imgSize["video"]["resolution_x"];
$height = $imgSize["video"]["resolution_y"];
$filetype = 5;
}
if ((($width == $getwidth) || ($getwidth == 0)) && (($filetype==$type) || ($type==0))){
if (isset($con_cfg['thumb']['width']) && isset($con_cfg['thumb']['height']))
{
if($width<=$height && $height > $con_cfg['thumb']['height'])
{
$ratio = ($con_cfg['thumb']['height']/$height);
$width2 = $ratio*$width;
$height2 = $con_cfg['thumb']['height'];
}
elseif($width>$height && $width > $con_cfg['thumb']['width'])
{
$ratio = ($con_cfg['thumb']['width']/$width);
$width2 = $con_cfg['thumb']['width'];
$height2 = $ratio*$height;
}
}
elseif($width<=$height && $height > 100)
{
$ratio = (100/$height);
$width2 = $ratio*$width;
$height2 = 100;
}
elseif($width>$height && $width > 100)
{
$ratio = (100/$width);
$width2 = 100;
$height2 = $ratio*$height;
}
else
{
$width2=$width;
$height2=$height;
}
echo "<tr style=\"background-color: #F4F4F7\">\n";
echo "<td style=\"border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\" >";
if ($filetype < 4){
echo "<a href=\"javascript:iZoom('../cms/upload/".$folder.$db->f("filename")."',".$width.",".($height+20).")\"><img src=\"../cms/upload/".$folder.$db->f("filename")."\" width=".$width2." height=".$height2."></a>";
}
elseif ($filetype == 4){
echo "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0\" width=\"$width2\" height=\"$height2\"><param name=\"movie\" value=\"../cms/upload/".$folder.$db->f("filename")."\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#DBE3EF\"><embed src=\"../cms/upload/".$folder.$db->f("filename")."\" quality=\"high\" bgcolor=\"#DBE3EF\" width=\"$width2\" height=\"$height2\" type=\"application/x-shockwave-flash\" pluginspace=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\"></embed></object>";
}
elseif ($filetype == 5){
echo "<embed src=\"../cms/upload/".$folder.$db->f("filename")."\" type=\"video/quicktime\" pluginspage=\"http://www.apple.com/quicktime/download/\" width=\"".$width2."\" height=\"".$height2."\" volume=0>";
}
echo "</td>\n";
echo "<td style=\"font-family: Arial; font-size: 10pt; border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\">".$db->f("filename");
echo "<br>\n";
echo "<table style=\"font-family: Arial; font-size: 8pt;\">\n";
echo "<tr><td>Beschreibung:</td><td>".$db->f("description")."</td></tr>\n";
if($db->f("size")>=1048576) $size=round($db->f("size")/1048576,2)." MB";
elseif($db->f("size")>=1024) $size=round($db->f("size")/1024,2)." KB";
else $size=$db->f("size")." Bytes";
echo "<tr><td>Dateigrösse:</td><td>".$size."</td></tr>\n";
echo "<tr><td>Bildgrösse: </td><td>".$width."x".$height."</td></tr>\n";
echo "</table>\n";
echo "</td>\n";
echo "<td style=\"font-family: Arial; font-size: 10pt; border: 0px; border-bottom:1px; border-right:1px; border-color: #747488; border-style: solid\"><a href=\"#\" onClick=\"opener.tplcfgform.elements['".$form."'].value='".$folder.$db->f("filename")."'; window.close()\"><img src=\"images/but_ok.gif\" alt=\"Bild auswählen\" border=0></a></td>\n";
echo "</tr>\n";
echo "</tr>\n";
}
}
echo "</table>";
echo "<br><a href=\"#\" onClick=\"opener.tplcfgform.elements['".$form."'].value=''; window.close()\"><img src=\"images/but_cancel.gif\" alt=\"Kein Bild auswählen\" border=0></a>\n";
?>
übeträgt den Namen der ausgewählten Datei in ein Textfeld innerhalb der Datei, die das Pop-Up mit dem Datei-Auswähler geöffnet hat.
Wenn man diese Funktionalität in einem Modul einsetzen will, muß man ein Textfeld um folgendes erweitern (alle Zeilenumbrüche aus dem Code entfernen!!!):
Code: Alles auswählen
onClick="window.open('choose_pics.php?client=<?=$client;?>
&form='+this.name+'&getwidth=0&type=','PicSelector','toolbar=no,
location=no,directories=no,status=no,menubar=no,scrollbars=yes,
resizable=yes,height=450,width=500,left=10,top=10');">
Ein Textfeld sollte dann z.B. so lauten (alle Zeilenumbrüche aus dem Code entfernen!!!):
Code: Alles auswählen
<input type="text" name="CMS_VAR[1]" value="CMS_VALUE[1]"
onClick="window.open('choose_pics.php?client=<?=$client;?>
&form='+this.name+'&getwidth=0&type=','PicSelector','toolbar=no,
location=no,directories=no,status=no,menubar=no,scrollbars=yes,
resizable=yes,height=450,width=500,left=10,top=10');">
1. this.name -> darf nicht verändert werden, beinhaltet den Namen des Eingabefeldes
2. getwidth -> die Breite der gesuchten Bilder,
bei 0 werden Bilder unabhängig von Ihrer Breite angezeigt
3. type -> beschränkt die Suche auf bestimmte Dateitypen;
möglich sind: 'jpg', 'gif', 'png', swf', 'mov'; wenn es leergelassen wird, werden alle Dateitypen angezeigt
Bye,
Jumar