Dateien über FTP Upload in Liste anzeigen

Gesperrt
optimist
Beiträge: 24
Registriert: Do 12. Aug 2004, 20:45
Wohnort: Rheinhessen
Kontaktdaten:

Dateien über FTP Upload in Liste anzeigen

Beitrag von optimist » So 15. Jan 2006, 00:30

Hi !

Ich habe einen PC mit BatchJobs laufen, die nach bestimmten Ereignissen Dateien bearbeiten und per FTP in einen Ordner auf dem Webserver hochladen.
Zur Zeit benutzte ich MYExplorer V3.2 von http://www.BMITT.com um die Dateien online zu handeln.
Jetzt hätte ich das gerne in Contenido um über das Login eine Userveraltung zu nutzen.

Hat jemand einen Vorschlag ?
Aller dann !

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Dateien über FTP Upload in Liste anzeigen

Beitrag von Halchteranerin » So 15. Jan 2006, 10:17

optimist hat geschrieben:Jetzt hätte ich das gerne in Contenido um über das Login eine Userveraltung zu nutzen.
Ich sehe die Verbindung zwischen obigem Satz und deiner Ueberschrift gerade nicht. Um Dateien aus einem Verzeichnis in Contenido darzustellen, gibt's irgendwo ein Modul (die Forumssuche ist dein Freund), wenn du etwas anderes suchst, dann bitte genauer beschreiben.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

optimist
Beiträge: 24
Registriert: Do 12. Aug 2004, 20:45
Wohnort: Rheinhessen
Kontaktdaten:

Beitrag von optimist » So 15. Jan 2006, 14:22

Danke für Deine Antwort!

Du hast Recht ! So wie ich es geschrieben habe verstehe ich es selbst kaum.

Also im Prinzip möchte ich nur den Inhalt eines Ordners meines Webservers , der per FTP automatisch mit Dateien gefüllt wird in Contenido ausgeben, ohne das ich dabei die Dateiverwaltung von Contenido nutze.

busi hat da für seine Zwecke den MyExplorer bereits als Modul eingebaut, aber der funktioniert zumindest bei mir nicht unter 4.6.

Hier: http://www.bfdesign.ch/front_content.php?idcat=41
ist es bei busi im Einsatz zu sehen.

Geschützt werden soll der Zugriff auf die Dateien, über den Contenido Login.
Das funktioniert ja einwandfrei unter 4.6

Also sollte die Frage lauten: Gibt es ein Modul, dass einen Dateiliste aus einem Ordner erstellt, ohne über die Dateiverwaltung zu gehen ?
Aller dann !

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » So 15. Jan 2006, 15:15

Wenn du nach Downloadmodul in Module 4.4.x suchst, findest du da mehrere Treffer. Schau doch mal bitte, ob keines davon funktioniert. Mit 4.6 scheint es noch keiner getestet zu haben.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 15. Jan 2006, 17:57

lauffähiges download modul der feineren sorte für 4.6.x ;)

http://www.polycoder.de/contenido-wcms/ ... index.html
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

optimist
Beiträge: 24
Registriert: Do 12. Aug 2004, 20:45
Wohnort: Rheinhessen
Kontaktdaten:

Beitrag von optimist » So 15. Jan 2006, 18:04

Danke !

Hab ich auch schon gesehen.
Ist leider nicht für mich geeignet, da die Dateien unregelmäßig auf den Server geladen werden und zwar nicht über die Dateiverwaltung von Contenido, sondern per FTP-BatchJob.
Aller dann !

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 15. Jan 2006, 19:01

optimist hat geschrieben:Danke !

Hab ich auch schon gesehen.
Ist leider nicht für mich geeignet, da die Dateien unregelmäßig auf den Server geladen werden und zwar nicht über die Dateiverwaltung von Contenido, sondern per FTP-BatchJob.
ich habe mi zwar stese modul noch nicht genauer angeschaut, aber die dowloadliste die ich z.b. hier im einsatz habe hat mit der contenido dateiverwaltung nichts zu tun

es liest einfach den inhalt eines directories aus und stese modul denke ich macht das gleiche nur eben viel eleganter.

also nochmal nachgefragt, wenn du per batch dateien in einen ordner lädst, dann sollten beide downloadmodule einfach den inhalt auslesen.
was hat das mit der contenido dateiverwaltung zu tun?

vieleicht stehe ich ja auch auf dem schlauch :?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

optimist
Beiträge: 24
Registriert: Do 12. Aug 2004, 20:45
Wohnort: Rheinhessen
Kontaktdaten:

Beitrag von optimist » So 15. Jan 2006, 19:20

