Newsreader: News und Kommentare in verschiedenen Layoutbereichen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Andreas
    Contao-Urgestein
    • 19.06.2009
    • 7709

    #1

    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.
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: frontend.png
Ansichten: 2
Größe: 40,3 KB
ID: 939645 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: article.png
Ansichten: 2
Größe: 9,8 KB
ID: 939644 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: class.png
Ansichten: 2
Größe: 6,8 KB
ID: 939646

    Die Funktion einen Kommentar hinzuzufügen funktioniert einwandfrei.

    Grüße Andreas
    Zuletzt geändert von Andreas; 16.09.2010, 15:22.
    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
  • schman
    Community-Moderator
    • 20.06.2009
    • 3739

    #2
    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.

    Kommentar

    • Andreas
      Contao-Urgestein
      • 19.06.2009
      • 7709

      #3
      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

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        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
        Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
        [Arbeitet bei -> Paus Design & Medien]
        "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

        Kommentar

        • Andreas
          Contao-Urgestein
          • 19.06.2009
          • 7709

          #5
          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

          Kommentar

          • MacKP
            Contao-Yoda
            • 15.06.2009
            • 13315

            #6
            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
            Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
            [Arbeitet bei -> Paus Design & Medien]
            "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

            Kommentar

            • Andreas
              Contao-Urgestein
              • 19.06.2009
              • 7709

              #7
              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

              Kommentar

              • MacKP
                Contao-Yoda
                • 15.06.2009
                • 13315

                #8
                Hallo Andreas,
                hier ist es nun:


                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
                Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                [Arbeitet bei -> Paus Design & Medien]
                "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                Kommentar

                • Andreas
                  Contao-Urgestein
                  • 19.06.2009
                  • 7709

                  #9
                  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.
                  Zuletzt geändert von Andreas; 18.09.2010, 21:18.
                  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

                  Kommentar

                  • MacKP
                    Contao-Yoda
                    • 15.06.2009
                    • 13315

                    #10
                    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
                    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                    [Arbeitet bei -> Paus Design & Medien]
                    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                    Kommentar

                    • Andreas
                      Contao-Urgestein
                      • 19.06.2009
                      • 7709

                      #11
                      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

                      Kommentar

                      • OneChance
                        Contao-Fan
                        • 23.06.2009
                        • 542

                        #12
                        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.

                        Kommentar

                        • Andreas
                          Contao-Urgestein
                          • 19.06.2009
                          • 7709

                          #13
                          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

                          Kommentar

                          • Jens Pielawa
                            Contao-Fan
                            • 08.01.2010
                            • 546

                            #14
                            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
                            sigpic

                            Kommentar

                            • Andreas
                              Contao-Urgestein
                              • 19.06.2009
                              • 7709

                              #15
                              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.
                              Zuletzt geändert von Andreas; 03.10.2014, 16:38.
                              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

                              Kommentar

                              Lädt...