franck@4: t('User'), 'tag' => t('Tag')); franck@4: if (count($imports)) { franck@4: $form['imports'] = array( franck@4: '#type' => 'fieldset', franck@4: '#title' => t('Current imports'), franck@4: '#tree' => TRUE, franck@4: '#theme' => 'scald_dailymotion_imports_table' franck@4: ); franck@4: foreach ($imports as $key => $import) { franck@4: $form['imports'][$key] = array( franck@4: 'type' => array( franck@4: '#type' => 'select', franck@4: '#title' => t('Type'), franck@4: '#options' => array('delete' => t('')) + $types, franck@4: '#default_value' => $import['type'] franck@4: ), franck@4: 'value' => array( franck@4: '#type' => 'textfield', franck@4: '#title' => t('Identifier'), franck@4: '#default_value' => $import['value'] franck@4: ), franck@4: ); franck@4: } franck@4: } franck@4: $form['add'] = array( franck@4: '#type' => 'fieldset', franck@4: '#title' => t('Add import'), franck@4: '#collapsible' => TRUE, franck@4: '#collapsed' => count($imports) franck@4: ); franck@4: $form['add']['type'] = array( franck@4: '#type' => 'select', franck@4: '#title' => t('Type'), franck@4: '#options' => $types, franck@4: ); franck@4: $form['add']['value'] = array( franck@4: '#type' => 'textfield', franck@4: '#title' => t('Identifier'), franck@4: '#description' => t('This field value meaning depends on the Type franck@4: field defined above. For a User import, put the username franck@4: whose videos you\'d loke to import here, for a tag import, use the franck@4: tag name.') franck@4: ); franck@4: $form['add']['submit'] = array( franck@4: '#type' => 'submit', franck@4: '#value' => t('Add this import'), franck@4: '#submit' => array('scald_dailymotion_imports_form_add') franck@4: ); franck@4: franck@4: $form['submit'] = array( franck@4: '#type' => 'submit', franck@4: '#value' => t('Save configuration') franck@4: ); franck@4: return $form; franck@4: } franck@4: franck@4: /** franck@4: * Handles the submission of the form that adds a new import. franck@4: */ franck@4: function scald_dailymotion_imports_form_add($form, &$form_state) { franck@4: $imports = variable_get('scald_dailymotion_imports', array()); franck@4: $values = $form_state['values']; franck@4: $key = $values['type'] . '-' . $values['value']; franck@4: $imports[$key] = array('type' => $values['type'], 'value' => $values['value']); franck@4: variable_set('scald_dailymotion_imports', $imports); franck@4: drupal_set_message(t('Import added')); franck@4: } franck@4: franck@4: /** franck@4: * Handles the submission of the whole form. franck@4: */ franck@4: function scald_dailymotion_imports_form_submit($form, &$form_state) { franck@4: drupal_set_message(t('The configuration options have been saved.')); franck@4: $imports = array(); franck@4: foreach ($form_state['values']['imports'] as $key => $import) { franck@4: if ($import['type'] != 'delete') { franck@4: $imports[$key] = $import; franck@4: } franck@4: } franck@4: variable_set('scald_dailymotion_imports', $imports); franck@4: } franck@4: franck@4: /** franck@4: * Themes the current imports form. franck@4: */ franck@4: function theme_scald_dailymotion_imports_table($form) { franck@4: $headers = array(t('Type'), t('Identifier')); franck@4: $rows = array(); franck@4: foreach (element_children($form) as $key) { franck@4: // Unset per widget titles, they're already in the column title franck@4: $form[$key]['type']['#title'] = $form[$key]['value']['#title'] = ''; franck@4: // Render our row franck@4: $row = array(); franck@4: $row[] = drupal_render($form[$key]['type']); franck@4: $row[] = drupal_render($form[$key]['value']); franck@4: // And add it to the list of table rows. franck@4: $rows[] = $row; franck@4: } franck@4: return theme('table', $headers, $rows); franck@4: }