Download-Liste

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

Download-Liste

Beitrag von Peer » Mo 22. Jul 2013, 10:13

Hallo,

ich habe mir eine Downloadliste erstellt.
Leider bin ich an einer Stelle an der ich nicht mehr weiter weiß.

Ich möchte das in der Liste der Medienname aus der Dateiverwaltung erscheint und wer der nicht vorhanden ist der Filename.
Der Filename erscheint auch aber der Medienname nicht.

Hier mein Code

Code: Alles auswählen

    <?php
    //Download-Verzeichnis wird synchronisiert
    cInclude('includes', 'functions.upl.php');
    uplSyncDirectory("CMS_VALUE[0]"."/");
    ?>




    <?php
    //Datenbankanfrage wird definiert (was, wo und wie sortiert)
    $sql = "SELECT * FROM ".$cfg["tab"]["upl"]." WHERE dirname ='CMS_VALUE[0]/' order by filetype,filename asc";

    //Verbindung zur Datenbank wird hergestellt
    $db->query($sql);

    //Zeigt die Datensätze in der Tabelle an
    echo '<span class="filecount">Insgesamt stehen ' . $db ->num_rows() . ' Dokumente zur Verfügung:</span><br>';

    //Link zur Datei im Upload-Verzeichnis
    $href = $cfgClient[$client]["htmlpath"]["frontend"] . $cfgClient[$client]["upload"];
    $i = 1;

    //Die Datensätze werden in einer Aufzählungsliste widergegeben, die sich über die CSS-Klasse 'ul.download' gestaltem lässt
    echo "<ul class=\"downloadlist\">";
       while ($db->next_record())
    {
    $dateityp = $db->f("filetype");
    echo "
 
      <li>";
       if ($db->f("filetype") != "pdf") {
       echo "<img src=\"".$href.$db->f("dirname").$db->f("filename")."\">"; 
       
       }
    else {
       echo "<img src=\"".$cfgClient[$client]['htmlpath']['frontend']."images/misc/download_misc_".$dateityp.".png\">";
       }
    echo "
        <div class=\"content\"><p>";
        if ($db->f("medianame") != " ") {
       echo $db->f("filename");
       }
       
    else {
       echo $db->f("medianame");
       }
       echo "</p>";
    echo "
        </a><span class=\"info\">";
    if ($db->f("description") != "") {
       echo $db->f("description");
       }
    else {
       echo "";
       }
    echo "</span><ul class=\"formats\">
        <li>
        
        <a title=\"download ".$db->f("filename")."\" target=\"_blank\" href=\"".$href.$db->f("dirname").$db->f("filename")."\" onClick=\"this.blur()\">".$dateityp." [".round($db->f("size")/1024,1)." KB]</a>
      </li></ul>
    ";
    $i++;
    }
    echo "</div></li>";
    echo '<br><br>Um eine Datei herunterzuladen, klicken Sie bitte mit der rechten Maustaste auf den entsprechenden Dateinamen und wählen Sie im Kontextmenü "Ziel speichern unter..." aus.';
    echo "<form name=\"form\" action=\"\"><input type=\"hidden\" id=\"hidden\" name=\"hidden\" value=\"\"></form>";

    ?>


Hat jemand einen Tipp für mich?

Vielen Dank

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Download-Liste

Beitrag von xmurrix » Fr 26. Jul 2013, 11:09

Hallo Peer,

die Daten zu einer Datei in der Mediaverwaltung sind auf 2 Tabellen verteilt, sprachabhängige Werte werden in der Tabelle "con_upl_meta" gespeichert, auch die Eigenschaft "medianame".

Du solltest deine Query folgendermaßen anpassen, dann bekommst alle Daten aus beiden Tabellen zur aktuellen Sprache:

Code: Alles auswählen

$sql = "SELECT * FROM " . $cfg["tab"]["upl"] . " AS u " . $cfg["tab"]["upl_meta"] . " AS um
        WHERE u.dirname = 'CMS_VALUE[0]/' AND upl.idupl = upl_meta.idupl AND um.idlang = " . (int) $lang . "
        ORDER BY u.filetype, u.filename ASC";
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

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

Re: Download-Liste

Beitrag von Peer » Mo 5. Aug 2013, 00:45

Ich brauche noch mal eure Hilfe.

Ich habe hier ein Download Modul und bin eigentlich fast fertig.
Leider werden mit in der Ausgabe von "description" immer + Zeichen als Leerzeichen angezeigt.

Das möchte ich natürlich nicht. Hat jemand einen Tipp für mich?

Danke

Eingabe

Code: Alles auswählen

    ?>
    <table cellspacing="0" cellpadding="0" cellpadding="4">

        <tr>
            <td style="font-size:11px">Download-Verzeichnis:</td>
            <td>
                <select name="CMS_VAR[0]">
                <option value="0"></option>
                <?php

                    $sql = "SELECT DISTINCT dirname from ".$cfg["tab"]["upl"];

                    $db->query($sql);

                    while ( $db->next_record() ) {

    $upload_dir=substr_replace($db->f("dirname"),'',(strlen($db->f("dirname"))-1));

                        if ( "CMS_VALUE[0]" == $upload_dir) {
                            echo '<option selected="selected" value="'.$upload_dir.'">'.$db->f("dirname").'</option>';

                        } else {
                            echo '<option value="'.$upload_dir.'">'.$db->f("dirname").'</option>';

                        }
                    }

                ?>
                </select>
            </td>
        </tr>
        <tr>
            <td style="font-size:11px">Datei-Typ:</td>
            <td>
                <select name="CMS_VAR[1]">
                <option value="0"></option>
                <?php

                    $sql = "SELECT DISTINCT filetype from ".$cfg["tab"]["upl"]; //." WHERE dirname='CMS_VALUE[0]/'";

                    $db->query($sql);
                    while ( $db->next_record() ) {

                    $upload_file=$db->f("filetype");

                        if ( "CMS_VALUE[1]" == $upload_file) {
                            echo '<option selected="selected" value="'.$upload_file.'">'.$db->f("filetype").'</option>';

                        } else {
                            echo '<option value="'.$upload_file.'">'.$db->f("filetype").'</option>';

                        }
                    }


                ?>
                </select>
            </td>
        </tr>

    </table>

    <?php
Ausgabe

Code: Alles auswählen

    <?php
    //Download-Verzeichnis wird synchronisiert
    cInclude('includes', 'functions.upl.php');
    uplSyncDirectory("CMS_VALUE[0]"."/");
    ?>




    <?php
    //Datenbankanfrage wird definiert (was, wo und wie sortiert)


    $sql = "SELECT
                        *
                      
                    FROM
                        ".$cfg["tab"]["upl"]." 
                   
                        WHERE
                        dirname ='CMS_VALUE[0]/' order by filetype,dirname asc";


    //Verbindung zur Datenbank wird hergestellt
    $db->query($sql);

    //Zeigt die Datensätze in der Tabelle an
    echo '<span class="filecount">Insgesamt stehen ' . $db ->num_rows() . ' Dokumente zur Verfügung:</span><br>';

    //Link zur Datei im Upload-Verzeichnis
    $href = $cfgClient[$client]["htmlpath"]["frontend"] . $cfgClient[$client]["upload"];
    $i = 1;

    //Die Datensätze werden in einer Aufzählungsliste widergegeben, die sich über die CSS-Klasse 'ul.download' gestaltem lässt
    echo "<ul class=\"downloadlist\">";
       while ($db->next_record())
    {
    $dateityp = $db->f("filetype");
    $dateitypliste = array("pdf", "txt", "xls", "tif", "doc");

    

    echo "
        <div class=\"content\">";
        
      if (!in_array($dateityp, $dateitypliste)) {
        // dateityp nicht in dateitypliste. Zur Info: Der Pfad zum Bild wird so nicht funktionieren!
        echo "<a title=\"download ".$db->f("filename")."\" target=\"_blank\" href=\"".$href.$db->f("dirname").$db->f("filename")."\" onClick=\"this.blur()\"><img src=\"" . $href . $db->f("dirname") . $dateityp . "\"></a>";
    } else {
        // dateityp in dateitypliste
        echo "<a title=\"download ".$db->f("filename")."\" target=\"_blank\" href=\"".$href.$db->f("dirname").$db->f("filename")."\" onClick=\"this.blur()\"><img src=\"" . $cfgClient[$client]['htmlpath']['frontend'] . "images/misc/download_misc_" . $dateityp . ".png\"></a>";
    }   

      echo "
       <div class=\"download_details\"><p>";
        if ($db->f("description") != $db->f("")) {
       echo $db->f("description");
       }
       
    else {
       echo $db->f("filename");
       }
       echo "</p>";
       
      
       
   // echo "
       // </a><span class=\"info\">";
    //if ($db->f("description") != "") {
    //   echo $db->f("description");
    //   }
   // else {
     //  echo "";
      // }
    echo "</span> <ul class=\"formats\">
        <li>
        
        <a title=\"download ".$db->f("filename")."\" target=\"_blank\" href=\"".$href.$db->f("dirname").$db->f("filename")."\" onClick=\"this.blur()\">".$dateityp." [".round($db->f("size")/1024,1)." KB]</a>
      
    </li></ul></div></div>";
    $i++;
    }
    


    echo '<br><br>Um eine Datei herunterzuladen, klicken Sie bitte mit der rechten Maustaste auf den entsprechenden Icon und wählen Sie im Kontextmenü "Ziel speichern unter..." aus.';
    echo "<form name=\"form\" action=\"\"><input type=\"hidden\" id=\"hidden\" name=\"hidden\" value=\"\"></form>";

    ?>

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Download-Liste

Beitrag von Spider IT » Mo 5. Aug 2013, 07:26

Versuchs mal mit urldecode() (http://de.php.net/manual/de/function.urldecode.php).

Gruß
René

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

Re: Download-Liste

Beitrag von Peer » Mo 5. Aug 2013, 10:06

Hallo René,

danke für deine Rückmeldung.
Leider sind meine Kenntnisse nicht gut genug um den fehlenden Code einzubinden.

Hättest du einen Tipp für mich ?

Danke

Gruß

Peer

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Download-Liste

Beitrag von Spider IT » Mo 5. Aug 2013, 11:10

Hallo Peer,

Code: Alles auswählen

echo $db->f("description");
wird zu

Code: Alles auswählen

echo urldecode($db->f("description"));
Übrigens,

Code: Alles auswählen

if ($db->f("description") != $db->f("")) {
soll wohl eher

Code: Alles auswählen

if ($db->f("description") != "") {
heißen ;)

Gruß
René

Gesperrt