Multiobjekt über Frontend speichern
Multiobjekt über Frontend speichern
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>
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>
Re: Multiobjekt über Frontend speichern
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
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).
Gruß
Timo
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>>
Code: Alles auswählen
$obj = new we_objectFile();
$obj->initById($objectId);
$obj->setElement('multiobjektfeldname','1,2,3');
$obj->we_save();
$obj->we_publish();
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Multiobjekt über Frontend speichern
Hallo Timo,
vielen Dank für dein Hilfe - es hat alles super funktioniert.
Joachim
vielen Dank für dein Hilfe - es hat alles super funktioniert.
Joachim
Re: Multiobjekt über Frontend speichern
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
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
Re: Multiobjekt über Frontend speichern
was verstehst Du unter einer "einfachen Objektverknüpfung"?
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Multiobjekt über Frontend speichern
In einem Objekt ist ein Feld als Objekt angelegt nicht als Multiobjekt
Re: Multiobjekt über Frontend speichern
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.
Ehemals im Vorstand des webEdition e.V.
Re: Multiobjekt über Frontend speichern
Danke kein Problem - werde ich so machen.
Re: Multiobjekt über Frontend speichern
Ich habe gerade im Prinzip gleiches Problem. Würde gerne im Frontend über ein Select das zugeordnete Objekt ändern.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
Re: Multiobjekt über Frontend speichern
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?
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.
Re: Multiobjekt über Frontend speichern
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...
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
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);
VG, Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Multiobjekt über Frontend speichern
Ja, das habe ich auch schon gedacht, dass es am Typ liegen könnte.
ich habe daher folgendes versucht:
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
eine Objektverknüpfung herstellen will?
ich habe daher folgendes versucht:
Code: Alles auswählen
$_REQUEST['we_ui_ProForm']['Anbieter']=(integer)$_REQUEST['we_ui_ProForm']['Anbieter'];
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);
Dinge von großer Bedeutung gehe man mit Leichtigkeit an, Dinge von geringer Bedeutung mit großem Ernst.
Re: Multiobjekt über Frontend speichern
wenn Du das Objekt geschrieben hast, kannst direkt im <we:ifWritten > danach
aufrufen
Code: Alles auswählen
$we_object['formularName']->ID;
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Multiobjekt über Frontend speichern
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.
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.
Re: Multiobjekt über Frontend speichern
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
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.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast