コード例 #1
0
 static function transaction_extra_field_agregar_generic($extra_field_variable, $original_data, $web_service_details, $type = 'session')
 {
     $function_name = $extra_field_variable . "Detalles";
     $data = Migration::soap_call($web_service_details, $function_name, array('intIdSede' => $original_data['branch_id'], "uidid" . $extra_field_variable => $original_data['item_id']));
     if ($data['error'] == false) {
         // Exceptional treatment for specific fields
         if ($extra_field_variable == 'aula') {
             $data['name'] = $original_data['branch_id'] . ' - ' . $data['name'];
         }
         $extra_field = new ExtraField($type);
         $extra_field_info = $extra_field->get_handler_field_info_by_field_variable($extra_field_variable);
         if ($extra_field_info) {
             $extra_field_option = new ExtraFieldOption($type);
             $info_before = $extra_field_option->get_field_options_by_field($extra_field_info['id']);
             $params = array('field_id' => $extra_field_info['id'], 'option_value' => $original_data['item_id'], 'option_display_text' => $data['name'], 'option_order' => null);
             $result = $extra_field_option->save_one_item($params);
             $info_after = $extra_field_option->get_field_options_by_field($extra_field_info['id']);
             if ($result) {
                 return array('entity' => $extra_field_variable, 'before' => $info_before, 'after' => $info_after, 'message' => "Extra field option added - {$extra_field_variable} was saved with data: " . print_r($params, 1), 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL);
             } else {
                 return array('message' => "Extra field option added -  {$extra_field_variable} was NOT saved with data: " . print_r($params, 1), 'status_id' => self::TRANSACTION_STATUS_FAILED);
             }
         } else {
             return array('message' => "Extra field was not found: {$extra_field_variable}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
     } else {
         return $data;
     }
 }
コード例 #2
0
echo Display::page_header($extra_field_info['field_display_text']);
$obj = new ExtraFieldOption($extra_field->type);
$obj->field_id = $field_id;
// Action handling: Add
switch ($action) {
    case 'add':
        if (api_get_session_id() != 0 && !api_is_allowed_to_session_edit(false, true)) {
            api_not_allowed();
        }
        $url = api_get_self() . '?action=' . Security::remove_XSS($_GET['action']) . '&' . $params;
        $form = $obj->return_form($url, 'add');
        // The validation or display
        if ($form->validate()) {
            if ($check) {
                $values = $form->exportValues();
                $res = $obj->save_one_item($values);
                if ($res) {
                    Display::display_confirmation_message(get_lang('ItemAdded'));
                }
            }
            $obj->display();
        } else {
            /*echo '<div class="actions">';
              echo '<a href="'.api_get_self().'">'.Display::return_icon('back.png',get_lang('Back'),'',ICON_SIZE_MEDIUM).'</a>';
              echo '</div>';            */
            $form->addElement('hidden', 'sec_token');
            $form->setConstants(array('sec_token' => $token));
            $form->display();
        }
        break;
    case 'edit':
コード例 #3
0
 /**
  * Helper function to create extra fields in the Chamilo database. If the
  * extra field aleady exists, then just return the ID of this field. If
  * options are provided ('options' sub-array), then options are inserted in
  * the corresponding x_field_options table.
  * @param Array An array containing an 'extra_fields' entry with details about the required extra fields
  * @return void
  */
 private function _create_extra_fields(&$table)
 {
     $extra_fields = array();
     error_log('Inserting (if not exist) extra fields for : ' . $table['dest_table'] . " \n");
     foreach ($table['extra_fields'] as $extra_field) {
         //error_log('Preparing for insertion of extra field ' . $extra_field['field_display_text'] . "\n");
         $options = isset($extra_field['options']) ? $extra_field['options'] : null;
         unset($extra_field['options']);
         $extra_field_obj = new ExtraField($table['dest_table']);
         $extra_field_id = $extra_field_obj->save($extra_field);
         $selected_fields = self::prepare_field_match($options);
         //Adding options. This is only processed if the corresponding
         // extra_field has an 'options' sub-aray defined
         if (!empty($options)) {
             $extra_field_option_obj = new ExtraFieldOption($table['dest_table']);
             // use the query defined in the 'query' item as returned in a select by prepare_field_match above
             $this->select_all($options['orig_table'], $selected_fields);
             $num_rows = $this->num_rows();
             if ($num_rows) {
                 $data_to_insert = array();
                 $data_to_insert['field_id'] = $extra_field_id;
                 while ($row = $this->fetch_array()) {
                     $data = self::execute_field_match($options, $row);
                     $data_to_insert = array_merge($data_to_insert, $data);
                     $extra_field_option_obj->save_one_item($data_to_insert, false, false);
                     //error_log(print_r($extra_fields[$table['dest_table']]['extra_field_'.$extra_field['field_variable']], 1));
                     $extra_fields[$table['dest_table']]['extra_field_' . $extra_field['field_variable']]['options'][] = $data_to_insert;
                     $extra_fields[$table['dest_table']]['extra_field_' . $extra_field['field_variable']]['field_type'] = $extra_field['field_type'];
                 }
                 //$extra_fields[$table['dest_table']]['extra_field_'.$extra_field['field_variable']]['selected_option'] =
                 //error_log('$data: ' . print_r($data_to_insert, 1));
             }
         } else {
             // if there are no pre-defined options, then just return the field_id for this variable
             $extra_fields[$table['dest_table']]['extra_field_' . $extra_field['field_variable']] = $extra_field_id;
         }
     }
     return $extra_fields;
 }