was hat das mit der contenido dateiverwaltung zu tun?
Bei Polycoder steht:
Hinweis: Die Verzeichnisauswahl in der Templatekonfiguration sowie die Dateiliste wird automatisch aus der Contenido-eigenen Datenbank generiert, welche Über die Dateiverwaltung (Hauptmenü Content/Dateiverwaltung) gepflegt wird! Wird ein Ordner mit Inhalten nicht korrekt angezeigt, so gehen Sie bitte in der Dateiverwaltung in den entsprechenden Ordner, so dass der Inhalt dieses Ordners automatisch in die Datenbank aufgenommen wird! Sie sollten nie direkt Änderungen per FTP an der Dateiverwaltung vornehmen, da es sonst zu Abweichungen zum tatsächlichen Inhalt des Webservers führt. Das ist kein Fehler vom Modul, das ist die generelle Contenido Arbeitsweise!



Das meine ich damit. Oder hab ich das falsch verstanden?

Deine eingesetztes Modul unter
http://contenido.funjumping.de/download ... index.html

ist genau das was ich auch einsetzen wollte. Das hat busi an Contenido 4.4 angepaßt. Der PHP-Code ist ursprünglich von www.BMITT.com und heißt MyExplorer. Da gibt es übrigens auch ne neue Version davon.

Ich hab gesehen Du hast auch 4.6.4 im Einsatz. Woher hattest Du das Modul und mußtest Du was anpassen ?
Aller dann !

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 15. Jan 2006, 19:52

man lernt nie aus, das beim polycoder hatte ich noch nicht gelesen

was ich an dem modul bei mir geändert habe kann ich nicht so genau sagen :? nicht viel, pfade zu den icon dateien und bisi layout glaube ich

darum poste ich es einfach mal hier:

input:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     download
* Author          :     Michael Busslinger
* Created        :     15-09-2005
************************************************/

echo "<table width='100%'  border='0'>
  <tr>
    <td>Download Verzeichnis</td>
<td><input type='text' name='CMS_VAR[1]' value='";
if ("CMS_VALUE[1]" == "") {
echo "../download";
}
echo "CMS_VALUE[1]"."'></td>
  </tr>
  <tr>
    <td>Statistik Anzeigen (true / False)</td>
    <td><input type='text' name='CMS_VAR[2]' value='CMS_VALUE[2]'></td>
  </tr>
  <tr>
    <td>Icon anzeigen (true / false)</td>
    <td><input type='text' name='CMS_VAR[3]' value='CMS_VALUE[3]'></td>
  </tr>
  <tr>
    <td>Spaltenbezeichnung Filename </td>
    <td><input name='CMS_VAR[4]' type='text' value='CMS_VALUE[4]'></td>
  </tr>
  <tr>
    <td>Spaltenbezeichnung File Gr&ouml;sse </td>
    <td><input name='CMS_VAR[5]' type='text' value='CMS_VALUE[5]'></td>
  </tr>
  <tr>
    <td>Spaltenbezeichnung File Last Modified </td>
    <td><input name='CMS_VAR[6]' type='text' value='CMS_VALUE[6]'></td>
  </tr>
</table>";
output:

Code: Alles auswählen

<?php
/*****************************************************************************\
 * myExplorer
 * http://www.bmitt.com/files/webauthoring/php/
 * -------------------------------------------------------------------------
 * written by       : Bernhard Mitterer @: admin@bmitt.com
 * last modified   : 2004-11-25
 *****************************************************************************
/*****************************************************************************\
 * Configuration (adapt this section to your needs)                          *
\*****************************************************************************/

