Hallo,
ich würde gerne das Eingabefeld 'Webseite' im Kommentar-Formular entfernen. Aber ich finde nicht das entsprechende Template. Kann mir da jemand weiterhelfen?
Vielen Dank.
Ricks
Hallo,
ich würde gerne das Eingabefeld 'Webseite' im Kommentar-Formular entfernen. Aber ich finde nicht das entsprechende Template. Kann mir da jemand weiterhelfen?
Vielen Dank.
Ricks
Hi
Gugg mal nach system/modules/comments/templates/com_default.tpl
Glaube, dass müsste das richtige sein.
lg mani
Für die schnelle Hilfe zwischendurch kannst Du gerne den inoffiziellen Chat besuchen:
Server: irc.freenode.net || Channel: #contao.de
Mani, ich glaube Ricks meint etwas anderes. In der com_default.tpl wird ja nur der bereits abgesendete Kommentar ausgegeben, er möchte aber das Eingabefeld im Formular entfernen. Leider ist dies nicht über eine einfache Änderung eines Templates möglich, da die Formularfelder in dem Fall über $objWidget->generateWithError(); erstellt werden. Um das Formular hierfür abzuändern, müsstest du in den Core eingreifen, was zum einen nicht ganz einfach und zum anderen nicht updatesicher ist.
So ist es. Hm... das ist ja natürlich unpraktisch, wenn man da im Core herumfummeln muss. Und alles selbst neu schreiben ist auch doof ;-)
Kann man evtl. den Namen des Kommentarschreibers nicht-anklickbar machen, auch wenn eine Webseite hinterlegt ist? Das wäre ein anderer Ansatz.
Auch würde ich gerne die Eingabefelder gleich groß machen. Momentan sieht das nicht gut aus, für meinen Geschmack.
Ricks
Die Größe der Felder kannst du mittels CSS ändern (width)
Ja sicher, das ginge. Dafür brauchst du dann das von mani genannte com_default.tpl, das so aussieht:
Hieraus löscht du dann einfach den Part für die Anzeige der Website, so dass nur noch das übrigbleibt:PHP-Code:
<div class="comment_default<?php echo $this->class; ?>" id="<?php echo $this->id; ?>">
<p class="info"><?php echo $this->by; ?> <?php if ($this->website): ?><a href="<?php echo $this->website; ?>" onclick="window.open(this.href); return false;"><?php endif; echo $this->name; ?><?php if ($this->website): ?></a><?php endif; ?><span class="date"> | <?php echo $this->date; ?></span></p>
<div class="comment">
<?php echo $this->comment; ?>
</div>
</div>
PHP-Code:
<div class="comment_default<?php echo $this->class; ?>" id="<?php echo $this->id; ?>">
<p class="info"><?php echo $this->by; ?> <?php echo $this->name; ?><span class="date"> | <?php echo $this->date; ?></span></p>
<div class="comment">
<?php echo $this->comment; ?>
</div>
</div>
Danke für die Tipps, so werde ich es machen.
Wünsche eine schöne Woche!
Ricks
Hi,
das stimmt ja nun so nicht ganz:Zitat von Stephan
Code:<?php if($objWidget->name != 'website'): ?> <div class="widget"> <?php echo $objWidget->generateWithError(); ?> </div> <?php endif; ?>
cheers
Antipitch
"Some people, when confronted with a problem, think 'I know, I’ll use regular expressions.' Now they have two problems." Jamie Zawinski
Stimmt Antipitch, du hast Recht! Auf die Idee hätte ich auch kommen können, habe mal wieder zu kompliziert gedacht. Asche auf mein Haupt.
Auf welches Template bezieht sich das jetzt? Ich nehme mal an ce_comments?!Code:<?php if($objWidget->name != 'website'): ?> <div class="widget"> <?php echo $objWidget->generateWithError(); ?> </div> <?php endif; ?>
Aber wo verweise ich dann auf meine Kopie des Templates?
Ricks
Geändert von Ricks (07.09.2009 um 13:38 Uhr)
das müsste die ce_comments.tpl sein wenn ich mich nicht irre
Habe es so geschrieben:
Nur weiß ich nicht, an welcher Stelle ich auf meine modifizierte Kopie des Templates verweise.Code:<?php foreach ($this->fields as $objWidget): ?> <?php if($objWidget->name != 'website'): ?> <div class="widget"> <?php echo $objWidget->generateWithError(); ?> <?php echo ($objWidget instanceof FormCaptcha) ? $objWidget->generateQuestion() : $objWidget->generateLabel(); ?><?php if ($objWidget->required): ?><span class="mandatory">*</span><?php endif; ?> </div> <?php endif; ?> <?php endforeach; ?>
Ricks
Geändert von Ricks (07.09.2009 um 13:44 Uhr)
Sobald du im Backend unter Layout > Templates auf Neues Template klickst und in deinem Fall dann die ce_comments.tpl auswählst, wird automatisch eine Kopie im Ordner templates angelegt. Solange Template-Dateien in diesem Ordner liegen, greift TYPOlight automatisch darauf zu (und nicht mehr aufs Original).
Der Code ist korrekt, ich habe es gerade bei mir lokal nochmal getestet. Benutzt du denn die Kommentar-Funktion unterhalb von Inhalte > Kommentare oder unterhalb von Inhalte > Nachrichten > Kommentare? Für den ersten Fall ist nämlich die ce_comments.tpl zuständig und im zweiten Fall wäre es die mod_newsreader.tpl. Was ich damit sagen will, evtl. benutzt du ja das falsche Template?
hi, gibt es auch eine möglichkeit die eingabe der email überflüssig zu machen?
Hallo zusammen,
ist das hier heute immer noch der letzte Stand zum Thema "Kommentar-Formular anpassen"?
Oder wird das in 2.8 anders gehandelt?
Im Gegensatz zum Formulargenerator ist das Kommentarformular nämlich stark verbesserungswürdig! Insbesondere stört mich, dass die Input- und Textarea-Felder VOR den Label-Tags geladen werden. Das würde ich gerne umkehren wollen.
Viele Grüße
Geändert von ribery (01.02.2010 um 14:54 Uhr)
Huhu,
hat mir jemand hierauf noch eine Antwort?
Viele Grüße
Ich hole diesen Thread mal wieder aus der Versenkung, denn ich will die Lösung von Post #18 auch gerne wissen (Umstellung von INPUT und LABEL).
Aber ich habe ein anderes Problem mit meinem Gästebuch:
Der Code der com_default.tpl ist ja sehr überschaubar:
Hier wird der Eintrag der Webseite mit dem Namen des Autors verdrahtet (mit einer IF-Abfrage, soweit mein bescheidener PHP-Überblick das richtig sieht). Hier würde ich gerne eher die E-Mail einsetzen (auch wenn das Formular sagt, sie wird nicht veröffentlicht, wo müsste ich dann weiteres umbauen, ohne andere [Blog-] Kommentarmodule mit zu verändern?) und die Webseite einzeln dahinter packen. Erste Umstrickereien mit dem Template haben bei mir nicht funktioniert, die IF-Abfrage habe ich als erstes rausgenommen und da hört's schon auf...Code:<div class="comment_default<?php echo $this->class; ?>" id="<?php echo $this->id; ?>"> <p class="info"><?php echo $this->by; ?> <?php if ($this->website): ?><a href="<?php echo $this->website; ?>" rel="nofollow"<?php echo LINK_NEW_WINDOW; ?>><?php endif; echo $this->name; ?><?php if ($this->website): ?></a><?php endif; ?><span class="date"> | <?php echo $this->date; ?></span></p> <div class="comment"> <?php echo $this->comment; ?> </div> </div>
Wer weiß eine Lösung für eine Infozeile á la
"Von <a href="mailto:xyz@abc.de">Autor, Webseite <a...>, am 10.10.2010"
Beste Grüße von
Hallo Jens Pielawa,
Du könntest Dir vorerst mal die Template-Variablen anzeigen lassen, damit man sieht, welche Informationen Dir effektiv zur Verfügung stehen.
Ich habe es gerade selbst durch einiges Trial and Error selbst herausgefunden, so sieht's jetzt aus:
D. h. die E-Mail-Adresse wird veröffentlicht (es braucht sich niemand zu verstecken!) und abhängig davon ob es eine Webseite gibt, wird die auch mit separat angezeigt. Live-Beispiel unter http://www.pielawa.de/gaestebuch.htmCode:<div class="comment_default<?php echo $this->class; ?>" id="<?php echo $this->id; ?>"> <p class="info"><?php echo $this->by; ?> <a href="mailto:<?php echo $this->email; ?>"><?php echo $this->name; ?></a> <?php if ($this->website): ?>(Webseite: <a href="<?php echo $this->website; ?>" rel="nofollow"<?php echo LINK_NEW_WINDOW; ?>><?php endif; echo $this->website; ?><?php if ($this->website): ?></a>)<?php endif; ?><span class="date"> schrieb am <?php echo $this->date; ?></span>:</p> <div class="comment"> <?php echo $this->comment; ?> </div> </div>
Das einzige Problemchen, was ich noch habe: wie kastriere ich das http:// aus der Webseiten-Adressenanzeige heraus, das finde ich überflüssig? Auch wenn jemand nur www.xyz.de eingibt, wird das vervollständigt.
Beste Grüße von
Versuch's mal mit diesem Template:
PHP-Code:
<div class="comment_default<?php echo $this->class; ?>" id="<?php echo $this->id; ?>">
<p class="info"><?php echo $this->by; ?> <a href="mailto:<?php echo $this->email; ?>"><?php echo $this->name; ?></a> <?php if ($this->website): ?>(Webseite: <a href="<?php echo $this->website; ?>" rel="nofollow"<?php echo LINK_NEW_WINDOW; ?>><?php endif; echo substr($this->website, 7); ?><?php if ($this->website): ?></a>)<?php endif; ?><span class="date"> schrieb am <?php echo $this->date; ?></span>:</p>
<div class="comment">
<?php echo $this->comment; ?>
</div>
</div>
Hallo xchs,
ja, bestens, klappt, vielen Dank. substr($this->website, 7), da wäre ich als PHP-Laie nicht drauf gekommen, ich hab's eben nachgelesen, gut zu wissen.
Beste Grüße von
Dann müsste ich die Eingabe der E-Mail-Adresse nicht mehr erforderlich machen, dann kann das jeder halten wie er möchte. Ich finde aber schon, dass man als Autor von Kommentaren seine E-Mail hergeben kann, wenn man eine Meinung und ansonsten nichts zu verbergen hat. Außerdem können andere Leser einen Schreiber direkt kontaktieren. In meinem alten Gästebuch von Shoppark waren die E-Mails auch immer sichtbar, und 90% der fleißigen Autoren haben sie auch bereitwillig eingetragen.
Geändert von Jens Pielawa (15.10.2010 um 13:33 Uhr)
Beste Grüße von
Ja, schon, aber die Adresse im Kommentar gleich zu veröffentlichen, finde ich in Zeiten wie diesen ein bisschen gewagt. Denk nur mal daran, dass im Internet auch "böse" E-Mail Spider das Web nach brauchbaren E-Mail-Adressen abgrasen, um diese dann auf ihre Spam-Listen zu setzen. Darüber hinaus steht die Adresse im Klartext im Seiten-Quelltext drinnen!
Ob Du Dir und v.a. Deinen potentiellen Besuchern Deiner Seite damit einen Gefallen tust - ich bezweifle es!
Nachdem die E-Mail-Adresse ohnehin einen Pflichtangabe ist, hast Du sowieso intern (im Backend) die volle Kontrolle darüber, wer was und mit welcher Adresse (E-Mail, IP) einstellt.
Auch hier gilt: Ob Deine Besucher das auch wirklich wollen?
Geändert von xchs (15.10.2010 um 13:39 Uhr)
Na gut, vielleicht hast Du Recht. Ich habe die Mail-Codierung wieder rausgenommen. Das Ziel meiner Bastelei war ja eher das extra Herausstellen einer Webseiten-Adresse.
Geändert von Jens Pielawa (15.10.2010 um 17:48 Uhr)
Beste Grüße von
PHP-Code:
...
<?php $fields = $this->fields; unset($fields['website']); foreach ($fields as $field): ?>
<?= $field->parse() ?>
<?php endforeach; ?>
...
MetaModels-Workshop: ... wo sich die nächste Gelegenheit bietet... oder Extern oder Online
Erweiterungen: Infos im Seitenbaum, Formular-Default für Select/Checkbox/Radio (SCR), Formular-Newsletteranmeldung, Regex-Formularwidget, Lizenzmanager für Isotope
Unterstützung per Github-Sponsoring: MetaModels Handbuch und Forum, e-spin Erweiterungen
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen