/** * This function is called after the activation of new language * update existing forms, inputfields and entries values for activated new language * * @return null */ public function updateFormsAndEntries() { global $objDatabase; foreach ($this->arrFrontendLanguages as $lang) { $activeLang[] = $lang['id']; } $objForms = new MediaDirectoryForm(null, $this->moduleName); foreach ($objForms->arrForms as $objForm) { $formId = $objForm['formId']; $formName = $objForm['formName']; $formDescription = $objForm['formDescription']; //update form values $objForms->updateFormLocale($formName, $formDescription, $formId); $objInputField = new MediaDirectoryInputfield($formId, false, null, $this->moduleName); $inputFields = $objInputField->getInputfields(); //Before updating the form InputFields names, remove the corresponding InputFields names from db. $objDatabase->Execute('DELETE FROM ' . DBPREFIX . 'module_' . $this->moduleTablePrefix . '_inputfield_names WHERE form_id="' . $formId . '" AND lang_id IN("' . implode('","', $activeLang) . '")'); foreach ($inputFields as $inputField) { // skip '1' => categories, '2' => levels if (in_array($inputField['id'], array(1, 2))) { continue; } $intFieldId = intval($inputField['id']); $arrFieldNames = $inputField['name']; $arrFieldDefaultValues = $inputField['default_value']; $arrFieldInfos = $inputField['info']; //update form inputfields $objInputField->updateInputFields($intFieldId, $arrFieldNames, $arrFieldDefaultValues, $arrFieldInfos); } } $objEntries = new MediaDirectoryEntry($this->moduleName); //update entries $objEntries->updateEntries(); }