Hi everyone
I’m using a custom plugin for custom metadata field. The plugin works fine but when I try to edit the field in metadata modal the field of the language other than the selected language is empty. When I checked the code I think I figured out the problem but could not solve it.
The code that corresponds to displaying values in the metadata modal is:
$additional=$metadatafieldDAO->getAdditionalFieldValue($articleId,‘additional’);
$templateMgr->assign(‘additional’,$additional);
The first line gets the value for the currently selected language and the second line assign it to the field “additional”. I can define a function that returns the value of the second language, but I don’t know how to assign it to the same field (but for the second language of the field).
Can anyone help me with this?
I couldn’t find a class MetadataFieldDAO
or a method getAdditionalFieldValue()
in OJS 3.1.2. Can you share more about the code you are trying, and the specific software and version you are using?
It’s a custom plugin. Class MetadataFieldDAO extends DAO class and has only one function namely getAdditionalFieldValue().
My question was how to update a multilingual field in a modal using $templateMgr->assign() function. I just found the answer after some search and experimenting. I will post the result in the next reply.
So, a multilingual field can be updated by simply passing an associative array to the function $templateMgr->assign().
The array takes the form $array[$locale]=$value_for_that_locale. For example:
$additional[‘en_US’]=“additional metadata”;
$additional[‘ar_IQ’]=“بيانات وصفية اضافية”;
$templateMgr->assign(‘additional’,$additional);