+ Antworten
Ergebnis 1 bis 12 von 12

Thema: sk_pagecomments nur von bestimmten usern anzeigen

  1. #1
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12

    sk_pagecomments nur von bestimmten usern anzeigen

    hallo zusammen!

    ist es möglich sk_pagecomments so einzustellen, dass man nur beiträge bestimmter nutzer sieht?

    im konkreten fall soll ein eingeloggter FE-User nur seine eigenen Kommentare sehen können.

    Vielen Dank für Eure Hilfe
    Christoph

  2. #2
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    391
    Hi, dein Vorhaben sollte mit typoscript machbar sein.

    Nimm zum beispiel einen marker:

    Code:
    DEIN_MARKER = CONTENT
    DEIN_MARKER {
    wrap= 	
    table = tabelle_skpagecomments
    select {
    max = 5
    orderBy = title 
    pidInList = pid_sysfolder
    andWhere.dataWrap = verfasser = {TSFE:fe_user|user|uid}
    }
    renderObj = COA
    renderObj {
               
    5 = TEXT
    5.field = title
    }
    }
    Natürlich mußt du die Feldanmen noch an die Felder von skpagecomments anpassen.

    Gruß, Katjusha
    Geändert von Katjusha (10.04.2010 um 16:27 Uhr)

  3. #3
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12

    Smile vielen dank

    hey geil, danke für deine Antwort!

    Kannst du mir vielleicht noch ein paar kleine Erläuterungen zu deinem Code nachschieben?

    Ich sehe scon, dass ich schwere Defizite im Bereich TypoScript habe...Kannst du hier vielleicht ein Tutorial empfehlen?

    Nochmals vielen Dank, starke Nummer!

  4. #4
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    391
    Gern geschehen. Also was ein Marker ist weißt du ja wahrscheinlich. Der Code der in diesem Beispiel dem Marker zugewiesen ist, ist eigentlich eine ganz normale Select datenbankabfrage, eben übersetzt in typoscript-syntax. Zu den einzelnen Lines:

    Code:
    wrap= 	<div class="usercomments">|</div> 
    table = tabelle_skpagecomments // der tabellenname
    select {
    max = 5
    orderBy = title //anordnen nach diesem feld
    pidInList = pid_sysfolder // pid des sysordners wo die komments gespeichert werden
    andWhere.dataWrap = verfasser = {TSFE:fe_user|user|uid} /* hier hast du die Where-bedingung, alle anzeigen, wo das feld "verfasser" (feldname von skpagecomments eintragen) identisch ist mit der uid des eingeloggten benutzers. hier kommt einem entgegen, das bei typo3 die daten des eingeloggten users global verfügbar sind, kannst zb auch username nehmen statt uid */
    }
    renderObj = COA // hier kannst du definieren, welche felder ausgegeben werden sollen
    renderObj {
               
    5 = TEXT
    5.field = title // feld title
    10 = TEXT
    10.field = subtitle // feld untertitel
    Mit tutorials ist es so eine sache, gibt eigentlich viele gute. Im prinzip wäre es gar nicht schlecht sich mal ganz ausführlich die tsref durchzulesen, habe ich selber auch noch nicht gemacht, weil es ein ziemlicher wälzer ist, aber wenn du das ganz systematisch durchgehst, wirst du es hintrher leichter mit ts haben. Das coole ist halt auch, das man mit ts wirklich extrem umfangreiche und flexible konfiguratiuonsmöglichkeiten zur hand hat.

  5. #5
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12

    Fantastisch

    Das habe ich soweit geblickt. Bzgl. der Tsref gebe ich Dir Recht.

    Ein verzwicktes Problem habe ich jedoch immernoch:
    Wie kann ich das ganze mit tt_news verbinden? Ich hätte gerne, das sowohl in der Single als auch in der List-Ansicht jeweils der Inhalt des letzten Kommentars des eingeloggten FE-Users neben dem News-Beitrag erscheint.
    Wie stelle ich die Verknüpfung zwischen Deiner SQL-Abfrage und dem Newstemplate her?

  6. #6
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    391
    In der Single-Ansicht könnte das so gehen:

    HTML-Code:
    andWhere.dataWrap = news_id = {GPvar:tx_ttnews|tt_news}
    wobei du das andWhere einfach eine Zeile nach dem where einfügst.
    Bei List ist die Sache schon etwas komplizierter, du mußt ja ins News-Template rein und für jede News einzeln eine Abfrage vornehmen.
    Kuck dir mal die Extension ttnewsgenericmarkers an, damit kannst du relativ einfach eigene Marker für tt_news erstellen und dann kannst du diesem Marker den jeweils passenden Kommentar zuweisen.

  7. #7
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12
    ttnewsgenericmarkers, das ist die Lösung für fast alle Probleme rund um tt_news! Vielen Dank, Spitzentip.

    Aber nochmal zu deinem TS-Code. Konkret zu pidInList: Comments werden doch garnicht in einem Sysordner gespeichert, oder? Sie werden jedoch einer Page zugeordnet, in der Regel der Page, die das Single-View-tt_news-Plugin enthält. Muss ich dann das angeben?

    Und als Tabelle gebe ich den Tabellennamen im MySQL an, also tx_skpagecomments_comments?
    Die andWhere.dataWrap-Zeile sieht bei mir so aus, kann das klappen? :
    andWhere.dataWrap = name = {TSFE:fe_user|user|username}
    (ich will das username verglichen wird)

    Ausgegeben werden soll nur der Kommentarinhalt, also? :
    renderObj = COA
    renderObj {

    5 = TEXT
    5.field = comment
    }
    Geändert von upsworld (14.04.2010 um 14:16 Uhr)

  8. #8
    TP-Supporter Katjusha macht alles soweit korrekt Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    391
    Die andWhere.dataWrap-Zeile sieht bei mir so aus, kann das klappen? :
    andWhere.dataWrap = name = {TSFE:fe_user|user|username}
    (ich will das username verglichen wird)

    Ausgegeben werden soll nur der Kommentarinhalt, also? :
    renderObj = COA
    renderObj {

    5 = TEXT
    5.field = comment
    }
    Das sollte so funktionieren, sofern die verwendeten namen "name" und "comment" den Feldnamen von sk_pagecomments entsprechen.
    bzgl pidInList, probiert mal die Seiten-Id, wo das Gästebuch platziert ist.

  9. #9
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12

    scheisse

    Anbei mein aktueller, nicht funktionierender Code. Was funktioniert ist den Marker zu füllen: So wrapt er mir die div wunderbar. Jedoch klappt die Datenbankabfrage nicht. So ein Ärger. Was mache ich denn falsch?

    Code:
    plugin.tt_news.genericmarkers {
    
    gebot = CONTENT
    gebot {
    wrap=<div class="usercomments">|</div> 	
    table = tx_skpagecomments_comments  #dies ist der name wie er mir im phpmyadmin angezeigt wird
    select {
    max = 1  #ich will nur einen kommentar, es geht letztlich um ein gebot
    orderBy = comment 
    where=name={TSFE:fe_user|user|username}
    }
    renderObj = COA
    renderObj {
               
    5 = TEXT
    5.value = hallodri  # nur zum testen, würde field nehmen sonst...
    }
    }
    
    }

  10. #10
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12
    Habe jetzt mal einige CONTENT-Abfragen ausprobiert, z.B. auch auf die Tabelle
    tt_news.
    Ausgegeben wurde mir immer nur eine Abfrage auf die tt_content Tabelle. Bei allen anderen wurde nichts ausgegeben. Muss ich bei anderen Tabellen vielleicht irgendwas besonderes beachten oder so?

  11. #11
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12

    List-View + Abfrage

    So. Mit Generic Markers und der richtigen Abfrage, habe ich nun die Lösung gefunden. Ich habe einen Marker im News-Template Namens ###GENERIC_GEBOT### erstellt.

    Code:
    plugin.tt_news.genericmarkers {
    
    
                            gebot = CONTENT
                            gebot {
                              wrap= 	|
    table = tx_skpagecomments_comments
    select {
    prioriCalc = intval
    max = 1 # Nur ein Kommentar
    orderBy = uid desc # Zeigt immer den neuesten Kommentar an
    where.data = name = TSFE:fe_user|user|username # Hier wird die Abfrage auf den aktuellen Nutzer reduziert
    andWhere.dataWrap = pivar = "tx_ttnews[tt_news]={GPvar:tx_ttnews|tt_news}" # Dies ist die Verknüpfung zwischen Kommentar und News-ID
    }
    renderObj = COA
    renderObj {
               
    5 = TEXT
    5.field = comment # Gibt den Kommentar, in meinem Fall ein Gebot aus
    7 = TEXT
    7.value = &nbsp;Euro # Fügt die Bezeichnung "Euro" hinzu
    
    }
    }
    }
    Soweit so gut.
    Jetzt ist nur noch die Frage, wie ich das ganze in der List-Ansicht realisiere. Hier ist die Schwierigkeit in der AndWhere - Abfrage die jeweilige News-ID der jeweiligen Zeile aus der List-Ansicht zu übergeben. {GPvar:tx_ttnews|tt_news} funktioniert nicht.

  12. #12
    TP-Junior upsworld macht alles soweit korrekt
    Registriert seit
    Mar 2010
    Beiträge
    12
    So, anbei die Lösung für die List-Ansicht. Eigentlich garnicht schwer. Man nimmt einfach am besten einen der vorhandenen Marker, die man nicht braucht, aus dem News-Template (List-View). Ich habe den Author-Marker genommen. Dann kann man einfach die List-View folgendermaßen konfigurieren:

    plugin.tt_news.displayList {
    author_stdWrap >
    author_stdWrap.cObject = COA
    author_stdWrap.cObject {

    20 = CONTENT
    20 {
    wrap= |
    table = tx_skpagecomments_comments
    select {
    pidInList = 34 # Hier muss unbedingt die Page-ID der Single-Ansicht, die die Kommentare enthält angegeben werden!
    prioriCalc = intval
    max = 1
    orderBy = uid desc
    where.data = name = TSFE:fe_user|user|username
    andWhere.dataWrap = pivar = "tx_ttnews[tt_news]={field:uid}" # Hier wird die jeweilige News-ID übergeben



    }
    renderObj = COA
    renderObj {

    5 = TEXT
    5.field = comment
    7 = TEXT
    7.value = &nbsp;Euro


    }
    }

    }

    }

+ Antworten

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 08.01.2009, 20:10
  2. sk_pagecomments
    Von Borusse im Forum TYPO3
    Antworten: 7
    Letzter Beitrag: 19.12.2008, 14:16
  3. sk_pagecomments
    Von Borusse im Forum TYPO3
    Antworten: 3
    Letzter Beitrag: 19.03.2008, 18:23
  4. Antworten: 5
    Letzter Beitrag: 18.03.2008, 12:05
  5. nur einen bestimmten bereich eines divs anzeigen
    Von joextra im Forum HTML & CSS
    Antworten: 7
    Letzter Beitrag: 22.11.2007, 19:32

Aktive Benutzer

Aktive Benutzer

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

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51