Ergebnis 1 bis 8 von 8

Thema: Kommentare für Mitglieder

  1. #1
    Contao-Nutzer
    Registriert seit
    19.12.2012.
    Beiträge
    36

    Standard Kommentare für Mitglieder

    Hallo Zusammen,

    ich möchte eine Art Kommentarfunktion realisieren, bei der nur Mitglieder Kommentare schreiben und lesen können. Die normale Kommentarfunktion ist dafür, finde ich, nicht geeignet, da ich da ja jedesmal eine email etc. eingeben muss. Im Prinzip soll es so sein, dass sich die Mitglieder auf einer Seite austauschen können. Gut wäre natürlich, wenn der Benutzername des angemeldeten Mitglieds gleich als Verfasser des Kommentares übernommen wird. Ich weiß leider nicht wie ich sowas realisieren könnte. Erweiterungen finde ich net und die normale Kommentarfunktion kann ich auch nicht einfach anpassen. Muss ich da auf Template-Ebene aktiv werden?

    Wäre super, wenn jemand einen Ansatz oder sogar eine Lösung für mich hätte!

    Danke!!

  2. #2
    Contao-Nutzer
    Registriert seit
    19.12.2012.
    Beiträge
    36

    Standard

    Ich hätte vorher mal teste sollen, sorry. Also der Benutzername und die Emailadresse werden automatisch eingetragen wenn sich ein Mitglied im FE anmeldet.
    Ich hätte trotzdem gerne das Feld mit "Website" und die Captcha-Prüfung entfernt. Wenn ich in dem Template "mod_comment_form.html5" die entsprechenden Zeilen entferne sind die Felder im FE weg, allerdings kann ich dann keinen Kommentar mehr erstellen. Muss ich da noch im Template "com_default" irgendwelche Änderungen vornehmen?

    Danke!

  3. #3
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo 00Snider,

    wenn schon Templateänderung, dann aber in ce_comments, da kommst Du an die einzelnen Elemente heran.

    Ich hab' Dir hier mal eine UNGETESTETE Version eingestellt, die Dir vielleicht weiterhilft.
    Code:
    <?php
      $user = $this->replaceInsertTags( '{{user::username}}');
      $known_user = !empty($user);
    ?>
    <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 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 elseif ($this->allowComments): ?>
    
    <form<?php if ($this->action): ?> action="<?php echo $this->action; ?>"<?php endif; ?> id="<?php echo $this->formId; ?>" method="post">
    <div class="formbody">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId; ?>">
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
    <div class="widget" <?php if ($known_user) { echo ' style="display:none;"'; } >
      <?php echo $this->fields['name']->generateWithError(); ?> <?php echo $this->fields['name']->generateLabel(); ?> 
    </div>
    <div class="widget" <?php if ($known_user) { echo ' style="display:none;"'; } >
      <?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>
    try {
      window.scrollTo(null, ($('<?php echo $this->formId; ?>').getElement('p.error').getPosition().y - 20));
    } catch(e) {}
    </script>
    <?php endif; ?>
    <?php endif; ?>
    
    </div>
    <!-- indexer::continue -->
    <?php endif; ?>
    
    </div>
    Die Eingabefelder für Benutzername und Email werden einfach per Inline-Style versteckt.


    Nachtrag: das ist die ce_comments.html5 aus der Contao-Version 2.11.7
    Geändert von kos (21.12.2012 um 15:06 Uhr) Grund: Nachtrag

  4. #4
    Contao-Nutzer
    Registriert seit
    19.12.2012.
    Beiträge
    36

    Standard

    Hallo Karl,

    danke für deine Antwort. Aber ich glaube deine Lösung ist in 3.0 nicht umsetzbar. Unten versuch ich das zu begründen (ich betone versuche).

    Nochmal kurz zu meinem Ziel (primär):

    -Keine Captcha-Nachfrage bei der Eingabe von Kommentaren
    -Die Kommentareingabe soll am Anfang der Seite erfolgen.

    Ich weis, das weicht von meiner obigen Darstellung etwas ab, aber das ist ja alles ein laufender Prozess...

    So wie ich das verstehe, werden die Kommentare in 3.0 über drei Templates gesteuert:

    mod_comment_form.html5: Ist für die Eingabe von Kommentaren zuständig. Hier konnte ich auch schon den Code für das Feld "website" entfernen. Das Funktioniert. Sobald ich allerdings an den Captcha-Code gehe, kann ich keine Kommentare mehr erstellen.

    com_default.html5: Hier ist festgelegt, wie ein einzelner, erstellter Kommentar strukturell aufgebaut bzw. angezeigt ist.

    ce_comments.html5: Hier wird übergeordnet gesteuert wie die Kommentare auf der Seite aufgebaut sind und wo die Kommentareingabe auf der Seite erfolgt. Das Heißt, dass die zuvor genannten Templates über dieses Template angesteuert werden. Hier habe ich auch versucht, die Kommentareingabe an den Anfang der Seite zu setzten. Das habe ich auch teilweise geschafft, leider ist nun sowohl am Anfang der Seite als auch am Ende, also nach den erstellten Kommentaren, die Kommentareingabe möglich. Es ist dann nicht mehr möglich, einen Kommentar zu erstellen.

    Also, das sind jetzt alles nur Vermutungen, da ich blutiger Anfänger bin... Aber vielleicht wird mein Problem deutlicher.

    Vielen Dank für jede Hilfe!
    Geändert von 00Snider (21.12.2012 um 16:17 Uhr)

  5. #5
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo,

    ich hab' mal kurz nachgeschaut, wie das in 3.0x läuft.
    Wenn ich das richtig sehe müsste das von mir angedachte Verfahren hier auch möglich sein.
    ....Kommentarfunktion realisieren, bei der nur Mitglieder Kommentare schreiben und lesen können...
    Realisierbar durch Zugriffschutz in den Experten-Einstellungen des Moduls.
    Element schützen anhaken und die gewünschte Mitgliedergruppe wählen. Gäste sehen dann nichts.
    -Keine Captcha-Nachfrage bei der Eingabe von Kommentaren
    unter Kommentar-Einstellungen im Modul:
    Sicherheitsfrage deaktivieren anhaken

    Die Webseitenabfrage hast Du ja schon gelöscht.
    Wenn Du dann den oben von mir geposteten Code in der mod_comment_form.html5 an den Anfang bzw. an die einzelnen Widgets hinzufügst, so sollte bis auf den Wunsch, die Kommentareingabe am Anfang zu haben, Deine Anforderungen erfüllt sein.

  6. #6
    Contao-Nutzer
    Registriert seit
    19.12.2012.
    Beiträge
    36

    Standard

    Super, Danke Karl!!

    Die Option, die Sicherheitsabfrage zu deaktivieren hab ich völlig übersehen!!

    Nachdem ich die Abfrage deaktiviert habe, hat auch das mit der Kommentareingabe am Anfang funktioniert:

    ce_comments.html5

    HTML-Code:
    <?php // "Kommentareingabe an den Anfang der Seite gesetzt." ?>
    <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->pagination; ?>
    <?php include $this->getTemplate('mod_comment_form', 'html5'); ?> 
    <?php foreach ($this->comments as $comment) echo $comment; ?>
    </div>
    Danke nochmal und ebenso schöne Feiertage!

  7. #7
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard News-Kommentare nur für angemeldete FE-User

    Hallo,

    auch bei mir sollen News-Kommentare nur von angemeldeten (FE-)Mitgliedern gelesen werden können. Dazu habe die ce_comments.html5 wie folgt ergänzt:

    PHP-Code:
    <?php $user $this->replaceInsertTags'{{user::username}}'); ?>
    <?php 
    if (!empty($user)): ?>

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

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

        <?php echo implode(''$this->comments); ?>
        <?php echo $this->pagination?>
        <?php include $this->getTemplate('mod_comment_form''html5'); ?>

      <?php $this->endblock(); ?>

    <?php endif; ?>
    Leider funktioniert es so nicht. Die Kommentare werden trotzdem angezeigt (Contao 3.3.x). Kann mir jemand sagen, wie die Abfrage richtig heißen muss? Oder lässt sich die Anzeige der Kommentare jetzt irgendwo anders einstellen, wo ich es noch nicht entdeckt habe?

    Viele Grüße,
    Anke

    EDIT: Es müsste wohl mit "FE_USER_LOGGED_IN === true" gehen, aber ich bekomme die richtige Syntax nicht hin.
    Geändert von Anke (31.12.2014 um 00:29 Uhr)

  8. #8
    Contao-Fan Avatar von Anke
    Registriert seit
    30.06.2009.
    Ort
    Rhein-Main-Gebiet
    Beiträge
    919

    Standard

    Habe es hinbekommen.
    Für andere Dummies: Im Template ce_comments war ich falsch; in mod_newsreader.html5 geht es so:

    PHP-Code:
    <?php if (FE_USER_LOGGED_IN === true): ?>
       [... hier der Kommentarblock ...]
    <?php endif; ?>

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
  •