Yahoo UI: Ordner auslesen Nr. 2

  • Yahoo UI: Ordner auslesen Nr. 2

    nach längerer PM Diskussion veröffentliche ich hier einfach mal das geschehene..
    vielleicht finden sich ja ein Entwickler, der das Script fertig umsetzt

    Der bisherige Entwicklungsstand (23.08.) kann ordner erfolgreich auslesen..
    bietet dateien aber nicht zum download an

    Vorangehende Diskussion:
    http://www.easy-coding.de/yahoo-ui-ordner-auslesen-t1426.html

    "der_stift" schrieb:

    wow..das tut..is ja geil :-)) *freu..
    [...]
    wie kann ich die dateien als Link ausgeben? Mein Versuch mit

    php:
    1
    echo ';' '<a href="'.$out.'">'.$out.'</a>';
    an Stelle

    php:
    1
    echo ';'.$out;

    war nicht wirklich von Erfolg gekrönt.

    Schon jetzt mal...vielen Dank für alles...


    "d0n" schrieb:

    die teile sind alle links, sonst würden sich die unterordner nicht öffnen
    aber um dann am ende die dateien zu öffnen..
    dazu müsste man noch weitere funktionen überschreiben, was aber zu viel arbeit wäre..


    "der_stift" schrieb:

    warum ist das so kompliziert?
    ist es nicht einfach eine Änderung des "echo" wertes? So ist es ja auch im original *kopfkratz*


    "d0n" schrieb:

    was meinst du denn mit dem "original" ?
    denke nicht, dass wir aneinander vorbeigeredet haben
    alles wo man draufklicken kann, ist ein link..
    nur die aktion ist nicht definiert.. man müsste halt abfangen, ob es sich um einen ordner oder eine datei handelt
    * datei direkt öffnen
    * ordner weiter aufklappen


    "der_stift" schrieb:

    so ist es ja in dem original Script auf eurer Seite hinterlegt...deshalb frag ich ja


    "der_stift" schrieb:

    wie könnte man sowas realisieren? weil wenn dass dann noch drinne wäre, wäre das ja ein super werkzeug


    "d0n" schrieb:

    response sieht ja z.z. so aus:
    response = "path;id;folder;folder;folder;...."

    man könnte noch nach der id ne booleanvariable einfügen
    ordner oder kein ordner

    und dann in abhängigkeit dieses wertes den link ändern


    "der stift" schrieb:

    Konkret meinst du das?

    Quellcode

    1. var node, subfolder = o.responseText.split(';');
    2. /*
    3. subfolder[0] = path
    4. subfolder[1] = id
    5. subfolder[2-n] = folders
    6. */
    7. if(subfolder[1] == 0) {
    8. node = tree.getRoot();
    9. } else
    10. node = tree.getNodeByIndex(subfolder[1]);
    11. for(var i=2; i<subfolder.length; i++) {
    12. new YAHOO.widget.TextNode(subfolder[i], node, false);
    13. }
    Alles anzeigen


    Heisst es ist nicht möglich, eine Variable von der folder.php rüberzuretten, und dort zu implementieren...

    Wie könnte sowas aussehen?


    "d0n" schrieb:

    du musst in der folder.php eine ausgabe machen obs ein ordner order eine datei ist

    echo is_file($path) ? 1 : 0.';';

    und im javascript musst du dann entsprechend reagieren subfolder[2], wenn du die ausgabe hinter die id packst

    if(subfolder[2] == 1) {
    alert('ich bin eine datei');
    } else {
    alert('ich bin ein ordner');
    }

    PS: Was dagegen, wennn ich unsere PM Diskussion öffentlich mache?
    vielleicht haben ja andere interesse daran es zu coden


    "der stift" schrieb:

    nein habe ich nicht :-))

    aber es ist doch schon differnziert:

    Quellcode

    1. foreach($folder as $out)
    2. echo ';'.$out;
    3. foreach($file as $out)
    4. echo ';'.$out;

    würde es nicht gehen, dass ich statt $out 2 Werte, also $out1 und $out2?
  • "der_stift" schrieb:

    aber es ist doch schon differnziert:

    Quellcode

    1. foreach($folder as $out)
    2. echo ';'.$out;
    3. foreach($file as $out)
    4. echo ';'.$out;


    würde es nicht gehen, dass ich statt $out 2 Werte, also $out1 und $out2?

    javascript sieht nur das fertig geparste script
    also einfach eine reihe aneinanderhängender ausdrücke die mit semikolon getrennt sind
    eine umbenennung der variablen ändert da nichts
  • Tut mir ja echt leid,
    aber ich glaub ehrlich gesagt nicht, dass du das mit deinen programmierkenntnissen hinbekommst...

    versuchs doch lieber erstmal mit einem simplen script.. ganz ohne blinkeffekte und ajax

    hier ein fertiges:

    Quellcode

    1. <?php
    2. //easy-coding.de
    3. //fertiges script um sich durch einer ordnerhierarchie zu bewegen
    4. function ordnerinhalt($ordner)
    5. {
    6. $handle = opendir($ordner);
    7. while ($file = readdir ($handle)) {
    8. if($file{0} != '.') { //Versteckte Dateien nicht anzeigen
    9. if(is_dir($ordner.'/'.$file)) {
    10. $folderArray[$ordner.'/'.$file] = $file;
    11. } else {
    12. $fileArray[$ordner.'/'.$file] = $file;
    13. }
    14. }
    15. }
    16. closedir($handle);
    17. //Erst die Ordner ausgeben
    18. if(isset($folderArray)) {
    19. asort($folderArray);
    20. foreach($folderArray as $path => $file) {
    21. echo '<b><a href="'. $_SERVER['PHP_SELF'] .'?folder='. $path .'">'.$file.'</a></b><br />';
    22. }
    23. }
    24. //Dann die Dateien ausgeben
    25. if(isset($fileArray)) {
    26. asort($fileArray);
    27. foreach($fileArray as $path => $file) {
    28. echo '<a href="'.$path.'">'.$file.'</a><br />'; //Dateien verlinken
    29. }
    30. }
    31. }
    32. ordnerinhalt(isset($_GET['folder']) ? $_GET['folder'] : '.');
    33. ?>
    Alles anzeigen