we:write auf Objektseite

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

we:write auf Objektseite

Beitragvon r_kempf » Fr 1. Mär 2019, 10:49

Hallo Community,
ich entwickle gerade einen Blog mit Kommentar-Funktion. Die Blog-Artikel sind Objekte, die auf einer Detailseite mit we:object angezeigt werden. SEO-Urls sind aktiviert und funktionieren. Im selben Template sollen dann unter dem Artikel Kommentare über Frontend Eingabe mit we:write angeboten werden. Folgendes Script funktioniert in einem WebEdition Dokument aber nicht auf der Objekt-Detailseite:

Code: Alles auswählen

<we:write type="object" formname="Kommentar" publish="true" classid="3" protected="false" />
<we:form type="object" id="self" name="Kommentar" nameid="Kommentar" method="post" classid="3">
<we:userInput type="textarea" name="Kommentar" editable="true" wysiwyg="false" />
<we:userInput type="textinput" name="Username" /></span>
<we:userInput type="textinput" name="wwwebsite" class="spamsec"/>
<input type="submit" value="Kommentieren">
</we:form>
Es wird kein Objekt geschrieben, nach absenden des Kommentars. Was auffällt ist, dass auf der Objektseite das <input type="hidden" name="securityToken"> nicht gesetzt wird, obwohl ein <we:sessionStart /> im Master steht.

Hat jemand eine Idee, wo es hakt.
Danke und liebe Grüße
Regina

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: we:write auf Objektseite

Beitragvon WBTMagnum » Fr 1. Mär 2019, 10:51

Hallo Regina,

Welche wE Version ist das denn? Kann jeder kommentieren, oder müssen sich die User dafür anmelden?

Liebe Grüße,
Sascha

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Fr 1. Mär 2019, 11:20

Hi Sascha,

WE Version 8.04 / PHP 7.2

Im Moment teste ich das ganze erstmal ohne Registrierung. Aber das Kommentar-Objekt wird definitiv nicht geschrieben. Kann es sein, dass das we:form type "object" auf Objekt generierten Seiten nicht greift? Ich komme nur darauf, wegen dem fehlenden securityToken.
LG Regina

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: we:write auf Objektseite

Beitragvon WBTMagnum » Fr 1. Mär 2019, 11:45

Hallo Regina

Mit der V6.4.2 wurde <we:write> dahingehend geändert, dass nur noch angemeldet NutzerInnen Objekte erstellen können.

Liebe Grüße,
Sascha

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Fr 1. Mär 2019, 13:28

okay, die Registrierung ist umgesetzt und greift auch, denn die Kommentarfelder werden jetzt innerhalb von
<we:ifRegisteredUser></we:ifRegisteredUser> korrekt auf der Objekteseite ausgegeben.
Die Kommentare werden aber trotzdem nicht in die Datenbank geschrieben. Im Fehlerlog steht nichts.

LG Regina

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: we:write auf Objektseite

Beitragvon WBTMagnum » Fr 1. Mär 2019, 14:49

Ich sehe jetzt auch keine Auffälligkeiten in deinem Code. Lass dir doch mal die Variablen des Request Scopes "we_ui_Kommentar" ausgeben. Vielleicht fehlt da einfach etwas.

HTH,
Sascha

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Fr 1. Mär 2019, 20:54

Es muss an der Objektdetailseite liegen (Dokument für die Darstellung), d.h. die index.html, die für Darstellung der Blog-Artikel zuständig ist und vom DB/Objektmodul generiert wird. Ich habe denselben Script auf der Übersichtsseite, die ein Webedition Dokument ist getestet und hier geht es.

Fragen:
1. muss das Script auf der Objektdetailseite anders behandelt werden, weil es vom DB/Objektmodul generiert wird
oder
2. ist es ein Bug, weil das we:form bzw. we:write für die Kommentare hier nicht ausgeführt wird?

Ich poste nochmal den kompletten Code der Objektdetailseite, weil ich im Detail nicht erkennen kann, was nicht ausgeführt wird:

Code: Alles auswählen

<!-- DARSTELLUNG BLOG-ARTIKEL -->
<we:setVar to="global" nameto="we_objectID" from="request" varType="int" namefrom="we_objectID" striptags="true" />
<we:object name="blogartikel" classid="2" id="\$we_objectID" objectseourls="true">
<p><we:field name="Artikel"/></p>
</we:object>

<!-- DARSTELLUNG BLOG-KOMMENTARE -->
<we:listview type="object" classid="3" order="we_creationdate">
<we:ifFound>
<section>
<h2>Kommentare</h2>
<we:repeat>
<we:ifFieldEmpty name="wwwebsite">
<p><we:field name="Name" alt="we_path" hyperlink="true"/></p>
<p><we:field name="Kommentar" alt="we_path" hyperlink="true"/></p>
</we:ifFieldEmpty>
</we:repeat>
</section>
</we:ifFound>
</we:listview>

<!-- KOMMENTIEREN NACH ANMELDUNG/REGISTRIERUNG -->
<we:ifRegisteredUser>
<we:write type="object" formname="Kommentar" publish="true" classid="3" protected="false" />
<we:form type="object" id="self" name="Kommentar" nameid="Kommentar" method="post" classid="3">
<we:userInput type="textarea" name="Kommentar" editable="true" wysiwyg="false" placeholder="Kommentar"/>
<we:userInput type="textinput" name="Name" placeholder="Name" class="form-control"/>
<we:userInput type="textinput" name="wwwebsite" class="wwwebsite"/>
<input type="submit" value="Submit">
</we:form>
</we:ifRegisteredUser>

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:write auf Objektseite

Beitragvon mediavantis » Fr 1. Mär 2019, 23:02

Hallo Regina,

ich setze ein ähnliches Script erfolgreich insbesondere für Gästebücher ein (Version 8.0.5. PHP 7.2), und zwar sowohl in Dokumenten, als auch in Objekten - und hier fast ausnahmslos auch für nicht registrierte User. Sicher ist, dass bekanntlich viele Wege nach Rom führen.

Hier mein Beispiel, vielleicht bringt es Dir ja was....

Code: Alles auswählen

<a id="kommentar">
<we:ifNotVarEmpty match="Absenden" type="post">
	<we:write type="object" formname="kommentar" publish="true" classid="3" charset="UTF-8" />
</we:ifNotVarEmpty>

<we:ifWritten type="object" formname="kommentar">
	<we:var type="request" name="we_ui_kommentar[_Email_Kommentar]" to="global" nameto="webUserEmail"/>
	<we:sendMail id="163" recipient="mail@email.de" from="noreply@email.de" reply="mail@email.de" subject="Neuer Kommentar" charset="UTF-8" mimetype="text/html" />
	<we:sendMail id="164" recipient="\$webUserEmail" from="noreply@email.de" reply="mail@email.de" subject="Danke fuer Deinen Kommentar" charset="UTF-8" mimetype="text/html" />
	<we:else />

	<?php $action=($_SERVER['REQUEST_URI'])."#kommentar"; ?>

	<we:form type="object" action="\$action" name="kommentar" classid="3" method="post">
		<we:userInput type="date" name="Datum_kommentar" hidden="true" format="d.m.Y" currentdate="true" hidden="true" />
		<we:userInput type="textinput" name="Name_Kommentar" maxlength="80" class="" placeholder="Dein Name*"/>
		<we:userInput type="textarea" name="Text_Kommentar" class="" placeholder="Dein Kommentar*"/>
		<we:userInput type="textinput" name="Email_Kommentar" maxlength="80" class="" placeholder="Deine Email-Adresse* (nicht öffentlich)"/>
		<input type="submit" name="Absenden" value="Absenden" class="">
	</we:form>
</we:ifWritten>
@Sascha
Mit der V6.4.2 wurde <we:write> dahingehend geändert, dass nur noch angemeldet NutzerInnen Objekte erstellen können.
Das ist nicht ganz korrekt, funktioniert auch in den nachfolgenden Versionen

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Sa 2. Mär 2019, 12:31

Danke Ulrich,

das mit nicht angemeldeten Usern und Kommentaren kann ich bestätigen. we:write funktioniert auch ohne Anmeldung.
Ich habe Dein Script getestet. Leider werden immer noch keine Kommentar-Objekte geschrieben.

Wozu brauchst Du das <a id="kommentar"> bzw. #kommentar ? Reicht im form action nicht die URL des Objektes?

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: we:write auf Objektseite

Beitragvon mokraemer » Sa 2. Mär 2019, 13:14

Mit der V6.4.2 wurde <we:write> dahingehend geändert, dass nur noch angemeldet NutzerInnen Objekte erstellen können.
Nicht ganz - nur angemeldete Benutzer können Objekte/Dokumente (per default) ändern. Wenn man wirklich weiß, was man tut, kann man forceedit setzen, dann können auch bestehende geändert werden. Evtl. können wir das über security-Tokens auch wieder aufweichen.
webEdition-Kern-Entwickler

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Sa 2. Mär 2019, 13:43

okay, die Frage nach dem <a id="kommentar"> war überflüssig - ist schon klar.
Also, bei mir wird das Formular nicht abgesandt, wenn die SEO-URL (in diesem Fall: testartikel-1 )im action steht. Wenn hingegegen das WebEdition-Dokument (Dokument für die Darstellung=index.html) drin steht, wird es abgesandt. Das nützt aber nichts, weil nach dem Absenden ja die Objektseite angezeigt werden soll.

Objekt wird nicht geschrieben:
<?php $action=($_SERVER['REQUEST_URI']); ?> ->ermittelt die SEO-URL des Objektes
<we:form type="object" action="\$action" name="Kommentar" nameid="Kommentar" method="post" classid="3">
Ausgabe: <we:form type="object" action="\blog/testartikel-1" name="Kommentar" nameid="Kommentar" method="post" classid="3">

Objekt wird geschrieben:
<we:form type="object" action="/blog/index.html" name="Kommentar" nameid="Kommentar" method="post" classid="3">

Woran kann das liegen?

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Sa 2. Mär 2019, 15:47

Ziemlich nervig, aber ich weiss jetzt wo es hakt.
Die Kommentar-Objekte werden definitiv nur geschrieben, wenn in der Klasse für die Objektartikel die SEO-Urls ausgeschaltet sind.
Das we:form type=object funktioniert nicht mit einer SEO-URL im action.

@Ulrich
Wenn es aber bei Dir funktioniert - habe ich irgendwas übersehen?

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:write auf Objektseite

Beitragvon mediavantis » Sa 2. Mär 2019, 16:32

Hallo Regina,

irgendetwas scheint da nicht zu stimmen. Es dürfte keine Rolle spielen, ob SEO URL oder nicht.
Ich sende Dir mal eine PM mit einem Link

Zudem sehe ich hier:
Ausgabe: <we:form type="object" action="\blog/testartikel-1"
einen Backslash. Wo kommt der denn her? Hier müsste stehen action="/blog/testartikel-1"
Ist vielleicht eine dumme Frage, aber verwendest Du einen Windows Server oder entwickelst Du auf einem xampp Server?

Weitere Frage: hast du für die Objekte hinten noch einen Dateinamen (z. B. .html) drangehängt?

r_kempf
Senior Member
Beiträge: 214
Registriert: Do 14. Apr 2016, 13:27

Re: we:write auf Objektseite

Beitragvon r_kempf » Sa 2. Mär 2019, 17:22

Doch, das scheint es zu sein. Ich bin auf diesen Post im Forum gestoßen.
viewtopic.php?f=87&t=28137&p=87296&hili ... lar#p87296

Inzwischen habe ich festgestellt, dass das Formular mit Methode get sendet, nicht aber mit post.

Für die SEO-URLS benutze ich in der htaccess
ErrorDocument 404 /webEdition/redirectSEOurls.php

Muss für ein Formular in einer SEO-URL Seite noch etwas ergänzt werden?

mediavantis
Senior Member
Beiträge: 238
Registriert: Do 16. Feb 2012, 12:51

Re: we:write auf Objektseite

Beitragvon mediavantis » Sa 2. Mär 2019, 17:43

Hallo Regina
Muss für ein Formular in einer SEO-URL Seite noch etwas ergänzt werden?
Nicht das ich wüßte. Das mit der get-Variable ist mir bisher noch nicht untergekommen. Ich mach das immer mit post - und zwar schon seit der Version 6.3.8 - und hatte bisher niemals ein Problem, egal ob Dokument oder Objekt, auch unabhängig davon, ob SEO URL oder nicht.

Der von Dir gelinkte Post ist ja auch schon ziemlich alt (Jahr 2012). Ich kann jetzt nur nicht abschätzen, ob da zwischenzeitlich durch die Entwickler etwas geändert wurde.

Zur .htacces
Sieht die bei Dir auch so aus?

RewriteEngine On
RewriteBase /

#Redirect fuer die webEdition SEO-Urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webEdition/redirectSEOurls.php [L]

ErrorDocument 404 /webEdition/redirectSEOurls.php


Zurück zu „DB-/Objektmodul“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste