Contao-Camp 2024
Ergebnis 1 bis 38 von 38

Thema: Newslist und Newsreader auf einer Seite - Ausblenden der angewählten NAchricht in der

  1. #1
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard Newslist und Newsreader auf einer Seite - Ausblenden der angewählten NAchricht in der

    Hallo Community,

    Ich habe eine Idee, zu der mir aber gerade der Ansatz fehlt. Ist es möglich auf einer Seite eine Newslist und einen Reader so einzubinden (also z.B. den Reader in der Hauptspalte und die Liste in der rechten Spalte), dass wenn man in der Liste eine Nachricht anwählt, diese im Reader geöffnet wird und die aktuell angezeigte Nachricht in der Liste ausgeblendet wird?

    Tausend Dank

  2. #2
    Contao-Nutzer
    Registriert seit
    15.11.2010.
    Beiträge
    12

    Standard

    Sehr gewagter Ansatz, soll nur paar Denkanstöße liefern, bin mir momentan selber nicht sicher, ob das funktioniert:

    Über ein Modul kannst Du ja alle Nachrichten eines Archives anzeigen lassen. Dies benutzt Du für die Newslist. Und im Reader wird dann die Nachricht angezeigt. Wenn jetzt eine Nachricht geöffnet wird, müsste doch rein theoretisch die aktuelle Nachricht die Klasse .active bekommen und Du könntest diese per CSS unsichtbar machen bzw. das Template anpassen und per PHP active gleich gar nicht anzeigen lassen.

    Habe aber so das Gefühl, dass Du erreichen willst, dass die gelesenen Nachrichten ausgeblendet werden und nicht nur die aktuell gelesene, das dürfte aber wohl komplizierter werden, spontan fallen mir da nur Cookies ein, a:visited wäre wohl zu abgedreht

  3. #3
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Hallo Jonas, Danke für Deine Antwort. Was meinst Du konkret mit
    Über ein Modul kannst Du ja alle Nachrichten eines Archives anzeigen lassen.
    ???
    Wenn Du damit das normale Newslist-Modul meinst, da gibt es leider keine .active-klassen. Man müsste eine solche irgendwie erzeugen....

    Habe aber so das Gefühl, dass Du erreichen willst, dass die gelesenen Nachrichten ausgeblendet werden
    Nee, nee, das wäre zu abgedreht. Es geht nur darum, dass eine Newsliste in der rechten Spalte steht und ein Newsreader in der Hauptspalte. Wenn ich jetzt in der Liste bei einer Nachricht auf weiterlesenklicke, soll sie einfach nur aus der List verschwinden, da sie ja aktuell im Reader geöffnet ist...

    Als Beispiel habe ich diese Website im englischen Forum gefunden:
    http://www.graphitit.fr/brochures/it...roconseil.html

    Wenn man hier in der Newslist eine Nachricht anklickt wird sie ausgegeben und über .active in der Liste grau hinterlegt. leider gab es keine Lösung zum Thema...
    Geändert von felix123 (17.11.2010 um 23:17 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    15.11.2010.
    Beiträge
    12

    Standard

    Mist, dachte das ging so schön. Merke aber grad selber, dass hier Contao leider keine so netten Klassen vergibt. Dachte es gibt ein Modul, um sozusagen ein Nachrichtenmenü zu schaffen und dann eben die aktuelle Seite ansprechen zu können.

    Sehe da momentan keine andere Möglichkeit, als ein neues Modul zu kreieren, das die aktuelle News rausschmeißt. Frag mich jetzt aber nicht, wie das konkret funktionieren könnte, da bin ich jetzt überfragt Wenn Du morgen noch keine Lösung hast, kann ich mir das aber nochmal anschauen, mir fehlen aber grad die Nerven, jetzt noch groß rumzuprobieren.

  5. #5
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Meine bisherige (und einzige) idee sieht vor, in dem wählbaren Template der Newslist (also z.B. layout_latest) abzufragen, ob denn der Link des Eintrags der tatsächlichen URl der Seite (via inserttag) entspricht:

    Also irgendwie im Stile von:

    Code:
    <?php if ($link == '{{env::request}}'): ?>
    dann gib eine active-klasse aus
    <?php else: ?>
    Gib die normale Link-Headline aus
    <?php endif; ?>
    Aber irgendwie funzt das so nicht ganz ... Hat jemand dazu ne Idee?

  6. #6
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Ok, ich habs gelöst: Im Template der Newslsit (hier z.B. layout_latest) habe ich dem umgebenden div mit folgendem Code eine Active-Kasse verpasst:

    Vorher:

    Code:
    <div class="layout_short block<?php echo $this->class; ?>">
    Nachher:

    Code:
    <div class="layout_short block<?php echo $this->class; ?> 
    <?php $realurl = $this->replaceInsertTags( '{{env::request}}' );
       if ($realurl == $this->link) { echo 'active'; }; ?>">
    Dabei muss man erst für das inserttag mittels replacementinserttag eine Variabel definieren (hier: $realurl) und dann via if-Abfrage checken, ob sie mit der tatsächlichen url übereinstimmt. Scheinbar kann man inserttags nicht direkt im PHP-Code verwenden...

  7. #7
    Contao-Fan Avatar von chr.flader
    Registriert seit
    03.07.2009.
    Beiträge
    801

    Standard

    Moin!

    Ist es denn jetzt so, dass man sagen kann es geht?

    Christian

  8. #8
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Naja, ich habe was ich wollte. Mit der geposteten Lösung habe ich dem div-Tag, dass jeden Nachrichten-Beitrag umschließt eine "active" Klasse verpasst.

  9. #9
    Contao-Fan Avatar von chr.flader
    Registriert seit
    03.07.2009.
    Beiträge
    801

    Standard

    Zitat Zitat von felix123 Beitrag anzeigen
    Vorher:

    Code:
    <div class="layout_short block<?php echo $this->class; ?>">
    Nachher:

    Code:
    <div class="layout_short block<?php echo $this->class; ?> 
    <?php $realurl = $this->replaceInsertTags( '{{env::request}}' );
       if ($realurl == $this->link) { echo 'active'; }; ?>">
    Hallo Felix,

    ich habe es jetzt mal versucht. Allerdings scheint mir dein Code nicht richtig zu sein oder ich bin zu blöd.

    Ich bekomme lediglich das Wort: "active" in meine FE Ansicht angezeigt. Ist das irgendwie etwas nicht geschlossen, dass er da keine Klasse draus macht?

    Christian

  10. #10
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Ich kann, um ehrlich zu sein, keinen Fehler erkennen. Hast Du beim Kopieren alle " mit übernomen? Ich habe Dir hier nochmal den Code aus einem meiner Projekte kopiert .

    Code:
    <div class="layout_short block<?php echo $this->class; ?> <?php $var = $this->replaceInsertTags( '{{env::request}}' ); if ($var == $this->link) { echo 'active'; }; ?>">
    Vielleicht gab es einen Fehler beim Copy-Paste-Verfahren. Gib den Code doch mal von Hand ein. Vom Prinzip soll die Abfrage ja auch nur den Text "active" ausgeben. Nur halt im Bereich class="...". Deswegen sind die Anführungszeichen auch so wichtig!

    Ach ja, häufig gibt es beim Kopieren Probleme mit den geschweiften Klammern, evtl. ist da was durcheinander gekommen?
    Geändert von felix123 (01.12.2010 um 10:35 Uhr)

  11. #11
    Contao-Fan Avatar von chr.flader
    Registriert seit
    03.07.2009.
    Beiträge
    801

    Standard

    Danke Felix,

    jetzt hat es geklappt. Was genau hast du jetzt durch das CSS gelöst? Wie bekomme ich jetzt die gesamten Auflistungen der News weg und bekomme nur den Newsleser angezeigt?

    Christian

  12. #12
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Hey Christian,

    ich glaube, da hast Du was missverstanden. Ich wollte nicht die komplette Liste ausblenden, sondern nur eine "active"-Klasse, damit ich dann via CSS entweder über "display:none" den aktiven Eintrag in der Liste ausblenden oder, was ich zur Zeit mache, den aktiv angewählten Eintrag via CSS hervorheben kann (z.B. die Schrift rot oder den Hinterghrund hellgrau oder so...).

    Wie bekomme ich jetzt die gesamten Auflistungen der News weg und bekomme nur den Newsleser angezeigt?
    Wenn Du das erreichen willst, brauchst Du doch nicht die Newslist und den Newsreader auf eine Seite packen. Das löst Du, indem Du die Newslist auf eine Seite packst und den Reader auf eine untergeordnete Seite. Dann musst Du bei der Liste nur die untergeordnete Seite mit dem Reader als Weiterleitungszeil angeben. Oder verstehe ich einfach nur nicht was Du willst?

  13. #13
    Contao-Fan Avatar von chr.flader
    Registriert seit
    03.07.2009.
    Beiträge
    801

    Standard

    Noch einmal Hallo,

    danke für deine Bemühungen. Dann habe ich das wirklich falsch verstanden.
    Wie ich eine Newsliste und einen Newsleser eigentlich einbaue ist mir bekannt. Ich habe nur zu viele Seite und das würde jetzt sehr viel Arbeit machen und für den Mitarbeiter der die Seite pflegt einfach zu viel Aufwand sein und dieser hat vielleicht nicht so viel Ahnung wie ich von Contao.

    Aber eigentlich müsste man es doch auch hinbekommen, das die gesamte Liste aktive ist, wenn der Leser geöffnet wird oder nicht?

  14. #14
    Contao-Nutzer
    Registriert seit
    24.01.2010.
    Ort
    Berlin
    Beiträge
    72

    Standard

    Ah, ich glaube, jetzt verstehe ich, wo Du hin willst... Dann wird das hier für Dich die eleganteste Methode sein, Dein Problem zu lösen:

    http://www.contao-community.de/showt...in-einer-Seite

  15. #15
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Gibt es hierfür mittlerweile eine andere Lösung?

    Also ich habe immer rechts eine Nachrichten-Liste mit den 10 aktuellsten News.
    Wenn ich nun eine News von rechts auswähle und diese mir dann im Reader angezeigt wird, sollte diese dann ja nicht mehr in der Liste rechts stehen...

    Könnte ihr mir da weiterhelfen?

    Danke
    Grüße
    Matu
    Viele Grüße aus Köln
    Matu

  16. #16
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Boah lange her...

    Aber gerade habe ich genau dieses Problem.

    Kann mir jemand helfen?
    Viele Grüße aus Köln
    Matu

  17. #17
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Da ich kein Programmierer bin, kann ich dies leider nicht lösen...

    Ich denke, es muss das News-Listentemplate so angepasst werden, dass dort eine Abfrage eingebaut wird, oder?
    Also wenn im Reader-Template die News-ID X dargestellt wird, darf diese nicht in der Liste auftauchen, oder?

    Kann mir jemand helfen?
    Ist denke ich für viele von Nutzen, oder?
    Viele Grüße aus Köln
    Matu

  18. #18
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    wieso nicht den Link checken wie ein paar Einträge vorher beschieben mit der class='active' bzw 'invisible'?
    Beispiel news_latest modifizierte 1. Zeile
    PHP-Code:
    <div class="layout_latest arc_<?php echo $this->archive->id?> block<?php echo $this->class?>
        <?php if ($this->link == $this->replaceInsertTags('{{env::request}}')) echo 'invisible'?>">
    Geändert von magicsepp (22.05.2014 um 12:35 Uhr)

  19. #19
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Super, es hat funktioniert. Danke !

    Wenn ich diesen Code für das Template news_simple einsetze, also nur die erste Zeile ersetze

    PHP-Code:
    <div class="layout_simple block<?php echo $this->class?>">
    <?php if ($this->hasSubHeadline): ?>
      <div class="subhead"><h2><?php echo $this->subHeadline?></h2></div>
    <?php endif; ?>
    <?php 
    if ($this->date): ?><time datetime="<?php echo $this->datetime?>"><?php echo $this->date?></time> <?php endif; ?><?php echo $this->linkHeadline?> 
    </div>
    werden die News teilweise nicht gezogen bzw. bei mehreren Newslistenmodulen auf einer Seite wird nur beim ersten Modul etwas verborgen und in den anderen Modulen wird nichts mehr angezeigt.

    Kannst du mir da auch noch helfen?
    Viele Grüße aus Köln
    Matu

  20. #20
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    da muss die Zeile entsprechen angepasst werden...
    folgender Teil muss dem CSS inzugefügt werden
    PHP-Code:
    <?php if ($this->link == $this->replaceInsertTags('{{env::request}}')) echo 'invisible'?>
    komplett ist das dann:
    PHP-Code:
    <div class="layout_simple block<?php echo $this->class?><?php if ($this->link == $this->replaceInsertTags('{{env::request}}')) echo ' invisible'?>">
    Viel Erfolg
    Geändert von magicsepp (23.05.2014 um 10:55 Uhr)

  21. #21
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Das hat nichts gebracht...

    Wenn ich es einsetze (deinen oberen Block, der untere verursacht einen Syntaxfehler) wird im ersten Modul zwar die betroffene Nachricht rausgenommen, es rutscht aber keine Nachricht nach (es sollen immer 6 News pro Modul dargestellt werden).
    In den beiden anderen Listenmodulen werden im zweiten noch 2 Nachrichten angezeigt und im dritten Modul keine News mehr.

    Kannst du erkennen, worann dies liegt?
    Viele Grüße aus Köln
    Matu

  22. #22
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    okay, dann muss ich mir das morgen genauer anschauen....

  23. #23
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Dank dir.
    Viele Grüße aus Köln
    Matu

  24. #24
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Der Syntax fehler sollte jetzt behoben sein. Kannst Du das mal testen, bitte.

  25. #25
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Habs eingesetzt und der Fehler ist weg.
    Die doppelte News wird aber nicht rausgenommen bzw. es bleibt alles beim alten...
    Viele Grüße aus Köln
    Matu

  26. #26
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Schau mal im HTML Code ob nicht die Klasse zusammen geschrieben werden eventuell bedarf es noch einem trennenden Leerzeichen.

  27. #27
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    weiß gerade nicht, wo ich gucken soll ...

    Also wenn ich ein Leerzeichen nach

    PHP-Code:
    <?php echo $this->class?>
    einfüge, sind die News in den anderen Listen wieder weg wie oben beschrieben...
    Geändert von matuweb (23.05.2014 um 10:54 Uhr)
    Viele Grüße aus Köln
    Matu

  28. #28
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    PHP-Code:
    echo ' invisible' 
    dann passt auch die class in news_simple

  29. #29
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Hab ich gemacht aber gleiche Problem wie oben...

    Nur zum Verständnis:
    Ich bastle die Sachen im Template news_simple ein, richtig?

    Viele Grüße aus Köln
    Matu

  30. #30
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Wenn ich bei den anderen beiden Modulen ein anderes Template auswähle, werden dort auch wieder die News gezogen...

    Was soll ich machen?
    Viele Grüße aus Köln
    Matu

  31. #31
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    news simple ist schon richtig. Kannst Du mir einen Link per pn zukommen lassen?

  32. #32
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Würde ich ja gerne, ist aber noch lokal in der Entwicklung...
    Viele Grüße aus Köln
    Matu

  33. #33
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    bei mir funktioniert news_simple mit der Zeile aus Thread #20.

  34. #34
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Bei einem Modul ja.

    Ich habe drei Newsmodule im rechten Bereich (Überschriften: BRANCHE, PRODUKTE, MARKT & MARKE), je news_simple als Template, untereinander.

    Dann sieht es so aus.

    newsleiste.jpg

    Es sollen eigentlich 6 News aus jeder Rubrik gezeigt werden.
    Beim ersten Modul wird eine News rausgekickt, also nur 5.
    Bei Modul 2 werden nur noch zwei News angezeigt und beim dritten Modul keine News mehr...
    Obwohl bei jedem Modul im Backend bei Anzahl eine 6 eingetragen ist.
    Geändert von matuweb (23.05.2014 um 11:46 Uhr)
    Viele Grüße aus Köln
    Matu

  35. #35
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Schick mir bitte mal den komplette html Code (per Email)... damit man sehen kann was da erzeugt wird.

  36. #36
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Danke, für den Code.
    Das template macht alles richtig .
    Unter Markt & Marke zeigen alle Links auf die gleiche Seite, damit verschwinden alle Links ;(
    Unter Produkte sind es 4, und Branche nurr eine News die ausgeblendet werden

    Mit der Vorgabe 6 Nachricht zu haben ist die "invisibile" Metode nicht ganz ideal.
    Ausserdem werden dadurch auch die Klasenn first, last, even und odd zerstört.

    Ich denke für eine so komplexe Newsliste müsste die Filterung bereits früher erfolgen.

  37. #37
    Alter Contao-Hase
    Registriert seit
    22.06.2009.
    Ort
    Köln
    Beiträge
    1.342

    Standard

    Klasse, das war es .

    Ich habe jetzt in den einzelnen News-Archiven jeweils eine andere Detailseite ausgewählt und jetzt werden auch in den beiden anderen Listenmodulen die News angezeigt.

    Vieln Dank für deine Mühe.
    Viele Grüße aus Köln
    Matu

  38. #38
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Code:
    <div class="layout_short block<?php echo $this->class; ?> <?php $var = $this->replaceInsertTags( '{{env::request}}' ); if ($var == $this->link) { echo 'active'; }; ?>">
    Das Code-Snippet funktioniert unter Contao 4.4 immer noch einwandfrei.
    Somit kann bei Newsreader und Newsliste auf einer Seite, der gerade aktive Beitrag in der Newsliste ausgeblendet werden (.active via CSS ausblenden).

    Auch unter Contao 4.13 läuft das noch.
    Geändert von Mecintosch (22.06.2023 um 16:45 Uhr)

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Zweimal Newslist auf einer Seite - Paginierung steuert immer beide...
    Von MPstudent im Forum Nachrichten/Events/FAQ
    Antworten: 4
    Letzter Beitrag: 10.01.2013, 11:28
  2. Antworten: 0
    Letzter Beitrag: 06.10.2010, 23:14
  3. In einer Seite Inhalt der letzten besuchen Seite ausgeben ...
    Von Toffa im Forum Allgemeine Inhaltselemente
    Antworten: 0
    Letzter Beitrag: 09.09.2010, 16:46
  4. Variable - für den Titel einer nachricht.
    Von mokaki im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 30.07.2010, 07:51
  5. NewsList & NewsReader / Ajax laden
    Von Marcello im Forum Entwickler-Fragen
    Antworten: 9
    Letzter Beitrag: 26.08.2009, 16:13

Lesezeichen

Lesezeichen

Berechtigungen

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