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: 303
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: 645
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: 303
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: 645
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: 3619
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: 645
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: 285
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

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

Re: Objekte mit php erstellen

Beitragvon Finn » Sa 8. Okt 2022, 23:34

mokraemer hat geschrieben: Fr 28. Jan 2022, 11:02 @Haydi, dein Kode ist aber nicht mehr so ganz auf dem aktuellen Stand.
Moin Marc,
ist die aktuelle Syntax irgendwo dokumentiert?
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de

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

Re: Objekte mit php erstellen

Beitragvon mokraemer » So 9. Okt 2022, 12:11

Moin Marc,
ist die aktuelle Syntax irgendwo dokumentiert?
Nein. Um die Doku wollte sich ja die Community kümmern. Es gibt nur https://www.webedition.org/de/dokumenta ... collapse-3
Es handelt sich hier eh um interne Funktionen da sollte man eh verstehen, wie WE funktioniert.
webEdition-Kern-Entwickler

ThomasGoebe

Re: Objekte mit php erstellen

Beitragvon ThomasGoebe » So 9. Okt 2022, 17:32

mokraemer hat geschrieben: So 9. Okt 2022, 12:11
Moin Marc,
ist die aktuelle Syntax irgendwo dokumentiert?
Nein. Um die Doku wollte sich ja die Community kümmern. Es gibt nur https://www.webedition.org/de/dokumenta ... collapse-3
Es handelt sich hier eh um interne Funktionen da sollte man eh verstehen, wie WE funktioniert.
Da drehen wir uns alle schön im Kreis. Wie soll "die Community" etwas dokumentieren, wenn "die Entwickler" niemandem verraten, wie eine Funktion geht? Soll sich "die Community" ernsthaft alles aus dem Quellcode von webEdition herauslesen? Wo ist die PHP Doc Dokumentation aus dem Code? Und was passiert, wenn sich da was ändert? Soll "die Community" alle Comits stetig studieren und versuchen zu erfassen, was sich geändert hat? Bei den vielen Anpassungen pro Version?

Das wird nicht funktionieren. Das sollten "die Entwickler" und "der Vorstand" auch inzwischen gemerkt haben. Eine initiale Doku kann nicht von "der Community" kommen.

ThomasGoebe

Re: Objekte mit php erstellen

Beitragvon ThomasGoebe » So 9. Okt 2022, 17:37

Um die eigentliche Frage zu beantworten:

In webEdition ist es seitens der Entwickler nicht vorgesehen, dass Objekte mit PHP erstellt oder geändert werden. Es soll immer und bei allen Aufgabenstellungen mit wE Tags gearbeitet werden. Also sollen Objekte mit we:write und einem vorher durch we:form erstellen Formular erstellt werden.
Alles andere sind interne Funktionen, ist nicht updatesicher und wird weder dokumentiert noch unterstützt.

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

Re: Objekte mit php erstellen

Beitragvon WBTMagnum » So 9. Okt 2022, 21:15

Hallo,

Ein paar Infos findet man schon zum Thema wie man Daten bzw. Dokumente mit PHP bearbeiten kann: Ist zwar nicht viel, aber immerhin etwas.

Liebe Grüße,
Sascha

PS: Leider ist die Bearbeitung der Doku buggy. Tlw. lässt sich der Editor nicht öffnen, was eine Bearbeitung verunmöglicht. Der Bug-Report dazu hat offensichtlich noch keine Beachtung gefunden. Wäre super, wenn sich das jmd. anschauen könnte. Dann kann man auch wieder Änderungen einarbeiten :wink:


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

Wer ist online?

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