@@ -196,8 +196,8 @@ public function loadDataFrom($data, $mergeStrategy = 0, $fieldList = null)
196196 if (empty ($ speaker ->TwitterName )) $ this ->fields ->fieldByName ('TwitterName ' )->setValue ($ speaker ->Member ()->TwitterName );
197197 }
198198
199- $ this ->fields ->fieldByName ('Expertise ' )->setValue (implode (', ' ,$ speaker ->AreasOfExpertise ()->map ('ID ' ,'Expertise ' )->toArray ()));
200- $ this ->fields ->fieldByName ('Language ' )->setValue (implode (', ' ,$ speaker ->Languages ()->map ('ID ' ,'Language ' )->toArray ()));
199+ $ this ->fields ->fieldByName ('Expertise ' )->setValue (implode (', ' , $ speaker ->AreasOfExpertise ()->map ('ID ' ,'Expertise ' )->toArray ()));
200+ $ this ->fields ->fieldByName ('Language ' )->setValue (implode (', ' , $ speaker ->Languages ()->map ('ID ' ,'Name ' )->toArray ()));
201201
202202 $ country_array = array ();
203203 foreach ($ speaker ->TravelPreferences () as $ pref_country ) {
@@ -259,8 +259,11 @@ public function saveInto(DataObjectInterface $dataObject, $fieldList = null) {
259259
260260 $ language = $ this ->fields ->fieldByName ("Language " )->Value ();
261261 $ speaker ->Languages ()->removeAll ();
262- foreach (explode (', ' ,$ language ) as $ lang_id ) ;
263- $ speaker ->Languages ()->add ($ lang_id );
262+ foreach (explode (', ' ,$ language ) as $ lang_name ) {
263+ $ lang = Language::get ()->where (sprintf ("LOWER(Name) = '%s' " , strtolower ($ lang_name )))->first ();
264+ if (!$ lang ) continue ;
265+ $ speaker ->Languages ()->add ($ lang );
266+ }
264267
265268 $ link_ids = [];
266269 for ($ i = 1 ; $ i <= 5 ; $ i ++ ){
0 commit comments