Up- & Download Modul

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Beitrag von Peer » Do 10. Apr 2008, 16:24

Hallo, das Modul ist super.

Habe aber leider ein kleines Problem.
Ich kann im Backend nicht angeben wo die Daten gespeichert werden können.

Das Drop Down dingen ist leer.

Hat jemand eine Idee wie ich das ändern kann.

Gruß

tinof
Beiträge: 197
Registriert: Mi 24. Jan 2007, 20:38
Wohnort: Kirchberg / Sa.
Kontaktdaten:

Beitrag von tinof » Fr 11. Apr 2008, 09:13

Meinst du das hier

http://www.contenido.org/forum/viewtopi ... 138#100138

Bitte dort einfach weiterlesen,, möglicherweise ist es das PHP4/PHP5 Problem.
Für die Freizeit : www.hobbybrauer.de

notaus
Beiträge: 98
Registriert: Di 13. Dez 2005, 14:18
Kontaktdaten:

Beitrag von notaus » Mi 10. Sep 2008, 10:38

Hi zusammen,

habe das Modul nun für 4.8.7 (PHP5) zum Laufen bekommen, allerdings ein Problem: Ich muss den Upload-Pfad in der INPUT Funktion makeSelect hardcoden, der Pfad aus dem Aufruf $pfad = new pfad(...) wird nicht übegeben. Bin nicht der Supercoder, Hilfe wäre toll!

Hier mein Code:

Input:

Code: Alles auswählen

?><?php
/**************************************
CMS_VAR[1]: Administratoren
CMS_VAR[2]: Uploadgrenze Admins
CMS_VAR[3]: Uploadgrenze Nicht-Admins
CMS_VAR[4]: Upload-Ordner auswählen
CMS_VAR[5]: Löschberechtigte User
CMS_VAR[6]: Anzeige der Zeichen des Dateinamen
CMS_VAR[7]: Nicht-Admins Downloadliste sehen
CMS_VAR[8]: Nicht-Admins Upload sehen
CMS_VAR[9]: Fehlermeldung wenn Ordner leer
CMS_VAR[10]: Breite der Tabelle in Pixel
**************************************/

cInclude('classes', 'class.frontend.users.php');

$oFEUsers = new FrontendUserCollection;
$oFEUsers->setOrder("FrontendUserCollection.username");
$oFEUsers->query();
$oFEUsers2 = new FrontendUserCollection;
$oFEUsers2->setOrder("FrontendUserCollection.username");
$oFEUsers2->query();

unset($aData);
$aData = array();


/* VERSION FÜR PHP5 *********************************/ 
class pfad { 

   function getPath($root,$level = 0) { 
      $content = $this->readDir($root); 

      foreach ($content as $file) { 
         if (is_dir($root.$file)) { 
            $verzeichnis = substr($root,$this->pathlen); 
            $returnvalue["{$verzeichnis}{$file}/"] = str_repeat("&nbsp;",$level * 5).$file; 
            //$returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1)); 
            $subdirs=$this->getPath($root.$file."/",$level+1); 
            if ($subdirs != NULL) { 
               $returnvalue = $returnvalue + $subdirs; 
            } 
         } 
      } 

      return $returnvalue; 
   } 
/******************************************************/ 


   function readDir($path) { 
      $handle = opendir($path); 

      while ($file = readdir ($handle)) { 
         if ($file != "." && $file != "..") $returnvalue[] = $file; 
      } 
      closedir($handle); 

      return $returnvalue; 
   } 
 



   function makeSelect($preselection) {

      $pfad = $this->getPath("E:/dev/HTDOCS/Sites/cms/upload/");

      foreach ($pfad as $key => $value) {
         if ($preselection == $key) {
            echo "<option value=\"$key\" selected=\"selected\">$value</option>";
         } else {
            echo "<option value=\"$key\">$value</option>";
         }
      }
   }
}
$pfad = new pfad($cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"]);

if ("CMS_VALUE[7]" == 1) {$cb7 = " checked";} else {$cb7 = "";}
if ("CMS_VALUE[8]" == 1) {$cb8 = " checked";} else {$cb8 = "";}

echo '<table cellspacing="0" cellpadding="0" width="600">
	<tr>
         	<td>Administratoren (Frontend-User): </td>
                 <td><textarea name="'."CMS_VAR[1]".'" class="textbox" cols="20" rows="5" wrap="virtual">'."CMS_VALUE[1]".'</textarea></td>
                 <td><select name="admins" size="6" onclick="insertTxt(\'' . "CMS_VAR[1]" . '\',this.form.admins.options[this.form.admins.selectedIndex].value)">'; 
                    while ($oFEUser = $oFEUsers->next()) {
                             $username=$oFEUser->get("username");
                             echo '<option value="'.$username.'">'.$username."</option>";
                       } 
                 echo '</select></td>
         </tr>
	<tr bgcolor="#cccccc">
         	<td>Uploadgrenze Nicht-Admins: </td>
                 <td colspan="2"><input type="text" name="'."CMS_VAR[2]".'" value="'."CMS_VALUE[2]".'" class="textbox"> MB</td>
         </tr>
	<tr>
         	<td>Uploadgrenze für Admins:</td>
                 <td colspan="2"><input type="text" name="'."CMS_VAR[3]".'" value="'."CMS_VALUE[3]".'" class="textbox"> MB</td>
         </tr>
	<tr bgcolor="#cccccc">
         	<td>Fehlermeldung, wenn Ordner leer:</td>
                 <td colspan="2"><input type="text" name="'."CMS_VAR[9]".'" value="'."CMS_VALUE[9]".'" style="width:300px;" class="textbox"></td>
         </tr>
	<tr>
         	<td>Breite der Tabelle in Pixel:</td>
                 <td colspan="2"><input type="text" name="'."CMS_VAR[10]".'" value="'."CMS_VALUE[10]".'" class="textbox"></td>
         </tr>
	<tr bgcolor="#cccccc">
         	<td>Uploadordner auswählen: </td>
                 <td colspan="2"><select size="1" name="'."CMS_VAR[4]".'" />';
		$pfad->makeSelect("CMS_VALUE[4]");
		echo '</select></td>
         </tr>
         <tr>
            <td>Löschberechtigte User: </td>
                 <td><textarea name="'."CMS_VAR[5]".'" class="textbox" cols="20" rows="5" wrap="virtual">'."CMS_VALUE[5]".'</textarea></td>
                 <td><select name="dels" size="6" onclick="insertTxt(\'' . "CMS_VAR[5]" . '\',this.form.dels.options[this.form.dels.selectedIndex].value)">';
                    while ($oFEUser = $oFEUsers2->next()) {
                             $username=$oFEUser->get("username");
                             echo '<option value="'.$username.'">'.$username."</option>";
                       }
                 echo '</select></td>
         </tr> 
	<tr bgcolor="#cccccc">
         	<td>Angezeigte Zeichen der Dateinamen: </td>
                 <td colspan="2"><input type="text" name="'."CMS_VAR[6]".'" value="'."CMS_VALUE[6]".'" class="textbox"></td>
         </tr>
	<tr>
         	<td>Nicht-Admins dürfen Downloadliste sehen: </td>
                 <td colspan="2"><input type="checkbox" name="'."CMS_VAR[7]".'" value="1"'.$cb7.'></td>
         </tr>
	<tr bgcolor="#cccccc">
         	<td>Nicht-Admins dürfen Upload sehen: </td>
                 <td colspan="2"><input type="checkbox" name="'."CMS_VAR[8]".'" value="1"'.$cb8.'></td>
         </tr>
</table>';



echo "<script language=\"JavaScript\">

function insertTxt(ctlname, theText) {

       ctl=document.getElementsByName(ctlname)[0];

        if (ctl.value == '') {
                ctl.value = theText;
        } else {
                ctl.value += ', ' + theText;
        }
        ctl.focus();
}

</script>\n";
?><?php
Output:

Code: Alles auswählen

<?php

if (isset($_POST['loadfile'])) {
	//echo '<meta http-equiv="refresh" content="0; URL='.$cfg['path']['contenido_fullhtml'].'../'.$_POST[file_path].'">';
        echo '<meta http-equiv="refresh" content="0; URL='.$cfgClient[$client]["htmlpath"]["frontend"].$_POST[file_path].'">';
}

$buttonstyle1 = "width:250px;height:20px;"; // Button 1
$buttonstyle2 = "width:100px;height:20px;margin-left:10px;"; // Button 2
$headcolor = "background-color:#eeeeee;padding:2px;"; // Tabellenkopf

$username="";
$adminname="";
$deluser="";

if (strip_tags($_GET[idcat])!="" || strip_tags($_GET[idcat])!=0) {
	$idcat=strip_tags($_GET[idcat]);
	$catpath="idcat=".$idcat;
}

if (strip_tags($_GET[idcatart])!="" || strip_tags($_GET[idcatart])!=0) {
	$idcatart=strip_tags($_GET[idcatart]);
	$catpath="idcatart=".$idcatart;
}

if (strip_tags($_GET[idart])!="" || strip_tags($_GET[idart])!=0) {
	$idart=strip_tags($_GET[idart]);
	$catpath="idart=".$idart;
}

$foldererror="<br clear=\"all\"/>"."CMS_VALUE[9]";
$tablewidth="CMS_VALUE[10]";

function cut($text, $length) {
        $dec = array("\"", "'", "\\", '\"', "\'", "<", ">");
        $enc = array(""", "'", "\", """, "'", "<", ">");
        $text = str_replace($enc, $dec, $text);
        if (strlen($text) > $length) {
                $text = substr($text, 0, ($length-3))."...";
        }
        $text = str_replace($dec, $enc, $text);
        return $text;
}

$path="CMS_VALUE[4]";

$username=$auth->auth['uname'];

$delpool="CMS_VALUE[5]";
$treffer_del = substr_count($delpool, $username);
if ($treffer_del==1) {
	$deluser=$username;
}

$adminpool="CMS_VALUE[1]";
$treffer_admin = substr_count($adminpool, $username);
if ($treffer_admin==1) {
	$adminname=$username;
}

if ($username==$adminname) {
	$max_filesize_mb="CMS_VALUE[3]";
} else {
	$max_filesize_mb="CMS_VALUE[2]";
}

$max_filesize=bcmul($max_filesize_mb,1000000);

function parseByteSize($size,$digits=2,$dir=false){
        $kb=1024; $mb=1024*$kb; $gb=1024*$mb; $tb=1024*$gb;
        if(($size==0)&&($dir)){return "Empty";}
        else if($size<$kb){return $size." Bytes";}
        else if($size<$mb){return round($size/$kb,$digits)." KB";}
        else if($size<$gb){return round($size/$mb,$digits)." MB";}
        else if($size<$tb){return round($size/$gb,$digits)." GB";}
        else{return round($size/$tb,$digits)." TB";}
}


if ($step=="delete" && $username=="$adminname") {
      unlink($path.$filename);
}


if (isset($_POST['uploadfile'])) {
	$fileext = $_FILES['myfile']['type'];
	$filename = $_FILES['myfile']['name'];
   	$filesize = $_FILES['myfile']['size'];
	$filetemp = $_FILES['myfile']['tmp_name'];
	if ($filesize > $max_filesize) {
		$error = "<b>Die Datei ist mit $filesize Bytes größer als $max_filesize_mb MB.</b>";
	}
	if ($error == "") {
         	move_uploaded_file($filetemp, $path."$filename");
         	chmod($path."$filename",0664);
         	echo "<font color=red><b>Die Datei wurde erfolgreich hochgeladen.</b></font><br>";
        } else {
 		echo "$error";
        }
}
$show_upload="CMS_VALUE[8]";
if ($show_upload==1 || $username==$adminname) {
	echo "<div><form name=\"uploadform\" method=\"post\" action=\"$PHP_SELF?".$catpath."\" enctype=\"multipart/form-data\">
         <div>Datei:<br /><input type=\"file\" name=\"myfile\" class=\"button\"><input type=\"submit\" name=\"uploadfile\" value=\"hochladen\" class=\"button\">
	</form></div>
         <div style=\"margin-bottom:5px;\">Dateien dürfen maximal <strong style=\"color:#ff0000;\">$max_filesize_mb MB</strong> groß sein!<br />
	<strong>Bitte nur virengescannte Dateien hochladen!</strong></div></div>";
}

$show_list="CMS_VALUE[7]";

if ($show_list==1 || $username==$adminname) {
	$handle=opendir($path);
         while ($file = readdir($handle)){
	        if ($file!='.' && $file!='..' && $file!='/') {
	                if (!@opendir($path.$file)==true) {
		        	$file_list[] = $file;
	                }
	        }
         }
	closedir($handle);
         @sort($file_list);

         if ($file_list!="") {
	         echo "<div style='padding-top:20px;'><table align='left' width='".$tablewidth."' class='content' cellspacing='1' border='1' cellpadding='1' style='border-collapse: collapse; background:#bbbbbb;'>
	         <tr style='$headcolor'>
	         <td style='$headcolor'>Dateiname</td>
	         <td style='$headcolor'>Größe</td>
	         <td style='$headcolor'>Aktion</td>";

	         if ($username==$deluser) echo "<td><span style=\"color:#ff0000;\">löschen</span></td>";

	         echo "</tr>";
	         for ($count=0;$file_list[$count]!="";$count++) {
	                 echo '<tr style="background-color:#ffffff;" onmouseover="this.style.backgroundColor = #dddddd" onmouseout="this.style.backgroundColor = #ffffff">
	                 <td style="padding:2px;"><a href="'.$path.$file_list[$count].'" target="_blank" title="Rechtsklick für Download">'.cut($file_list[$count],"CMS_VALUE[6]").'</a></td>
	                 <td style="padding:2px;">'.parseByteSize(@filesize($path.$file_list[$count]),2,false).'</td>
	                 <!--<td style="padding:2px;"><a href="'.$path.'$file_list[$count]" target="_blank"><nobr>öffnen | speichern</nobr></a></td>-->
	                 <td style="padding:2px;">
	                         <form action="" method="post" style="margin:0px;">
	                         <input type="hidden" value="'.$path.$file_list[$count].'" name="file_path"></input>
	                         <input type="submit" name="loadfile" class="button" value="herunterladen"></input>
	                         </form>
	                         </td>';

	                  if ($username==$deluser) {
	                           echo "<td><a href='$PHP_SELF?idcat=$idcat&step=delete&filename=$file_list[$count]' target='_self'>löschen</a></td>";
	                  }
	                  echo "</tr>";
	         }
	         echo "</table></div><br clear=\"all\" />";
         } else {
         	echo $foldererror;
         }
}
?>

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Beitrag von Dinkel » Fr 12. Sep 2008, 07:38

Daran saß ich auch die letzten Tage über. Ich habe eine neue Version des Moduls fertig, muss sie aber noch für 4.8.8 fixen. Heute oder morgen werde ich dazu hier eine Aktualisierung rein schreiben.
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Neue Version 2.4

Beitrag von Dinkel » Fr 12. Sep 2008, 08:32

So, die Version 2.4 ist fertig. Wie immer in der SIG.
Getestet habe ich mit Contenido 4.6.15 ModRewrite, 4.6.24, 4.8.7 und 4.8.8.
Da ich kein PHP4 mehr nutze, sollte es vielleicht noch jemand testen, der PHP4 hat, ob da auch alles geht ;-)
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

