Seite 1 von 1
Objekte im Frontend bearbeiten
Verfasst: Mi 11. Jan 2023, 16:14
von mobby
Moin,
nach einigen Jahren machen ich mich mal wieder an webEdition ran
Ich will Objekt über ein Frontend anlegen bzw. editieren. Wurde dahingehend in den letzten Jahre geändet?
Ich bekomme es einfach nicht hin, obwohl ich
Code: Alles auswählen
<we:write type="object" formname="neuerartikel" publish="true" classid="1" />
in der Seite habe. Könnt ihr mir mal auf die Sprünge helfen...
Re: Objekte im Frontend bearbeiten
Verfasst: Fr 13. Jan 2023, 11:56
von Finn
Moin Moin,
wie sieht denn das Formular zum Schreiben des Objekts aus?
Das we:write erwartet folgende Struktur:
Code: Alles auswählen
array(
'edit_object'=>'1',
'we_editObject_ID'=>'0', // wenn 0 wird ein neues angelegt, beim Bearbeiten steht die zu bearbeitende ID drin
we_ui_we_global_form[feldName]=> value, // Liste mit den Feldern und Werten
)
Das Formular kann so aussehen:
Code: Alles auswählen
<we:form type="object" classid="4" name="eventForm" pass_id="eventForm" method="post" enctype="multipart/form-data" id="self">
<we:userInput type="textinput" name="Titel" required="required" />
...
Das entsprechende we:write dazu: (name und parentid lege ich vorher fest)
Code: Alles auswählen
<we:comment>Schreibt das Objekt</we:comment>
<we:write type="object" formname="eventForm" publish="true" searchable="true" classid="4" onduplicate="increment" onpredefinedname="overwrite" forceedit="true" name="\$objectName" parentid="\$pathIDMonth" />
Re: Objekte im Frontend bearbeiten
Verfasst: Fr 13. Jan 2023, 13:02
von Finn
für userInput brauchst du natürlich dann auch eine aktive userSession (einen eingeloggten Kunden).
man kann das Formular aber auch faken (die Struktur aus dem ersten Beispiel). Könnte dann so aussehen:
Code: Alles auswählen
class Form
{
public function create_Form(int $id, array $content, int $classID, string $url){
foreach ($content as $key => $value) {
$content['we_ui_we_global_form'][$key] = $value; // hier schreiben wir die einzelnen Felder aus dem Array in die Formular Syntax um
unset($content[$key]);
}
$content["classID"] = $classID;
$content['edit_object'] = 1;
$content['we_editObject_ID'] = $id;
$content = http_build_query($content);
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded",
'method' => 'POST',
'content' => $content,
),
);
$context = stream_context_create( $options );
return file_get_contents( $url, false, $context );
}
}