/** * @param string $id_folder folder destination of fields * @param array $arr_fields an array with fields to attach to folder * any element of folder is an array: * key => array( 'fvalue', 'mandatory' ) * - key is the field name in current language * - fvalue is the value of the field * - mandatory is TRUE if this field is mandatory */ function _add_custom_fields($id_folder, $arr_fields) { require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $fl->setGroupFieldsTable($GLOBALS['prefix_fw'] . ORGCHAR_FIELDTABLE); $fl->setFieldEntryTable($GLOBALS['prefix_fw'] . ORGCHAR_FIELDENTRYTABLE); $arr_all_fields = $fl->getFlatAllFields(false, false, $this->default_lang); // remove all fields foreach ($arr_all_fields as $id_field => $ftranslation) { $fl->removeFieldFromGroup($id_field, $id_folder); } $arr_all_fields_translation = array_flip($arr_all_fields); $arr_fields_value = array(); // add selected fields foreach ($arr_fields as $field_translation => $field_data) { if (isset($arr_all_fields_translation[$field_translation])) { $field_id = $arr_all_fields_translation[$field_translation]; $fl->addFieldToGroup($field_id, $id_folder, $field_data['mandatory']); $arr_fields_value[$field_id] = $field_data['fvalue']; } else { die("Field non trovato: {$field_translation}"); } } $fl->storeDirectFieldsForUser($id_folder, $arr_fields_value, FALSE); }
function loadFolderField2() { if (isset($_POST[$this->id]['field_set'])) { $arr_fields = $_POST[$this->id]['field_set']; } else { $arr_fields = array(); } $id_folder = $_POST[$this->id]['id_folder']; $id_folder_desc = $_POST[$this->id]['id_folder_desc']; require_once $GLOBALS['where_framework'] . '/lib/lib.field.php'; $fl = new FieldList(); $fl->setGroupFieldsTable($GLOBALS['prefix_fw'] . ORGCHAR_FIELDTABLE); $arr_all_fields = $fl->getAllFields(); require_once _base_ . '/lib/lib.form.php'; $form = new Form(); $tree .= $form->openElementSpace(); $tree .= $this->printState(); $tree .= $form->getHidden($this->id . '_id_folder', $this->id . '[id_folder]', $id_folder); $tree .= $form->getHidden($this->id . '_id_folder_desc', $this->id . '[id_folder_desc]', $id_folder_desc); foreach ($arr_fields as $id_field => $status) { $tree .= $form->getHidden($this->id . '_' . $id_field, $this->id . '[field_set][' . $id_field . ']', ''); } // data from previous selected fields $arr_fields_prev = $fl->getFieldsFromIdst(array($id_folder), FALSE); foreach ($arr_fields as $id_field) { if (isset($arr_fields_prev[$id_field]) && $arr_fields_prev[$id_field][FIELD_INFO_MANDATORY] == 'true') { $checked = TRUE; } else { $checked = FALSE; } $field = $arr_all_fields[$id_field]; $tree .= $form->getCheckbox($field[FIELD_INFO_TRANSLATION], $this->id . '_' . $field[FIELD_INFO_ID], $this->id . '[field_mandatory][' . $field[FIELD_INFO_ID] . ']', 'true', $checked); } $tree .= $form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('save_formfield' . $this->id, $this->id . '[save_formfield]', $this->lang->def('_SAVE')) . $form->getButton($this->_getCancelId(), $this->_getCancelId(), $this->lang->def('_UNDO')) . $form->closeButtonSpace(); return $tree; }