$su            = false;
# paths
$rootDir       = 'CMS_VALUE[1]';
$printCwd      = false;
$printStat     = CMS_VALUE[2];
# labels for tableheader
$hPic          = '&nbsp;';
$hName         = 'CMS_VALUE[4]';
$hSize         = 'CMS_VALUE[5]';
$hType         = 'Typ';
$hLastMod      = 'CMS_VALUE[6]';
# show attributes
$showPic       = CMS_VALUE[3];
$showName      = true;    # must always be 'true'
$showSize      = true;
$showType      = false;
$showLastMod   = true;
# pic-names
$picUp         = 'images/folderup.gif';
$picFolder     = 'images/folder.gif';
$picFile       = true;
# filter
$showFiles     = '*.zip,*.rar,*.pdf,*.txt,*.xml';
$hideFiles     = '.*,index*,*.php';
$showFolders   = '*';
$hideFolders   = '.*';
# mode
$xAction       = 0;
# filetypes
$picIcons      = array(
                 '.*'    => 'images/file_icons/file.gif',
                 '.bz2'  => 'images/file_icons/rarfile.gif',
                 '.c'    => 'images/file_icons/cfile.gif',
                 '.cpp'  => 'images/file_icons/cppfile.gif',
                 '.doc'  => 'images/file_icons/docfile.gif',
                 '.exe'  => 'images/file_icons/exefile.gif',
                 '.h'    => 'images/file_icons/hfile.gif',
                 '.htm'  => 'images/file_icons/htmfile.gif',
                 '.html' => 'images/file_icons/htmfile.gif',
                 '.gif'  => 'images/file_icons/imgfile.gif',
                 '.gz'   => 'images/file_icons/zipfile.gif',
                 '.jpg'  => 'images/file_icons/imgfile.gif',
                 '.js'   => 'images/file_icons/jsfile.gif',
                 '.mp3'  => 'images/file_icons/mpgfile.gif',
                 '.mpg'  => 'images/file_icons/mpgfile.gif',
                 '.pdf'  => 'images/file_icons/pdffile.gif',
                 '.png'  => 'images/file_icons/imgfile.gif',
                 '.ppt'  => 'images/file_icons/pptfile.gif',
                 '.rar'  => 'images/file_icons/rarfile.gif',
                 '.swf'  => 'images/file_icons/swffile.gif',
                 '.txt'  => 'images/file_icons/txtfile.gif',
                 '.xls'  => 'images/file_icons/xlsfile.gif',
                 '.xml'  => 'images/file_icons/xmlfile.gif',
                 '.zip'  => 'images/file_icons/zipfile.gif',
                 );


/*****************************************************************************\
 * prepare variables                                                         *
\*****************************************************************************/


// Check Path Formats ---------------------------------------------------------
$rootDir    = formatDir($rootDir,true,true);
$indexDir   = formatDir($indexDir);
$referer    = addLinker($referer);
// ----------------------------------------------------------------------------

// Handle (given) Directory ---------------------------------------------------
# initialize
$dir = $indexDir;

# make lokal variable from HTTP_GET_VARS
if(isset($_GET['dir']))
    $dir = formatDir(rawParam('dir'));

# check given directory if it is valid/allowed
if( !isValidDir("$rootDir$dir") )
    $dir = $indexDir;

# real path ($dir is just fake [relative to $rootDir] for display)
$ldir = formatDir("$rootDir$dir",true);
// ----------------------------------------------------------------------------

// Get Directory Content ------------------------------------------------------
$files = array();
$folders = array();

# unfiltered directory content
getDirContent( $ldir );

# filter (and sort) arrays
$files = filterArray( $files, $showFiles, $hideFiles );
$folders = filterArray( $folders, $showFolders, '.,..,'.$hideFolders );
// ----------------------------------------------------------------------------


/*****************************************************************************\
 * Functions                                                                 *
\*****************************************************************************/

// ----------------------------------------------------------------------------
// getDirContent() fills, filter and sort Arrays of files and folders
function getDirContent($dir)
{
    global $files, $folders;

    # fill arrays
    $handle = @opendir($dir);
    while( $file = readdir($handle) ) {
        if( is_dir("$dir/$file") )
            $folders[] = $file;
        elseif( is_file("$dir/$file") )
            $files[] = $file;
    }
    @closedir($handle);
}

// ----------------------------------------------------------------------------
// addLinker()    adds '?' or '&' to the referer
function addLinker($referer)
{
    // assume that last char is not '?' or '&'
    return strchr($referer,'?') ? "$referer&" : "$referer?";
}

// ----------------------------------------------------------------------------
// formatDir()    skip trailing and leading "/" in given $dir-string
//                add
function formatDir($dir, $trailing=false, $leading=false)
{
    $dir = trim($dir,' /');
    if( $trailing && $dir )
        $dir = "$dir/";
    if( $leading ) #&& ($dir[0]!='/') )
        $dir = "./$dir";

    return $dir;
}

// ----------------------------------------------------------------------------
// filterArray()   make regular expression from $filter-string
function filterArray( $array, $allow, $hide )
{
    $allow = makeRegex($allow);
    $hide  = makeRegex($hide);

    $tmp = array();
    foreach( $array as $val )
        if( ereg($allow,$val) && !ereg($hide,$val) )
            $tmp[] = $val;

    natcasesort( $tmp );
    return $tmp;
}

// ----------------------------------------------------------------------------
// makeRegex()   make regular expression from $filter-string
function makeRegex( $filter )
{
    $regex = str_replace('.', '\.', $filter);
    $regex = str_replace('*', '.+', $regex);
    $regex = str_replace(',', '$|^', $regex);

    return "^$regex$";
}

