Objekte im Frontend bearbeiten

Fragen zum Erstellen von Templates für webEdition.
mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Objekte im Frontend bearbeiten

Beitragvon mobby » Mi 11. Jan 2023, 16:14

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...
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Benutzeravatar
Finn
Senior Member
Beiträge: 285
Registriert: Mo 3. Apr 2017, 13:37
Wohnort: Bremen
Kontaktdaten:

Re: Objekte im Frontend bearbeiten

Beitragvon Finn » Fr 13. Jan 2023, 11:56

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" />
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de

Benutzeravatar
Finn
Senior Member
Beiträge: 285
Registriert: Mo 3. Apr 2017, 13:37
Wohnort: Bremen
Kontaktdaten:

Re: Objekte im Frontend bearbeiten

Beitragvon Finn » Fr 13. Jan 2023, 13:02

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 );
	}
}
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 17 Gäste