Das Contao Camp 2020 in Hamburg. LEIDER ABGESAGT!
Ergebnis 1 bis 31 von 31

Thema: Newsreader: News und Kommentare in verschiedenen Layoutbereichen

  1. #1
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Beitrag Newsreader: News und Kommentare in verschiedenen Layoutbereichen

    Basiert auf:

    root/system/module/news/templates/mod_newsreader.tpl (Contao 2.9.1)

    Kurzbeschreibung:

    Eröffnet die Möglichkeit die Kommentare und das Formular von den News zu trennen und in einem anderen Layoutbereich zu präsentieren, z.B. in der rechten Spalte.

    Ausführliche Beschreibung/Sonstige Infos:
    Hier das mod_newsreader.tpl leicht modifiziert, natürlich nicht im Core, sondern eine Kopie im Ordner roots/templates/
    PHP-Code:
    <!-- Nächster Block nicht im Reader mit der Klasse comments-only -->
    <?php   if(strpos($this->class'comments-only') === false): ?>
    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>>
    <?php if ($this->headline): ?>

    <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>>
    <?php endif; ?>
    <?php 
    echo $this->articles?>

    <!-- indexer::stop -->
    <p class="back"><a href="<?php echo $this->referer?>" title="<?php echo $this->back?>"><?php echo $this->back?></a></p>
    <!-- indexer::continue -->
    <?php endif; ?>
    <!-- Nächster Block nicht im Reader mit der Klasse comments-only - ENDE -->

    <!-- Nächster Block nicht im Reader mit der Klasse news-only -->
    <?php   if(strpos($this->class'news-only') === false): ?>

    <?php if ($this->allowComments && ($this->comments || !$this->requireLogin)): ?>

    <div class="ce_comments block">

    <<?php echo $this->hlc?>><?php echo $this->addComment?></<?php echo $this->hlc?>>
    <?php foreach ($this->comments as $comment) echo $comment?>
    <?php 
    echo $this->pagination?>
    <?php 
    if (!$this->requireLogin): ?>

    <!-- indexer::stop -->
    <div class="form">
    <?php if ($this->confirm): ?>

    <p class="confirm"><?php echo $this->confirm?></p>
    <?php else: ?>

    <form action="<?php echo $this->action?>" id="<?php echo $this->formId?>" method="post">
    <div class="formbody">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId?>" />
    <div class="widget">
      <?php echo $this->fields['name']->generateWithError(); ?> <?php echo $this->fields['name']->generateLabel(); ?> 
    </div>
    <div class="widget">
      <?php echo $this->fields['email']->generateWithError(); ?> <?php echo $this->fields['email']->generateLabel(); ?> 
    </div>
    <div class="widget">
      <?php echo $this->fields['website']->generateWithError(); ?> <?php echo $this->fields['website']->generateLabel(); ?> 
    </div>
    <?php if (isset($this->fields['captcha'])): ?>
    <div class="widget">
      <?php echo $this->fields['captcha']->generateWithError(); ?> <label for="ctrl_captcha"><?php echo $this->fields['captcha']->generateQuestion(); ?><span class="mandatory">*</span></label>
    </div>
    <?php endif; ?>
    <div class="widget">
      <?php echo $this->fields['comment']->generateWithError(); ?> <label for="ctrl_<?php echo $this->fields['comment']->id?>" class="invisible"><?php echo $this->fields['comment']->label?></label>
    </div>
    <div class="submit_container">
      <input type="submit" class="submit" value="<?php echo $this->submit?>" />
    </div>
    </div>
    </form>
    <?php if ($this->hasError): ?>

    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.scrollTo(null, ($('<?php echo $this->formId?>').getElement('p.error').getPosition().y - 20));
    //--><!]]>
    </script>
    <?php endif; ?>
    <?php 
    endif; ?>

    </div>
    <!-- indexer::continue -->
    <?php endif; ?>

    </div>
    <?php endif; ?>
    <?php 
    endif; ?>
    <!-- Nächster Block nicht im Reader mit der Klasse news-only - ENDE -->


    <!-- Nächster Block nicht im Reader mit der Klasse comments-only -->
    <?php   if(strpos($this->class'comments-only') === false): ?>

    </div>
    <?php endif; ?>
    <!-- Nächster Block nicht im Reader mit der Klasse comments-only - ENDE -->
    Ich habe nur IF-Abfragen mit den entsprechenden ENDIFs eingefügt. Habe einen HTML-Kommentar dazu geschrieben, kann man natürlich entfernen. Vergibt man keine Klassen, funktioniert das Template wie im Original (Contao 2.9.1).

    Jetzt noch den Artikel mit dem Newsreader kopieren, einfügen und den neuen auf rechte Spalte einstellen. Jetzt noch den Inhaltselementen dieser Artikel die Klassen news-only und comments-only mitgeben. Alles so, wie in den Screenshots zu sehen ist.
    frontend.png article.png class.png

    Die Funktion einen Kommentar hinzuzufügen funktioniert einwandfrei.

    Grüße Andreas
    Geändert von Andreas (16.09.2010 um 14:22 Uhr)
    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

  2. #2
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Danke für das Tutorial, kann man sicher gebrauchen.
    Eine einfache Lösung wäre es mit dem Grid System zu arbeiten dort kann man jo solche Spalten simmulieren.
    Kein Privat Support via PM.

  3. #3
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von schman Beitrag anzeigen
    Eine einfache Lösung wäre es mit dem Grid System zu arbeiten dort kann man jo solche Spalten simmulieren.
    Es geht hier explizit darum, die Kommentare in einen anderen Layout-Bereich (header, left, right, main, footer, custom) zu generieren. Sonst könnte man ja z.B. die Kommentare auch mit CSS aus dem Fluss herausnehmen und woanders darstellen. Es geht also nicht darum News links und Kommentare rechts darzustellen.

    Grüße
    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

  4. #4
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.166
    User beschenken
    Wunschliste

    Standard

    Hallo Andreas,
    das sieht doch mal brauchbar aus, auch für andere Zwecke
    Vielen Dank dafür.

    Hättest du nicht Lust das ins Wiki einzutragen?
    Finde sowas immer besser in einem Wiki untergebracht.

    Viele Grüße

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Puh, dann muss ich mich in das Wiki einarbeiten.

    Wenn du magst kannst du es 1zu1 von hier übernehmen und dort eintragen.

    Grüße
    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

  6. #6
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.166
    User beschenken
    Wunschliste

    Standard

    Hallo Andreas,
    super. Dann schreib ich mir das mal auf meine todo-Liste ;-)

    Schreib mir doch einfach mal kurz was du dann als Signatur auf der Seite haben möchtest, damit ich vllt nicht nur zu deinem Profil hier verlinke.
    Sollst ja auch was davon haben dein Wissen zu teilen ;-)

    Viele Grüße

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Jo, das wäre nett, verlinke einfach auf meine peinlich vernachlässigte Homepage

    Kriegst ne PM von mir.
    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

  8. #8
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.166
    User beschenken
    Wunschliste

    Standard

    Hallo Andreas,
    hier ist es nun:
    http://de.contaowiki.org/News_und_Ko...ayoutbereichen

    Ist nur mal eben schnell online gebracht. Eventuell wirds noch ein wenig anders Formatiert.
    Wenn du Anmerkungen hast, kannst mir die die direkt per PM schicken.

    Ich kann mal gucken das deine ganzen Anleitungen ins Wiki kommen (sind ja ein paar wenn ich mich recht erinner).

    Vielen Dank noch mal!

    Viele Grüße

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Super. Ich danke dir vielmals.

    Gruß von Andreas

    ps Vorgestern hatte ich mich dann auch mal im Wiki registriert und mich dort umgesehen. Warum kann man sich mit dem Zugang nicht auf den englischen Seiten einloggen, braucht man da einen zweiten Zugang? Ich wollte mal sehen, ob ich etwas übersetzen kann.
    Geändert von Andreas (18.09.2010 um 20:18 Uhr)

  10. #10
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.166
    User beschenken
    Wunschliste

    Standard

    Hallo Andreas,
    eigentlich sollte das irgendwie gehen.... das Prob. ist glaube ich , das die verschiedene URLs haben, damit man das netter machen kann mit dem Verlinken. Guck mal in deinem Profil, da müsste das einstellbar sein, das du da wechseln kannst. Ansonsten Melde dich mal bei Xtra (der Hostet das) oder bei Manitougs (der macht da am meisten).

    Viele Grüße

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Ok, danke, ich schau mal.
    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

  12. #12
    Contao-Fan Avatar von OneChance
    Registriert seit
    23.06.2009.
    Ort
    Wien 22.Bezirk
    Beiträge
    519
    User beschenken
    Wunschliste

    Standard

    Hallo Andreas,
    jetzt mal eine ganz naïve Frage muss ich diese Art verwenden wenn eine Gruppe die Beiträge lesen aber nur eine andere Gruppe die Beiträge kommentieren darf. Oder lässt es sich ohne auch lösen?
    Oder denke ich jetzt wieder mal zu komplex!

    Mfg Patrick
    There's only ONE Chance for the first Impression.

  13. #13
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Das Beispiel hat mit den Rechten erstmal nichts zu tun. Am besten probierst du es mal aus. Ich weiß jetzt auch noch nicht mal, ob das Default geht, dass du das Lesen einer Gruppe erlaubst und das schreiben einer anderen. Gäste lesen und Gruppen schreiben, dass ist glaube ich Default möglich.
    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

  14. #14
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'25"E 52°21'25"N
    Beiträge
    462

    Standard Etwas später...

    Fast zwei Jahre später möchte ich dieses Thema kurz wieder hervorkramen.
    Ist durch Contao 2.11.x irgendetwas an diesem Prozedere anders geworden? Hat das mod_newsreader andere veränderte Code-Stellen? Oder kann man problemlos die "alten" Codes für 2.9.x auch in die Templates unter 2.11.x einsetzen?
    Beste Grüße von

  15. #15
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Das weiß ich nicht. Vergleiche mod_newsreader.tpl aus der alten und mod_newsreader.xhtml|html5 aus der neuen Version.

    Oder einfacher - nimm direkt das neue Template und deaktiviere darin die jeweiligen 'Blöcke' die du nicht brauchst. Es geht ja nur darum, dass du das Modul zweimal einbindest und jeweils nur den Teil ausgibst, den du dort benötigst.

    Nimm aber die neue IF-Anweisung zum Checken der Klasse
    PHP-Code:
    <?php
    // alt
    if(strpos($this->class'comments-only') === false): ?>
    // News-Ausgabe
    <?php
    // alt
    if(strpos($this->class'news-only') === false): ?>
    // Comments-Ausgabe

    <?php
    // neu
    if(!in_array('comments-only'explode(' '$this->class))): ?>
    // News-Ausgabe
    <?php
    // neu
    if(!in_array('news-only'explode(' '$this->class))): ?>
    // Comments-Ausgabe
    Evtl. kannst du in Contao jetzt auch das Template wählen. Dann erstellst du zwei Templates, jeweils nur mit den Inhalten die du benötigst und wählst diese entsprechend aus.
    Geändert von Andreas (03.10.2014 um 15:38 Uhr)
    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

  16. #16
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'25"E 52°21'25"N
    Beiträge
    462

    Standard

    Hmmmm... ich bin kein PHP-Programmierer und habe mich jetzt gaaaanz langsam durch das Modul mod_newsreader.html5 rangetastet und mit den erwähnten IF-Aufrufen versucht, die "damals" eingesetzen Stellen ebenfalls dort einzubringen. Klappt bei mir nicht ganz, es erscheint nur der Kommentarblock.
    Ich bin den Code jetzt fünfmal sehr genau vergleichend durchgegangen und meine, nichts übersehen zu haben. Vielleicht schaut mal ein PHP-Kenner auf meinen Code, was da noch fehlen könnte:

    PHP-Code:
    <div class="nachrichtenleser block<?php echo $this->class?>">

    <h2><?php echo $this->newsHeadline?></h2>
    <?php if ($this->hasMetaFields): ?>

    <p class="info">Beitrag vom <?php echo $this->date?> Â· <?php echo $this->author?> <?php echo $this->commentCount?></p>
    <?php endif; ?>
    <?php 
    if ($this->hasSubHeadline): ?>

    <h3 class="subheadline"><?php echo $this->subHeadline?></h3>
    <?php endif; ?>

    <div class="ce_text">
    <?php if (!$this->addBefore): ?>

    <?php echo $this->text?>
    <?php 
    endif; ?>
    <?php 
    if ($this->addImage): ?>

    <div class="image_container<?php echo $this->floatClass?>"<?php if ($this->margin || $this->float): ?> style="<?php echo trim($this->margin $this->float); ?>"<?php endif; ?>>
    <?php if ($this->href): ?>
    <a href="<?php echo $this->href?>"<?php echo $this->attributes?> title="<?php echo $this->alt?>">
    <?php endif; ?>
    <img src="<?php echo $this->src?>" alt="<?php echo $this->alt?>" />
    <?php if ($this->href): ?>
    </a>
    <?php endif; ?>
    <?php 
    if ($this->caption): ?>
    <div class="caption"><?php echo $this->caption?></div>
    <?php endif; ?>
    </div>
    <?php endif; ?>
    <?php 
    if ($this->addBefore): ?>

    <?php echo $this->text?>
    <?php 
    endif; ?>

    </div>
    <?php if ($this->enclosure): ?>

    <div class="enclosure">
    <?php foreach ($this->enclosure as $enclosure): ?>
    <p><img src="<?php echo $enclosure['icon']; ?>" width="18" height="18" alt="<?php echo $enclosure['title']; ?>" class="mime_icon" /> <a href="<?php echo $enclosure['href']; ?>" title="<?php echo $enclosure['title']; ?>"><?php echo $enclosure['link']; ?> <span class="size">(<?php echo $enclosure['filesize']; ?>)</span></a></p>
    <?php endforeach; ?>
    </div>
    <?php endif; ?>
    <div class="clear"></div>
    <?php if ($this->addGallery):
        
    $objGallery = new NewsGallery($this);
        echo 
    $objGallery->generate();
    endif; 
    ?>

    </div>
    P.S.: Klar habe zwei Newsreader angelegt, einen für die Hauptspalte und einen für die rechte Spalte mit den jeweiligen CSS-Klassen.

    Edit: Tippfehler in der CSS-Klasse, jetzt funktioniert es – aber umgekehrt, Kommetar in Haupt, News in rechts... Hihihi. Siehe Beispiel:
    http://www.soundfile-music.de/news/i...-songbook.html
    Ich denke, dann muss ich wohl mal die CSS-Klassen in den neuen IF-Befehlen tauschen...
    Nochmal Edit: jawoll, die CSS-Klassen entgegen seiner ursprünglichen Bedeutung getauscht, jetzt klappt es mit den Bereichen.
    Warum aber weiß ich auch nicht so genau...
    Geändert von Jens Pielawa (10.10.2012 um 20:12 Uhr)
    Beste Grüße von

  17. #17
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Dein geposteter Code hat nichts mit mod_newsreader zu tun. Es sind auch keine IF-Anweisungen bez. der Klasse drin.

    Was du wissen solltest ist das hier:
    PHP-Code:
    <?php if (Bedingung): ?>
    Ausgabe wenn Bedingung erfüllt
    <?php endif; ?>
    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

  18. #18
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'25"E 52°21'25"N
    Beiträge
    462

    Standard

    Zwei Jahre später besteht erneut das Problem, dass ich kein ausgebildeter PHP-Programmierer bin. Die mod_newsreader.html5 sieht unter Contao 3.3.5 sehr übersichtlich aus:

    PHP-Code:
    <?php $this->extend('block_searchable'); ?>

    <?php $this->block('content'); ?>

      <?php echo $this->articles?>

      <!-- indexer::stop -->
      <p class="back"><a href="<?php echo $this->referer?>" title="<?php echo $this->back?>"><?php echo $this->back?></a></p>
      <!-- indexer::continue -->

      <?php if ($this->allowComments && ($this->comments || !$this->requireLogin)): ?>
        <div class="ce_comments block">
          <<?php echo $this->hlc?>><?php echo $this->addComment?></<?php echo $this->hlc?>>
          <?php echo implode(''$this->comments); ?>
          <?php echo $this->pagination?>
          <?php include $this->getTemplate('mod_comment_form''html5'); ?>
        </div>
      <?php endif; ?>

    <?php $this->endblock(); ?>
    Dennoch habe ich in mehreren Versuchen vergeblich versucht, die oben schon öfters angesetzten "Scheren" anzusetzen und die Blöcke "news-only" und "comments-only" hier zu separieren. Das Beispiel unter http://www.soundfile-music.com/news-...icht-2014.html zeigt, dass der Newsreader und die Klassen gesetzt sind. Nun sollen links nur die News und rechts nur die Kommentare zu sehen sein. Wer kann da bitte diese Sägerei (anhand des Beispiels von Contao 2.11) modernisieren?
    Geändert von Jens Pielawa (02.10.2014 um 21:11 Uhr)
    Beste Grüße von

  19. #19
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    1. Da war ein Fehler in #15. Ich habe ihn oben korrigiert. Es fehlte ein "!" (Nicht). Und die Logik ist nicht so einfach zu erkennen, da unter der comments-Abfrage die News ausgegeben wird und unter der news-Abfrage die Comments.

    2. Für Contao 3.3.5 ist das jetzt sehr einfach, man benötigt das Obige nicht mehr. Man kann für die verschiedenen Ausgabemodule eigene Templates erstellen und im Modul auswählen.

    Template mod_newsreader "kommentiert"
    PHP-Code:
    <?php $this->extend('block_searchable'); ?>

    <?php $this->block('content'); ?>

    <!-- Nächste Zeile gibt die News aus -->
      <?php echo $this->articles?>

      <!-- indexer::stop -->
    <!-- Nächste Zeile gibt den Backlink aus -->
      <p class="back"><a href="<?php echo $this->referer?>" title="<?php echo $this->back?>"><?php echo $this->back?></a></p>
      <!-- indexer::continue -->

      <?php if ($this->allowComments && ($this->comments || !$this->requireLogin)): ?>
    <!-- Nächster DIV gibt die Kommentare und das Formular aus -->
        <div class="ce_comments block">
    <!-- Überschrift -->
          <<?php echo $this->hlc?>><?php echo $this->addComment?></<?php echo $this->hlc?>>
    <!-- Comments -->
          <?php echo implode(''$this->comments); ?>
    <!-- Pagination -->
          <?php echo $this->pagination?>
    <!-- Formular -->
          <?php include $this->getTemplate('mod_comment_form''html5'); ?>
        </div>
      <?php endif; ?>

    <?php $this->endblock(); ?>
    Einfach die nicht benötigten Teile aus den Templates entfernen.
    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

  20. #20
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'25"E 52°21'25"N
    Beiträge
    462

    Standard

    Das Zersägen der mod_newsreader.html5 klingt verheißungsvoll und einfach – kapiere ich dennoch nicht... Wenn ich früher ein neues Modul "Nachrichtenleser" anlege, was ich einbinden muss (zweimal sozusagen), wurde das in den vorigen IF-Zerteilungen mittels CSS-Klassen zerlegt und damit auch zusammengehalten.
    Wie aber kann ich die zugrundeliegende mod_newsreader.html5, die dann offenbar zweimal existieren muss, einbinden, und vor allen Dingen wo? Wenn ich ein Modul anlege, bietet es mir als Nachrichtentemplates nur solche mit "news_*" an. Ich stelle mir auch die Frage, ob zwei veränderte mod_newsreader noch "voneinander wissen"...
    Ich würde eine Zerlegung einer mod_newsreader.html5 mittel IF-Stellungen und CSS bevorzugen und stelle mir das einfacher zum Einbinden vor.

    EDIT: Ich hab's geschafft (war für mich neu in Contao 3.3).
    Ich habe ein Modul "Nachrichtenleser news-only" und "Nachrichtenleser comments-only" angelegt sowie wie oben beschrieben zwei Templates "mod_newsreader_news-only.html5" und "mod_newsreader_comments-only.html5", natürlich basierend auf der originalen "mod_newsreader". Hier habe ich jeweils im Quelltext herausgenommen, was ich NICHT brauchte (wie oben beschrieben, ist ja mittlerweile auch sehr übersichtlich). Der Kniff besteht nun darin, in den beiden Modulen (für mich neu) nicht nur ein "Nachrichtentemplate" zu wählen, sondern gleich daneben ein "Individuelles Template"... Hier landen die selbst gebastelteten Templates und voilá – ohne viel IF und Wenn und Aber zerteilt sich die Nachricht in News und Kommentaren in unterschiedlichen Layoutbereichen.
    Geändert von Jens Pielawa (05.10.2014 um 10:19 Uhr)
    Beste Grüße von

  21. #21
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Hast du genau richtig gemacht, auch mit den zwei neu erstellten und umbenannten Templates. So hast du immer noch das original Template zur Verfügung. Die Option wurde irgendwann auf Userwunsch hinzugefügt, damit man auch die Möglichkeit hat ein mod_-Template individuell anzupassen und umzubenennen. Mit der CSS-Klassenabfrage musste man praktisch mehrere Templates in einem zur Verfügung stellen und anhand der CSS-Klasse ausliefern.
    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

  22. #22
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'25"E 52°21'25"N
    Beiträge
    462

    Standard

    Man lernt halt immer was dazu.
    Beste Grüße von

  23. #23
    Contao-Fan Avatar von Hoch-3
    Registriert seit
    16.11.2010.
    Ort
    Zürich
    Beiträge
    290

    Standard

    Das Template mod_newsreader hab ich kopiert und so abgeändert.

    PHP-Code:
    <?php $this->extend('block_searchable'); ?>

    <?php $this->block('content'); ?>
    <?php   
    if(in_array('right'explode(' '$this->class))): ?>
      <?= $this->articles ?>

    <?php endif; ?>
      
      

    <?php $this->endblock(); ?>
    Es sollen nur die Elemente mit der Class "right" ausgegeben werden. Aber das funzt nicht. Kann jemand weiter helfen?

  24. #24
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    23.116
    Partner-ID
    10107
    User beschenken
    Wunschliste

    Standard

    Mit dieser Überprüfung:
    PHP-Code:
    <?php   if(in_array('right'explode(' '$this->class))): ?>
    überprüfst du nur, ob das Newsleser-Modul eine Klasse namens "right" besitzt. Das was du möchstest, ist nur mit einem angepassten news_full Template möglich, wo du manuell die Inhaltselemente aus der Datenbank holst.

  25. #25
    Contao-Fan Avatar von Hoch-3
    Registriert seit
    16.11.2010.
    Ort
    Zürich
    Beiträge
    290

    Standard

    Also das Original mod_newslist und ein folgendermassen angepasstes news_full...

    PHP-Code:
    <div class="layout_full block<?= $this->class ?>">
        
     <?php   if(in_array('right'explode(' '$this->class))): ?> 
        <?= $this->text ?>
      <?php endif; ?>

    </div>
    Hab ich da zu viel weg gelöscht? Tut auf alle Fälle auch nicht.

  26. #26
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    23.116
    Partner-ID
    10107
    User beschenken
    Wunschliste

    Standard

    Nein, das reicht nicht, da fragst du jetzt ab, ob die angezeigte News die Klasse "right" hat . Du müsstest dir dort im Template nun die einzelnen Inhaltselemente holen und überprüfen, ob das einzelne Inhaltselement die Klasse "right" hat.

  27. #27
    Contao-Fan Avatar von Hoch-3
    Registriert seit
    16.11.2010.
    Ort
    Zürich
    Beiträge
    290

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nein, das reicht nicht, da fragst du jetzt ab, ob die angezeigte News die Klasse "right" hat . Du müsstest dir dort im Template nun die einzelnen Inhaltselemente holen und überprüfen, ob das einzelne Inhaltselement die Klasse "right" hat.
    Nicht die News sondern das Element innerhalb der News soll abgefragt werden. Ich könnte das ja mit einem profanen Display: None in der Ausgabe lösen. Dann lädt es aber unnötig Inhalte.

  28. #28
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    23.116
    Partner-ID
    10107
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Hoch-3 Beitrag anzeigen
    Nicht die News sondern das Element innerhalb der News soll abgefragt werden.
    Ja ich weiß, siehe mein voriger Post. Deine jetztige Abfrage geht auf die News, nicht auf die Inhaltselemente der News. Du musst dir aus der Datenbank die Inhaltselemente manuell selbst holen und dort dann die Abfrage machen - oder gleich bei der Datenbankabfrage nur die Inhaltselemente der News holen, die schon '%right%' in der Spalte cssID drin stehen haben.

  29. #29
    Contao-Fan Avatar von Hoch-3
    Registriert seit
    16.11.2010.
    Ort
    Zürich
    Beiträge
    290

    Standard

    Jetzt verstehe ich gar nichts mehr.

    Die Daten werden doch irgendwo (im DCA-Ordner des Moduls wären, wenn ich das richtig verstanden habe, die Files dazu) aus der DB rausgeholt.
    Bei den News müssten da doch die Inhalte, also auch die Elemente der Nachricht rausgeholt werden.
    In den Templates werden diese dann zusammen gesetzt. Eine der Informationen, die hier mit läuft müsste ja die CSS-Class des einzelnen Elementes sein. Oder?
    Gibt es tatsächlich keine Möglichkeit, diese auf Template-Ebene auszulesen?

  30. #30
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    23.116
    Partner-ID
    10107
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Hoch-3 Beitrag anzeigen
    In den Templates werden diese dann zusammen gesetzt.
    Nein, im News Template hast du nur mehr die schon geparsten und zusammengefügten Inhaltselemente. Daher musst du dir die Inhaltselemente im Template selbst aus der Datenbank laden. Die Funktion zum Laden der Inhaltselemte sieht im News Modul zB so aus: https://github.com/contao/core/blob/...eNews.php#L135

    Übrigens solltest du eher einen eigenen Thread dafür machen, hier geht es ja um die Trennung von News und Kommentare .
    Geändert von Spooky (16.06.2016 um 17:34 Uhr)

  31. #31
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    23.116
    Partner-ID
    10107
    User beschenken
    Wunschliste

    Standard

    Erzeuge dir ein news_full_right Template und ersetze
    PHP-Code:
    <?= $this->text ?>
    mit
    PHP-Code:
    <?php

      
    if (($objElement = \ContentModel::findPublishedByPidAndTable($id'tl_news')) !== null)
      {
        while (
    $objElement->next())
        {
          if (
    in_array('right'explode(' 'deserialize($objElement->cssID)[1])))
          {
            echo 
    $this->getContentElement($objElement->current());
          }
        }
      }

    ?>
    (ungetestet)

    Mit diesem Template werden dann nur mehr die Inhaltselemente der Nachricht ausgegeben, die die CSS Klasse "right" haben.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Kommentare: Kommentarautor/datum wird bei News anders dargestellt als bei Include...
    Von Jan Erdbeer im Forum Layout / Templates / Holy Grail
    Antworten: 8
    Letzter Beitrag: 10.08.2010, 20:48
  2. Kommentare in den Breaking News
    Von oldutz im Forum Allgemeine Inhaltselemente
    Antworten: 3
    Letzter Beitrag: 12.07.2010, 16:48
  3. Problem der Anzeige von Artikel in Layoutbereichen bei 2.9.RC1
    Von ernieseinbert im Forum Allgemeine Inhaltselemente
    Antworten: 2
    Letzter Beitrag: 17.06.2010, 09:33
  4. Kommentare unter News und Kommentar unter "Gästebuch"
    Von lgerd im Forum Allgemeine Inhaltselemente
    Antworten: 4
    Letzter Beitrag: 16.05.2010, 17:51
  5. newsreader neuste news automatisch zeigen
    Von mikado im Forum Nachrichten/Events/FAQ
    Antworten: 4
    Letzter Beitrag: 27.02.2010, 09:01

Lesezeichen

Lesezeichen

Berechtigungen

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