// ----------------------------------------------------------------------------
// isValidDir()   return true if directory is valid/allowed
function isValidDir($dir)
{
    global $su;

    $strErr  = "<p>Requested Directory Not Found</p>\n";
    $strErr .= "\n</body>\n</html>";    #close open tags
    // check if folder exists (when manipulated manually)
    is_dir($dir) or die($strErr);

    // prevent cd with relative path '../'
    return $su ? true : !(strpos($dir,'..')!==false);
}

// ----------------------------------------------------------------------------
// rawParam()
function rawParam( $param )
{
    return ini_get('magic_quotes_gpc') ? stripslashes($_GET[$param]) : $_GET[$param];
}

// ----------------------------------------------------------------------------
// makeLink()   return target of click
function makeLink( $target )
{
    global $xAction, $xFilename;

    $target = str_replace('%2F', '/', rawurlencode($target));

    return $xAction ? "$xFilename?file=$target" : $target;
}

// ----------------------------------------------------------------------------
// getIcon()   return icon-image based on filename extension
function getIcon( $filename )
{
    global $picIcons, $picFile;

    // extract filename extension
    $ext = strtolower( strrchr( $filename, '.' ) );
    // return default image if $picFile = false
    // or extension is unknown
    if( !$picFile || !array_key_exists($ext,$picIcons) )
        return $picIcons['.*'];

    // return matching image
    return $picIcons[$ext];
}

/*****************************************************************************\
 * Output (print table)                                                      *
\*****************************************************************************/

echo '<div style="padding-left:10px">';

echo '<table cellspacing="3" class="expl" summary="Content of /'.htmlentities($dir).'">',"\n";

// print current directory ----------------------------------------------------
if($printCwd)
{
    echo '  <tr class="path">',"\n";
    echo '    <td colspan="'.($showPic+$showName+$showSize+$showType+$showLastMod).'"><em>/'.htmlentities($dir).'</em></td>',"\n";
    echo '  </tr>',"\n";
}
// ----------------------------------------------------------------------------

// draw tableheader -----------------------------------------------------------
echo '  <tr style="font-weight:bold">',"\n";
if($showPic)
    echo '    <td class="hPic" width="25px">'.$hPic.'&nbsp;<br/><br/></td>',"\n";
if($showName)
    echo '    <td class="hName" width="200px">'.$hName.'&nbsp;<br/><br/></td>',"\n";
if($showSize)
    echo '    <td class="hSize" width="70px" align="right">&nbsp;'.$hSize.'&nbsp;<br/><br/></td>',"\n";
if($showType)
    echo '    <td class="hType" width="100px">'.$hType.'&nbsp;<br/><br/></td>',"\n";
if($showLastMod)
    echo '    <td class="hLastMod" width="130px">&nbsp;'.$hLastMod.'&nbsp;<br/><br/></td>',"\n";
echo '  </tr>',"\n";
// ----------------------------------------------------------------------------

// handle up-button -----------------------------------------------------------
if( $su && (!$dir || (substr($dir,-2)=='..')) )
    $up = formatDir($dir,true).'..';
else
    $up = substr($dir,0,strrpos($dir,'/'));

#if( $su || ($dir && ($up!==false)) )
#{
#    echo '  <tr class="folder">',"\n";
#    if($showPic)
#        echo '    <td class="pic"><a href="'.$referer.'dir='.$up.'"><img src="'.$picUp.'" alt="up" /></a></td>',"\n";
#    if($showName)
#        echo '    <td class="name"><a href="'.$referer.'dir='.$up.'"><em>..</em></a></td>',"\n";
#    if($showSize)
#        echo '    <td class="size">&nbsp;-&nbsp;</td>',"\n";
#    if($showType)
#        echo '    <td class="type">&nbsp;dir&nbsp;</td>',"\n";
#    if($showLastMod)
#        echo '    <td class="lastmod">&nbsp;-&nbsp;</td>',"\n";
#    echo '  </tr>',"\n";
#}
// ----------------------------------------------------------------------------

// print directories ----------------------------------------------------------
foreach ($folders as $folder)
{
      echo '  <tr class="folder">',"\n";
      if($showPic)
          echo '    <td class="pic"><a href="'.$referer.'idcat='.$idcat.'&dir='.formatDir($dir,true).$folder.'"><img src="'.$picFolder.'" alt="'.htmlentities($folder).'" /></a></td>',"\n";
      if($showName)
          echo '    <td class="name"><a href="'.$referer.'idcat='.$idcat.'&dir='.formatDir($dir,true).$folder.'"><em>'.htmlentities($folder).'</em></a></td>',"\n";
      if($showSize)
          echo '    <td class="size">&nbsp;-&nbsp;</td>',"\n";
      if($showType)
          echo '    <td class="type">&nbsp;'.filetype("$ldir$folder").'&nbsp;</td>',"\n";
      if($showLastMod)
          echo '    <td class="lastmod">&nbsp;-&nbsp;</td>',"\n";
      echo '  </tr>',"\n";
}
// ----------------------------------------------------------------------------

// print files ----------------------------------------------------------------
foreach ($files as $file)
{
    $type = filetype("$ldir$file");         // get 'type of file'
    $modDate = filemtime("$ldir$file");     // get 'last modified date' of file
    #$modDate = date('Y-m-d',$modDate);      // format date in ISO-Style
    $modDate = date('d.m.Y',$modDate);      // format date in ISO-Style
    $size = filesize("$ldir$file");         // get 'size of file' in bytes
    $dirsize += $size;                      // total filesize in current dir
    $size = ceil($size/1024);               // convert from byte to kilobyte
    $size = "$size kb";                     // add unit

    echo '  <tr class="file">',"\n";
    if($showPic)
        echo '    <td class="pic"><a href="'.makeLink("$ldir$file").'"><img src="'.getIcon($file).'" alt="'.htmlentities($file).'" border="0" title="'.htmlentities($file).'"/></a></td>',"\n";
    if($showName)
        echo '    <td class="name"><a href="'.makeLink("$ldir$file").'" title="'.htmlentities($file).'">'.htmlentities($file).'</a></td>',"\n";
    if($showSize)
        echo '    <td class="size" align="right">&nbsp;'.$size.'&nbsp;</td>',"\n";
    if($showType)
        echo '    <td class="type">&nbsp;'.$type.'&nbsp;</td>',"\n";
    if($showLastMod)
        echo '    <td class="lastmod">&nbsp;'.$modDate.'&nbsp;</td>',"\n";
    echo '  </tr>',"\n";
}
// ----------------------------------------------------------------------------

// print statistics -----------------------------------------------------------
if($printStat)
{
    echo '  <tr class="stats">',"\n";
    echo '    <td colspan="'.($showPic+$showName+$showSize+$showType+$showLastMod).'">&nbsp;<em>'.count($folders).' directories | '.count($files).' file(s) | '.ceil($dirsize/1024).' kByte total</em>&nbsp;</td>',"\n";
    echo '  </tr>',"\n";
}
// ----------------------------------------------------------------------------

echo '</table>',"\n";
echo '</div>';


?>
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

optimist
Beiträge: 24
Registriert: Do 12. Aug 2004, 20:45
Wohnort: Rheinhessen
Kontaktdaten:

Beitrag von optimist » So 15. Jan 2006, 21:13

He super Dein Script geht ! :D

Allerdings nur begrenzt :cry: Meine Unterordner werden zwar angezeigt, aber sobald ich draufclicke springe ich zur Startseite. Funktioniert es bei Dir mit Unterordnern ?

Hm !

Naja zumindest ist das der halbe Weg.

Ich werde busi mal ne pm schicken mit einem Link auf das Thema, vielleicht kennt der ja einen Weg.
Aller dann !

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » So 15. Jan 2006, 21:17

müst ich mir angucken, habe es noch nicht mit unteordnern getestet, liegt aber sich dann an meinem schnellen rumfingern

müsste man mal ordentlich und in ruhe den code angucken
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

mreif
Beiträge: 192
Registriert: Mi 12. Okt 2005, 16:32
Wohnort: Weiterstadt
Kontaktdaten:

Beitrag von mreif » Do 9. Feb 2006, 09:06

Hallo,

ja, auch ich habe es soeben unter 4.6.4 getestet.
Modul funktioniert, allerdings ohne die Möglichkeit auf Unterverzeichnisse zuzugreifen. Da hakt es leider noch.

Weiterhin gibt es Pflichfelder, die dann im Template auszufüllen sind.
Ist dort aber so nicht ersichtlich.
Lässt man die Felder leer, kommt eine Fehlermeldung.
Eine Vorbelegung der Felder wäre für manchen sicherlich hilfreich.

Was ich auch versucht hatte, war ein externes Verzeichnis auszurufen - funktioniert aber nicht, da immer der Abgleich mit $rootDir erfolgt.

Das wäre z.B. mein Wunsch, wenn man das so einbinden kann, dass auch externe Verzeichnisse aufgerufen werden können.

Um die Antwort vorweg zu nehmen ... nein, ich kann kein PHP um es selber zu machen.
Ich versuche lediglich die bestehenden Module ein Stück weit zu verstehen. :roll:

Gruß
Michael

Gesperrt