Multiobjekt über Frontend speichern

Hier können Sie Fragen bezüglich des Datenbank-/Objektmoduls stellen.
JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Multiobjekt über Frontend speichern

Beitragvon JFuchs » Di 20. Dez 2016, 15:28

Hallo zusammen,

ich hab jetzt in der Zwischenzeit einiges durch viel versuchen und durch eure Hilfe gelöst bekommen.

- Objekt über Frontend eingebbar und editierbar machen usw.

Nun fehlt mir noch eine (ich hoffe) Kleinigkeit:

Wie kann ich ein multiobjekt über das Frontend anlegen lassen:

Ich verzweifle.

Hier mein Code - erschreibt allen Objektdaten in das Objekt - nur die Werte für das multiobjekt nicht.
Ich habe erst einmal "get" genommen, damit ich sehe was übergeben wird.

Was kann ich tun? Vielen Dank im Voraus.

<we:master>

<we:form type="object" name="EingabeFirma" classid="4" method="get" >
Firmenname: <we:userInput type="textinput" name="Firma_Firmenname" /><br>
Straße: <we:userInput type="textinput" name="Firma_Strasse" /><br>
PLZ: <we:userInput type="textinput" name="Firma_PLZ" /><br>
Ort: <we:userInput type="textinput" name="Firma_Ort" /><br>
<?php
$aktuelleVerknuepfungsID = $_SESSION[we_object_session_we_global_form][0][elements][we_object_8][dat];
?>

<select size="10" name="Ansprechpartner[]" multiple>
<we:listview type="object" name="Firma_Ansprechpartner" classid="8">

<we:repeat>
<option value='<we:field name="WE_ID" hyperlink="false" />'<?php if($aktuelleVerknuepfungsID == $lv->f("WE_ID")){ echo " selected"; } ?>><we:field name="Ansprechpartner_Nachname" hyperlink="false" /> <we:field name="Ansprechpartner_Vorname" hyperlink="false" /></option>
</we:repeat>

</we:listview>


<input type="submit" />
</we:form>
<?php
$array_asp = "";
foreach ($_GET['Ansprechpartner'] as $selectedOption)
$array_asp = $array_asp.$selectedOption.",";

$array_asp = substr($array_asp,0,-1);




$_REQUEST[we_ui_Firma][Firma_Ansprechpartner]=serialize(array( "class"=>"8", "max"=>"", "objects"=>array($array_asp) ));

?>


<we:write type="object" formname="EingabeFirma" publish="true" classid="4" onduplicate="overwrite" onpredefinedname="overwrite" admin="Username" forceedit="true" protected="false" />



</we:master>

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Multiobjekt über Frontend speichern

Beitragvon blickfang » Di 20. Dez 2016, 16:16

Hi,

Multiobjekte über das Frontend zu speichern geht aktuell nicht out-of-the-box mit webEdition Bordmitteln.

Nach dem <we:write> steht Dir die Ide des gerade geschriebenen Objekts zur Verfügung

Code: Alles auswählen

<we:ifWritten>
$objecId = $we_object['formularname']->ID;
</we:ifWritten>>
Du kannst damit das Objekt mit php Initialisieren und nachträglich die Multiobjekt-Verknüpfung "manipulieren". Die Verknüpfung wird dabei über eine Liste kommaseparierter Ids hergestellt (ab Version 7!). In älteren Versionen muss ein serialisiertes Array geschrieben werden - das musst Du Dir mal auslesen und dann entsprechend aufbauen (hab ich gerade nichtzur Hand).

Code: Alles auswählen

				$obj = new we_objectFile();
				$obj->initById($objectId);
				$obj->setElement('multiobjektfeldname','1,2,3');
				$obj->we_save();
				$obj->we_publish();
				
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Re: Multiobjekt über Frontend speichern

Beitragvon JFuchs » Mi 21. Dez 2016, 09:20

Hallo Timo,

vielen Dank für dein Hilfe - es hat alles super funktioniert.

Joachim

JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Re: Multiobjekt über Frontend speichern

Beitragvon JFuchs » Mi 21. Dez 2016, 11:23

Hallo Timo,

Komisch - bei den Multiobjekten hat alles funktioniert, so wie du es beschrieben hast.

Nun habe ich das ganze Umgebaut, und wollte eine einfache Objekt-Verknüpfung realisieren - leider ohne Erfolg - hast du da auch so ein schönes Script?

Danke im Voraus
Joachim

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Multiobjekt über Frontend speichern

Beitragvon blickfang » Mi 21. Dez 2016, 12:58

was verstehst Du unter einer "einfachen Objektverknüpfung"?
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Re: Multiobjekt über Frontend speichern

Beitragvon JFuchs » Mi 21. Dez 2016, 13:13

In einem Objekt ist ein Feld als Objekt angelegt nicht als Multiobjekt

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Multiobjekt über Frontend speichern

Beitragvon blickfang » Mi 21. Dez 2016, 13:27

das wird bestimt als serialisiertes Array gespeichert (ungeprüft). Einfach mal eines über die Oberfläche verknüpfen, dann das Objekt im Template aufrufen oder der datenbank schauen, wie die Verknüpfung da drin steht... hab ich leider auch grad nicht in der Schublade ;-)
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

JFuchs
Junior Member
Beiträge: 28
Registriert: Mi 14. Dez 2016, 10:23

Re: Multiobjekt über Frontend speichern

Beitragvon JFuchs » Mi 21. Dez 2016, 13:41

Danke kein Problem - werde ich so machen.

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

Re: Multiobjekt über Frontend speichern

Beitragvon Finn » Mo 3. Dez 2018, 16:57

JFuchs hat geschrieben: Mi 21. Dez 2016, 11:23 Hallo Timo,

Komisch - bei den Multiobjekten hat alles funktioniert, so wie du es beschrieben hast.

Nun habe ich das ganze Umgebaut, und wollte eine einfache Objekt-Verknüpfung realisieren - leider ohne Erfolg - hast du da auch so ein schönes Script?

Danke im Voraus
Joachim
Ich habe gerade im Prinzip gleiches Problem. Würde gerne im Frontend über ein Select das zugeordnete Objekt ändern.
Finn Thorwarth
WG Werbeagentur
https://www.wg-werbeagentur.de

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Multiobjekt über Frontend speichern

Beitragvon Luigii » Di 1. Okt 2019, 16:50

Ich will hier einmal nachfragen, ob es hier neue Erkenntnisse gibt.
Ich will auch eine einfache Objektverknüpfung realisieren. WE 8.0.6
In der Datenbank im Objektfeld steht einzig die Obejskt-ID. Aber wie auch immer ich die Objekt-ID übergebe, es landet immer eine 0 in der Datenbank. Bleibt also die Frage, was muss ich übergeben, damit die Objektverknüpfung eingetragen wird?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Multiobjekt über Frontend speichern

Beitragvon blickfang » Di 1. Okt 2019, 17:34

Hi,

hab gerade ein passendes Snippet zur Hand, aber in der 8er würde ich behaupten, dass man einfach nur die Id des Objektes verknüpfen muss...

Code: Alles auswählen

$obj->setElement('objetfeldname',5);
Wenn es eine Type-Überprüfung gibt, was ich mit in der 8er gut vorstellen kann, dann würde die Übergabe als INT erforderlich sein und ggf. funktioniert dann '5' nicht aber 5 schon.
VG, Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Multiobjekt über Frontend speichern

Beitragvon Luigii » Di 1. Okt 2019, 18:50

Ja, das habe ich auch schon gedacht, dass es am Typ liegen könnte.
ich habe daher folgendes versucht:

Code: Alles auswählen

$_REQUEST['we_ui_ProForm']['Anbieter']=(integer)$_REQUEST['we_ui_ProForm']['Anbieter'];
Hat aber nichts geändert.

Ist natürlich kein guter Stil die Request-Variablen zu manipulieren.
Aber wor bekomme ich die Objekt-ID her wenn ich mit we:write ein neues Objekt schreibe und gleich danach über

Code: Alles auswählen

$obj->setElement('Anbieter',5);
eine Objektverknüpfung herstellen will?
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Multiobjekt über Frontend speichern

Beitragvon blickfang » Di 1. Okt 2019, 19:07

wenn Du das Objekt geschrieben hast, kannst direkt im <we:ifWritten > danach

Code: Alles auswählen

$we_object['formularName']->ID;
aufrufen
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Multiobjekt über Frontend speichern

Beitragvon Luigii » Di 1. Okt 2019, 19:10

Super, danke, das probiere ich morgen mal aus.
we:ifWritten funktioniert leider in meiner WE Version nicht, habe das auch schon ins Mantis geschrieben.
Aber hierfür geht es ja auch ohne.
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.

Luigii
Senior Member
Beiträge: 454
Registriert: Mi 20. Jul 2005, 17:18

Re: Multiobjekt über Frontend speichern

Beitragvon Luigii » Di 1. Okt 2019, 22:57

Geht einfach nicht.
Ich würde mich freuen wenn einer der Entwickler uns hier einen Tipp geben könnte, wie man am einfachsten eine Objektverknüpfung in ein Objekt schreibt.
Ich meien in der 6er Version habe ich einfach die ID an das entsprechende Feld übergeben und fertig. Verstehe nicht, warum das nicht mehr geht. Es steht ja auch nur die ID in der Datenbank
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.


Zurück zu „DB-/Objektmodul“

Wer ist online?

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