SunsetSonny
Beiträge: 10
Registriert: Sa 13. Sep 2008, 09:09
Wohnort: Berlin
Kontaktdaten:

Beitrag von SunsetSonny » Sa 13. Sep 2008, 09:21

Hallo zusammen,

ich bin ein absoluter contenido Neuling und auch kein Coder. Ich möchte aber für meine Arbeit gerne ein Problem lösen:

Wir veranstalten regelmäßig Seminare, Fachkonferenzen, .... Die Referenten lassen uns ca. eine Woche vorher die Vorträge als .ppt zukommen. Da viele Referenten sehr große .ppt Dateien erstellen, ist die Lösung die Vorträge per Mail zu versenden nicht optimal. Nähere Infos findet ihr unter www.obladen.de

Ich habe das Modul von Dinkel installiert und finde es klasse, aber es scheint für mein Vorhaben nicht geeignet zu sein, da dieses Modul bei größeren Dateien einfach mit dem Upload abbricht. (Sowohl bei FF als auch beim IE).

Hat einer einen Tipp für mich, wie ich auch größeren Dateien hochladen kann (bis zu 500 MB)?

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Beitrag von Dinkel » Sa 13. Sep 2008, 10:16

Vielleicht musst Du Deine PHP-Einstellungen anpassen? Wenn der Server nach 2MB oder nach 8MB sagt, jetzt ist Schluss, dann bricht der Upload ab.
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

