Ergebnis 1 bis 23 von 23

Thema: Auflistung Bedingung pid

  1. #1
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard Auflistung Bedingung pid

    Hallo,

    ich versuche eine Auflistung aller Dateien eines Ordners im Frontend auszugeben. Im Modul kann ich verschiedene Bedingungen angeben. Die Bedingung der ParentID der pid funktioniert jedoch nicht. Das sieht derzeitig dann so aus. z.B. pid="5dfc3d42431911e8b19220cf30c430ea"

    Könnte mir da jemanden bitte einen Hinweis geben was ich falsch mache?
    Geändert von Benjamin-Scherf (22.04.2018 um 03:05 Uhr)

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Du verwendest für uuid nicht für ID des Ordners.

  3. #3
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Du verwendest für uuid nicht für ID des Ordners.
    Ich möchte ja alle Kindelemente eines Ordners ausgeben. Das Elternelement hat eine uuid und diese wird so zur pid des Kindelementes. Jedenfalls ergibt sich das so auch aus der Datenbank.

  4. #4
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.512
    User beschenken
    Wunschliste

    Standard

    Normalerweise wird die id der Elterntabelle zur pid in der Kindtabelle.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  5. #5
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Normalerweise wird die id der Elterntabelle zur pid in der Kindtabelle.
    So kenne ich das auch. In der Datenbank sieht das zur Zeit so aus.

    sql.jpg

  6. #6
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Wäre das unter diesen Umständen so den überhaupt die richtige Schreibweise? pid="5dfc3d42431911e8b19220cf30c430ea"

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Du musst die UUID aus der Dateiverwaltung verwenden. Bin mir aber nicht sicher ob du sie dann auch noch binär konvertieren musst.

  8. #8
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    pid="5dfc3d42-4319-11e8-b192-20cf30c430ea"
    pid="5dfc3d42431911e8b19220cf30c430ea"
    pid="001101010110010001100110011000110011001101100 10000110100001100100010110100110100001100110011000 10011100100101101001100010011000101100101001110000 01011010110001000110001001110010011001000101101001 10010001100000110001101100110001100110011000001100 0110011010000110011001100000110010101100001"

    Egal welche Schreibweise es erfolgt keine Ausgabe.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Probier mal
    Code:
    pid = UNHEX("5dfc3d42431911e8b19220cf30c430ea")

  10. #10
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Super das hat funktioniert. Ich danke dir.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Warum brauchst du überhaupt so eine Auflistung? Wäre ein Downloads Inhaltselement nicht viel einfacher?

  12. #12
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Es soll ein Download-Bereich für angemeldete Mitglieder entstehen. Bei der Nutzung Download Inhaltelementes werden nur die Daten aus dem Homedir ausgegeben ich benötige jedoch Subfolder. Ungefähr so:

    userfolders

    -->jhondoe
    ---->rechnungen
    ---->stornierungen

    -->maxmusterman
    ---->rechnungen
    ---->stornierungen

    Ich versuche für jeden Unterordner ein Listenmodul zu erstellen und die Bedingung wie folgt zu setzen:

    Zeige alle Dateien aus dem Ordner Rechnungen des angemeldeten Mitgliedes. Das Homedir wird automatisch nach dem usernamen bezeichnet. So ist mein Gedanke.

    So ganz funkt das noch nicht.
    Geändert von Benjamin-Scherf (23.04.2018 um 07:08 Uhr)

  13. #13
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    So das Problem konnte ich soweit lösen.
    Die Bedingung im Auflistungs-Modul lautet wie folgt:

    Listen Modul für Rechnungen:
    path LIKE '%{{user::username}}/Rechnungen%' AND extension="pdf"

    Listen Modul für Stornierungen
    path LIKE '%{{user::username}}/Stornierungen%' AND extension="pdf"

  14. #14
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Gut gelöst. So müsste es noch etwas performanter gehen:
    Code:
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND extension='pdf'
    Für alle Dateien:
    Code:
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND type='file'
    In einem Template kann man sowas auch mit Models machen. Hier mit nem LIKE, geht aber bestimmt auch mit nem Join o. ähnlichem.
    PHP-Code:
    $memberMainPath 'files/member/';
    $memberUsername 'andreas';
    $subfolder      '/invoices';

    $userFiles = \FilesModel::findBy(
        array(
    'type=?''path LIKE ?'),
        array(
    'file'$memberMainPath.$memberUsername.$subfolder.'%')
    );

    if(
    $userFiles)
    {
      foreach(
    $userFiles as $file)
      {
        
    dump($file->path);
      }

    Für die Logik ist es einfacher, wenn man sich anstatt "pid" vorstellt, dass dieses Feld "puuid" heißt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  15. #15
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

  16. #16
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Gut gelöst. So müsste es noch etwas performanter gehen:
    Code:
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND extension='pdf'
    Für alle Dateien:
    Code:
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND type='file'
    In einem Template kann man sowas auch mit Models machen. Hier mit nem LIKE, geht aber bestimmt auch mit nem Join o. ähnlichem.
    PHP-Code:
    $memberMainPath 'files/member/';
    $memberUsername 'andreas';
    $subfolder      '/invoices';

    $userFiles = \FilesModel::findBy(
        array(
    'type=?''path LIKE ?'),
        array(
    'file'$memberMainPath.$memberUsername.$subfolder.'%')
    );

    if(
    $userFiles)
    {
      foreach(
    $userFiles as $file)
      {
        
    dump($file->path);
      }

    Für die Logik ist es einfacher, wenn man sich anstatt "pid" vorstellt, dass dieses Feld "puuid" heißt.

    PDFs habe ich nur drin, da es sich ausschließlich um PDFs handelt in dem System.

    Das mit den Models schaue ich mir mal an.

  17. #17
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Bei der ganzen Vorgehensweise gibts aber doch noch ein Problem.

    Die Bedingung sieht nun so aus:

    path LIKE '%{{user::username}}%' AND name LIKE '%{{page::alias}}%' AND extension="pdf"

    Wenn der Username/Userfolder nun johndoe ist und die Seite rechnungen als alias hat werden alle Daten ausgegeben, welche

    johndoe/rechnungen

    im Pfad haben. So spare ich es auf für jede Seite Rechnungen, Stornierungen etc ein eigenes Modul anzulegen.

    Das Template habe ich angepasst, so dass ein realer Link etsteht:

    Code:
    <a href="intern.html?file=files/userfolders/{{user::username}}/{{page::alias}}/<?= $col['content'] ?>"><?= $col['content'] ?></a>
    oder
    Code:
    <a href=files/userfolders/{{user::username}}/{{page::alias}}/<?= $col['content'] ?>"><?= $col['content'] ?></a>

    Die Links funktionieren so aber nicht. Wenn ich das ganze für die Hauptebene des Userfolders setze, dann funktioniert es. Ich denke, dass hat was mit den Userrechten zu tun. Hat hier jemand einen Tip für mich.
    Oder bin ich gänzlich auf dem Holzweg?
    Geändert von Benjamin-Scherf (23.04.2018 um 14:17 Uhr)

  18. #18
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von cliffen Beitrag anzeigen
    Das wollte ich auch nutzen, nur ist es nicht mit Contao 4 kompatibel. Bei de System kommen ein paar komplizierte Sachen zu Stande und ein Update, welches ja spätestens in einem Jahr ansteht wird teuflisch.

  19. #19
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von cliffen Beitrag anzeigen
    Ich hatte schon an den Herrn Hoff eine Mail geschickt bezüglich eines Updates. Wenn es neue Informationen dazu gibt währe ich gespannt.

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Da die Extension keine weiteren Abhängigkeiten hat, könntest du sie auch manuell in Contao 4 installieren. Wenn alles funktioniert, kannst du auf GitHub ein Ticket eröffnen, dass die Extension für Contao 4 freigeschalten werden kann.

  21. #21
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Gut gelöst. So müsste es noch etwas performanter gehen:
    Code:
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND extension='pdf'
    Und m.E. auch wichtig: damit schließt Du das Problem, daß der User peter auch die Dateien des Users hanspeter zu sehen bekommt, denn

    Code:
    path LIKE '%{{user::username}}/Rechnungen%' AND extension='pdf'  // match von peter/Rechnungen bei hanspeter/Rechungen
    
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND extension='pdf' // kein Match von files/member/peter/Rechnungen bei files/member/hanspeter/Rechungen
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  22. #22
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Und m.E. auch wichtig: damit schließt Du das Problem, daß der User peter auch die Dateien des Users hanspeter zu sehen bekommt, denn

    Code:
    path LIKE '%{{user::username}}/Rechnungen%' AND extension='pdf'  // match von peter/Rechnungen bei hanspeter/Rechungen
    
    path LIKE 'files/member/{{user::username}}/Rechnungen%' AND extension='pdf' // kein Match von files/member/peter/Rechnungen bei files/member/hanspeter/Rechungen
    Ja so habe ich es letztendlich auch getan. Danke

  23. #23
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Beiträge
    46

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Da die Extension keine weiteren Abhängigkeiten hat, könntest du sie auch manuell in Contao 4 installieren. Wenn alles funktioniert, kannst du auf GitHub ein Ticket eröffnen, dass die Extension für Contao 4 freigeschalten werden kann.
    Ich habe die Extension manuell installiert und es hat funktioniert. Ich werde es auf Github mitteilen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •