Objekte mit php erstellen

Fragen zum Erstellen von Templates für webEdition.
weisspunkt
Junior Member
Beiträge: 29
Registriert: Di 18. Sep 2018, 14:21

Objekte mit php erstellen

Beitragvon weisspunkt » Do 20. Jan 2022, 17:38

Liebe WebEdition Profis
Ich stehe vor folgender Herausforderung:
Bei einem Kunden soll ein Kontaktformular per Mail verschickt werden, dies klappt wunderbar mit we:sendmail. Zusätzlich wünscht er, dass alle ausgefüllten Formular gespeichert werden, dies falls er mal das Mail nicht erhält, aus welchem Grund auch immer.

Folgendes habe ich nun versucht, leider ohne Erfolg, das Objekt wird nicht geschrieben:

Code: Alles auswählen

<?php
include_once($_SERVER["DOCUMENT_ROOT"]."/webEdition/we/classes/import/we_import_functions.class.php");

$objProdukt = $_POST['produkt']; // input Feld
$objFirma = $_POST['Firma'];  // input Feld
$objName = $_POST['Vorname'] . " " . $_POST['Nachname'];  // input Feld
$objMail = $_POST['email'];  // input Feld
$objPhone = $_POST['Telefon'];  // input Feld
$objAnfrage = $_POST['Anfrage'];  // Textarea
$objFilename = "testobjekt";

// Nun kommt die wE-Funktion zum Schreiben/Import der Objekte ins Spiel
$objectClassID = 3; // (int) ID der Klasse, auf der unser Objekt basieren soll
$objectFields = array( // (array) Wir befuellen unsere Objektfelder mit Variablen, die unsere Werte enthalten
	"Produkt" => $objProdukt,
	"Firma" => $objFirma,
	"Name" => $objName,
	"E-Mail" => $objMail,
	"Telefon" => $objPhone,
	"Anfrage" => $objAnfrage,
);
$objectFilename = $objFilename; // (string) Der Name unseres Objekts
$objectCategories = array(); // Die Kategorien brauchen wir nicht, aber es muss trotzdem ein Array initilisiert werden
we_import_functions::importObject($objectClassID, $objectFields, $objectCategories, $objectFilename, true, true, 0, we_exim_ExIm::COLLISION_REPLACE);
?>
Die Daten werden mit einem <we:form> an diese Seite übergeben.

Hat hier jemand eine Idee?
Auf der Seite nutze ich WE 9.1.

NilSole
Senior Member
Beiträge: 301
Registriert: Mi 27. Mär 2019, 15:28

Re: Objekte mit php erstellen

Beitragvon NilSole » Fr 21. Jan 2022, 22:35

Kannst du nicht einfach we:write verwenden?

Benutzeravatar
haydi
Senior Member
Beiträge: 600
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte mit php erstellen

Beitragvon haydi » Mo 24. Jan 2022, 09:18

Hola,

hast du es mit dem Tipp we:write hinbekommen?
Es ist auf jeden Fall nicht ratsam - wegen Updatefähigkeit - direkt webEdition Klassen zu referenzieren/einzusetzen.
Und es gibt eben webEdition-Tags für diese Aufgabe :-)

Sonnige Grüße
Haydi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

weisspunkt
Junior Member
Beiträge: 29
Registriert: Di 18. Sep 2018, 14:21

Re: Objekte mit php erstellen

Beitragvon weisspunkt » Mi 26. Jan 2022, 19:04

Hey Haydi
Ich bin immer ein grosser Fan von We Tags. Leider habe ich es so nicht hinbekommen. So wie ich gelesen habe, funktioniert das write Tag nur für Login User, hier müsste es jedoch für User funktionieren, welche sich nicht einloggen müssen.
Oder müsste ich das Formular mit we:userinput machen?

Ich danke dir für deine Rückmeldung :-)

Liebe Grüsse
Markus

NilSole
Senior Member
Beiträge: 301
Registriert: Mi 27. Mär 2019, 15:28

Re: Objekte mit php erstellen

Beitragvon NilSole » Mi 26. Jan 2022, 23:10

Ohne es im Detail zu wissen, könnte es reichen, protected=false in we:write zu setzen. Das Formular müsste als we:form type=object erzeugt werden, Eingaben vermutlich mit we:userInput. Dann müsstest du ggfs die Request Vars prüfen für deine Mails.

Übrigens braucht es das include_once von WE Scripts nicht mehr, das macht jetzt der Autoloader. Aber dank WE-Tag solltest du hier dann darauf eh verzichten können :wink:

Benutzeravatar
haydi
Senior Member
Beiträge: 600
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte mit php erstellen

Beitragvon haydi » Do 27. Jan 2022, 10:00

Holaaa,

okay, hier mal ein php-Schnipselchen :-)

Code: Alles auswählen

	// in DB abspeichern
	$obj = new we_objectFile();
	$obj->we_new(); // wir legen ein neues an
	$obj->TableID = 1; // die Table-ID 
	$obj->setRootDirID(true);
	$obj->resetParentID();
	$obj->restoreDefaults();
	$obj->Text = date('Y-m-d_H-i-s').'-'.time(); // objektname, damit ist er unique 
	$obj->Path = $obj->getParentPath().(($obj->getParentPath() != "/") ? "/" : "").$obj->Text;
	$obj->setElement('timestamp', time()); // braucht's natürlich nicht... ich hab das ganz gerne
	$obj->setElement('tabellenfeld', 'tabelleninhalt'); // alle tabellenspalten können nun mit dem gewünschten wert gefüllt werden	
	$obj->setElement('tabellenfeld2', 'tabelleninhalt2');
	if (!$obj->we_publish()) {
		t_e('upsi, da hat was nicht geklappt);
	}
hoffe, das hilft :-)

liebe grüße
haydi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

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

Re: Objekte mit php erstellen

Beitragvon mokraemer » Fr 28. Jan 2022, 11:02

@Haydi, dein Kode ist aber nicht mehr so ganz auf dem aktuellen Stand.
webEdition-Kern-Entwickler

Benutzeravatar
haydi
Senior Member
Beiträge: 600
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Re: Objekte mit php erstellen

Beitragvon haydi » Fr 28. Jan 2022, 11:12

Hola,

ja, denke ich mir.
für die 8er Version ist er auch "nur" gedacht... für die 9er muss ich erst noch was schreiben und gucken, was sich getan hat ;-)

liebe grüße
haydi
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

weisspunkt
Junior Member
Beiträge: 29
Registriert: Di 18. Sep 2018, 14:21

Re: Objekte mit php erstellen

Beitragvon weisspunkt » Do 3. Feb 2022, 16:36

Hallo zusammen
Also mit we:write hat es tatsächlich geklappt. Vielen Dank für eure Antworten. Nun wollte ich noch einige zusätzlich infos in das Objekt schreiben, ich habe diese Infos dem array vor dem Befehl we:write hinzugefügt leider hat dies nicht funktioniert. Ist es möglich mit we:ifwritten nachträglich noch etwas dem Objekt hinzu zu fügen?

Liebe Grüsse
Markus

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

Re: Objekte mit php erstellen

Beitragvon Finn » Di 20. Sep 2022, 13:50

Du kannst dir die ID des geschriebenen Objekts aus $_REQUEST['we_editObject_ID'] auslesen und weitere Inhalte reinschreiben.
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de


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

Wer ist online?

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