SunsetSonny
Beiträge: 10
Registriert: Sa 13. Sep 2008, 09:09
Wohnort: Berlin
Kontaktdaten:

Beitrag von SunsetSonny » Sa 13. Sep 2008, 11:15

Vielen Dank Dinkel für die schnelle Hilfe. Ich habe die PHP Einstellungen bei meinem Provider geändert. Die maximale Uploadgröße stand auf 8MB (hätte ich auch vorher drauf kommen können :? ).

Ich schaffe jetzt auch größere Dateien hochzuladen, aber ab einer Größe von ca. 15-20MB hört er trotzdem auf. Grund hiefür scheint die maximale PHP Ausführungszeit zu sein. Ich habe nur die Befürchtung, wenn ich die Zeit hochsetzte, dass das für andere Teile der Page nicht die optimale Lösung ist.

Ich werde noch ein bisschen weiter tüfteln, aber wenn jemanden etwas einfällt, wie ich das mit der maximalen Ausführungszeit elegater lösen könnte, wäre ich sehr dankbar.

Nachtrag:
Trotz der Erhöhung der maximalen Ausführungszeit besteht das Problem mit der Größe der Dateien immer noch. Hier mal ein Auszug aus der php.ini ... vielleicht hat ja jemand einen Tipp

[PHP]
engine = On
short_open_tag = On
precision = 14
y2k_compliance = Off
output_buffering = Off
output_handler =
unserialize_callback_func =
zlib.output_compression =
implicit_flush = Off
allow_call_time_pass_reference = On
safe_mode = Off
safe_mode_gid =
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = "PHP_"
safe_mode_protected_env_vars = "LD_LIBRARY_PATH"
disable_functions =
highlight.string = "#CC0000"
highlight.comment = "#FF9900"
highlight.keyword = "#006600"
highlight.bg = "#FFFFFF"
highlight.default = "#0000CC"
highlight.html = "#000000"
expose_php = On
max_execution_time = 9000
memory_limit = 50M
error_reporting = 2039
display_startup_errors =
track_errors = Off
variables_order = "EGPCS"
register_argc_argv = On
post_max_size = 500M
gpc_order = "GPC"
magic_quotes_runtime = Off
magic_quotes_sybase = Off
default_mimetype = "text/html"
doc_root =
user_dir =
enable_dl = On
file_uploads = 1
allow_url_include = 1
asp_tags = On
allow_url_fopen = On
display_errors = On
log_errors = Off
error_log =
register_globals = On
magic_quotes_gpc = On
auto_prepend_file =
auto_append_file =
include_path = ".:/usr/local/lib/php"
upload_max_filesize = 500M
extension_dir = "./"
zend_optimizer.enable_loader = On
zend_optimizer.optimization_level = 15
zend_extension = "/usr/local/php5/ZendOptimizer.so"

[mail function]
SMTP = localhost
sendmail_from = me@localhost.com

[SQL]
sql.safe_mode = Off

[ODBC]
odbc.allow_persistent = 1
odbc.check_persistent = 1
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1

[MySQL]
mysql.allow_persistent = Off
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =

[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent =
pgsql.max_persistent = -1
pgsql.max_links = -1

[bcmath]
bcmath.scale = 0

[browscap]
browscap =

[Session]
session.serialize_handler = "php"
session.gc_probability = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = "nocache"
session.cache_expire = 180
session.use_trans_sid = 1
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
session.save_handler = "files"
session.save_path = "/tmp"
session.use_cookies = On
session.name = "PHPSESSID"
session.auto_start = Off
session.cookie_lifetime = 0
session.cookie_path = "/"
session.cookie_domain =
session.gc_maxlifetime = 1440

[Assertion]
assert.active = On
assert.warning = On
assert.bail = Off
assert.callback =
assert.quiet_eval = Off

notaus
Beiträge: 98
Registriert: Di 13. Dez 2005, 14:18
Kontaktdaten:

Beitrag von notaus » Mi 15. Okt 2008, 10:54

Hallo,

ich hab das Modul nun auf 4.8.8 und mod_rewrite zum Laufen bekommen, allerdings mit folgenden Modifikationen.

- POST funktioniert nicht, da in Rewrite ja keine URL-Queries übergeben werden. Statt dessen REQUEST_URI für kompletten Pfad inkl Queries.

- $idcat, $idcatart und $idart sind globale Werte und müssen nicht aus GET herausgefiltert werden (wo sie bei Rewrite auch nicht mehr stehen...)
. Möglicherweise funktioniert die Änderung nicht mehr für 4.6.x.

Grüße

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Up- & Download 2.4
* Author     :      Andreas Dinkelacker
* Copyright  :      Andreas Dinkelacker
* Created    :      12.09.2008
* Version    :      2.4
************************************************/


if (isset($_POST['loadfile'])) {
        $filepath=strip_tags($_POST[file_path]);
        $filename=strip_tags($_POST[file_name]); 
        $filesize=strip_tags($_POST[file_size]);                
        header("Content-Length: ".$filesize);
        header('Content-Disposition: attachment; filename="'.$filename.'"');
        ob_clean();
        flush();
        readfile($cfgClient[$client]["htmlpath"]["frontend"].$filepath);
}

$buttonstyle1 = "width:250px;height:20px;"; // Button 1
$buttonstyle2 = "width:100px;height:20px;margin-left:10px;"; // Button 2

$username="";
$adminname="";
$deluser="";


if ($idcat!="" || $idcat!=0) {
    $catpath="idcat=".$idcat;
}

if ($idcatart!="" || $idcatart!=0) {
    $catpath="idcatart=".$idcatart;
}

if ($idart!="" || $idart!=0) {
    $catpath="idart=".$idart;
}

$foldererror="<br clear=\"all\"/>CMS_VALUE[9]";
$tablewidth="CMS_VALUE[10]";

function cut($text, $length) {
        $dec = array("\"", "'", "\\", '\"', "\'", "<", ">");
        $enc = array(""", "'", "\", """, "'", "<", ">");
        $text = str_replace($enc, $dec, $text);
        if (strlen($text) > $length) {
                $text = substr($text, 0, ($length-3))."...";
        }
        $text = str_replace($dec, $enc, $text);
        return $text;
}

$path="upload/CMS_VALUE[4]/";
$username=$auth->auth['uname'];

$delpool="CMS_VALUE[5]";
$treffer_del = substr_count($delpool, $username);
if ($treffer_del==1) {
    $deluser=$username;
}

$adminpool="CMS_VALUE[1]";
$treffer_admin = substr_count($adminpool, $username);
if ($treffer_admin==1) {
    $adminname=$username;
}

if ($username==$adminname) {
    $max_filesize_mb=CMS_VALUE[3];
} else {
    $max_filesize_mb=CMS_VALUE[2];
}

$max_filesize=bcmul($max_filesize_mb,1000000);

function parseByteSize($size,$digits=2,$dir=false){
        $kb=1024; $mb=1024*$kb; $gb=1024*$mb; $tb=1024*$gb;
        if(($size==0)&&($dir)){return "Empty";}
        else if($size<$kb){return $size." Bytes";}
        else if($size<$mb){return round($size/$kb,$digits)." KB";}
        else if($size<$gb){return round($size/$mb,$digits)." MB";}
        else if($size<$tb){return round($size/$gb,$digits)." GB";}
        else{return round($size/$tb,$digits)." TB";}
}


if ($step=="delete" && $username=="$adminname") {
      unlink($path.$filename);
}


if (isset($_POST['uploadfile'])) {
    $fileext = $_FILES['myfile']['type'];
    $filename = $_FILES['myfile']['name'];
    $filesize = $_FILES['myfile']['size'];
    $filetemp = $_FILES['myfile']['tmp_name'];
    if ($filesize > $max_filesize) $error = "<b>Die Datei ist mit $filesize Bytes groesser als $max_filesize_mb MB.</b>";
    if ($filename == "") $error.="<b>Bitte eine Datei angeben.</b>";
    if ($error == "") {
            move_uploaded_file($filetemp, $path.$filename);
            chmod($path.$filename,0664);
            echo "<font color=red><b>Die Datei wurde erfolgreich hochgeladen.</b></font><br>";
    } else {
        echo "$error";
    }
}
$show_upload=CMS_VALUE[8];

if ($show_upload==1 || $username==$adminname) {
    echo '<div id="upload"><form name="uploadform" method="post" action="'.$_SERVER[REQUEST_URI].'" enctype="multipart/form-data">
         <div>Datei:<br /><input type="file" name="myfile" class="button"><input type="submit" name="uploadfile" value="upload" class="button">
    </form></div>
         <div style="margin-bottom:5px;">max. <strong style="color:#ff0000;">'.$max_filesize_mb.' MB</strong></div></div>';
}

$show_list=CMS_VALUE[7];
if ($show_list==1 || $username==$adminname) {
    $handle=opendir($path);
         while ($file = readdir($handle)){
            if ($file!='.' && $file!='..' && $file!='/') {
                    if (!@opendir($path.$file)==true) {
                    $file_list[] = $file;
                    }



            }
         }
    closedir($handle);
         @sort($file_list);

         if ($file_list!="") {
             echo '<div><table align="left" width="'.$tablewidth.'" class="content" cellspacing="1" border="1" cellpadding="1" style="border-collapse: collapse; background:#bbbbbb;">
             <tr style="'.$headcolor.'">
             <td style="'.$headcolor.'">Filename</td>
             <td style="'.$headcolor.'">Size</td>
             <td style="'.$headcolor.'">Action</td>';

             if ($username==$deluser) echo '<td style="'.$headcolor.'"><span style="color:#ff0000;">delete</span></td>';

             echo "</tr>";
             for ($count=0;$file_list[$count]!="";$count++) {
                     $filesize=parseByteSize(@filesize($path.$file_list[$count]),2,false);
                     echo '<tr style="background-color:#ffffff;" onmouseover="this.style.backgroundColor = #dddddd" onmouseout="this.style.backgroundColor = #ffffff">
                     <td style="padding:2px;"><a href="'.$path.$file_list[$count].'">'.cut($file_list[$count],CMS_VALUE[6]).'</a></td>
                     <td style="padding:2px;">'.$filesize.'</td>
                     <td style="padding:2px;">
                             <form action="" method="post" style="margin:0px;">
                             <input type="hidden" value="'.$path.$file_list[$count].'" name="file_path"></input>
                             <input type="hidden" value="'.$file_list[$count].'" name="file_name"></input>
                             <input type="hidden" value="'.@filesize($path.$file_list[$count]).'" name="file_size"></input>                             
                             <input type="submit" name="loadfile" class="button" value="herunterladen"></input>
                             </form>
                     </td>';


                      if ($username==$deluser) echo '<td class="'.$thisclass.'"><a href="'.$_SERVER[PHP_SELF].'?'.$_SERVER[QUERY_STRING].'&step=delete&filename='.$file_list[$count].'" target="_self">delete</a></td>';
                      echo "</tr>";
             }
             echo "</table></div><br clear=\"all\" />";
         } else {
            echo $foldererror;
         }
}
?>

Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Update

Beitrag von Dinkel » Mi 5. Nov 2008, 22:13

Neue Version erschienen.
XML hat manchmal Probleme beim Import in Contenido 4.8.x zur Folge.
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR

ffg_01
Beiträge: 1
Registriert: Do 6. Nov 2008, 14:08
Kontaktdaten:

Beitrag von ffg_01 » Do 6. Nov 2008, 14:25

Hallo,

ich bekomme das Modul auf dem Contenido 4.8.8 nicht zum laufen. Da ich erst seit kurzem mit Contenido hantiere, bitte ich um Hilfe/erläuterungen.
Wenn ich das Up% Download 2.4 Modul ausführe kommt folgende Fehlermeldung:
Parse error: syntax error, unexpected ';' in /homepages/42/d32510976/htdocs/contenido/includes/include.con_editcontent.php(640) : eval()'d code on line 808
Danke im Voraus für Eure Mithilfe.

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Do 6. Nov 2008, 23:23

Hi,

ich hab mir das modul heute auch mal kurz angeschaut.

Sehr sehr Vorbildlicher Eingangs-Post.
Ausergewöhlich gutes durch halte vermögen (01.12.2006-heute).
Uebersichtliches CHANGELOG.

Resume: (Lösung für ffg_01 bzw. contenido 4.8.8)
Z:81 : $max_filesize= $max_filesize_mb*1000000;
(mueste 1000000 nicht eigentlich 1048576 sein?)
Z:116: ... $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] ...
Z:192: ... $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] ...



+ aus CMS_VALUE[1] würde ich immer "CMS_VALUE[1]" machen weil:
CMS_VALUE[1] wird ca $C1_CMS_VALUE[1]
Platzhalter wird zur Variable mit Wert als Inhalt

"CMS_VALUE[1]" wird ca "WERT"
Platzhalter wird zum Wert gekapselt mit "

was besser für den cache ist


Kritik/Verbesserungen:
- fehlende Übersetzungsmöglichkeit für mehrere Sprachen
- kein Template
- nicht Multi-Client fähig
- fehlendes Changelog oder Link zum Forum in der Beschreibung



mfg OliverL

hypekermit
Beiträge: 213
Registriert: Mi 9. Okt 2002, 21:24
Kontaktdaten:

fehlermeldung?? bitte hilfe

Beitrag von hypekermit » Mo 26. Jan 2009, 15:35

habe die aktuelle version des moduls auf dem aktuellen contenido instaliert...

Fatal error: Call to a member function reset() on a non-object in /var/www/springfield.de/web/contenido/includes/include.con_editcontent.php(628) : eval()'d code on line 536


hat jemand abhilfe???

dankeschööön

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL » Mo 26. Jan 2009, 15:43

ergänze mal an anfang vom Output:

Code: Alles auswählen

cInclude('classes', 'class.template.php');
$tpl = new Template;
mfg OliverL

hypekermit
Beiträge: 213
Registriert: Mi 9. Okt 2002, 21:24
Kontaktdaten:

super danke

Beitrag von hypekermit » Mo 26. Jan 2009, 16:15

super palletti geht vielen dank...

Gesperrt