/**
  * @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);
 }
Example #2
0
 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;
 }