You are here

function joomla_admin_settings in Joomla to Drupal 7.2

Same name and namespace in other branches
  1. 5 joomla.module \joomla_admin_settings()
  2. 6 joomla.module \joomla_admin_settings()
  3. 7 joomla.module \joomla_admin_settings()

Joomla admin settings.

1 string reference to 'joomla_admin_settings'
joomla_menu in ./joomla.module
Implements hook_menu().

File

./joomla.module, line 92
The joomla module used for migrate Joomla to Drupal.

Code

function joomla_admin_settings($form, &$form_state) {

  // only administrators can access this function
  $weight = -20;
  $bundle = variable_get('joomla_default_static_nodetype', JOOMLA_DEFAULT_STATIC_NODETYPE);

  // Generate the form - settings applying to all patterns first
  $form['joomla_import_settings'] = array(
    '#type' => 'fieldset',
    '#weight' => $weight,
    '#title' => t('Import defaults'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
    '#description' => 'Set the default values for the ' . l('Import from Joomla', 'admin/content/joomla_import') . ' form',
  );
  $form['joomla_import_settings'][] = joomla_import_form_checkboxes();
  $weight++;
  $form['joomla_settings_database'] = array(
    '#type' => 'fieldset',
    '#weight' => $weight,
    '#title' => t('Joomla settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $form['joomla_settings_database']['joomla_database_host'] = array(
    '#type' => 'textfield',
    '#title' => 'Joomla database host name',
    '#default_value' => variable_get('joomla_database_host', JOOMLA_DATABASE_HOST),
    '#description' => 'Host name of Joomla database server.',
  );
  $form['joomla_settings_database']['joomla_database_name'] = array(
    '#type' => 'textfield',
    '#title' => 'Joomla database name',
    '#default_value' => variable_get('joomla_database_name', JOOMLA_DATABASE_NAME),
    '#description' => 'Joomla database name.',
  );
  $form['joomla_settings_database']['joomla_database_user'] = array(
    '#type' => 'textfield',
    '#title' => 'Joomla database user name',
    '#default_value' => variable_get('joomla_database_user', JOOMLA_DATABASE_USER),
    '#description' => 'User name for Joomla database server.',
  );
  $form['joomla_settings_database']['joomla_database_pass'] = array(
    '#type' => 'textfield',
    '#title' => 'Joomla database password',
    '#default_value' => variable_get('joomla_database_pass', JOOMLA_DATABASE_PASS),
    '#description' => 'Password for Joomla database server.',
  );
  $form['joomla_settings_database']['advanced'] = array(
    '#type' => 'fieldset',
    '#title' => t('Advanced database settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['joomla_settings_database']['advanced']['joomla_database_port'] = array(
    '#type' => 'textfield',
    '#title' => 'Joomla database port number',
    '#default_value' => variable_get('joomla_database_port', JOOMLA_DATABASE_PORT),
    '#description' => 'Port number for Joomla database server.  The default (3306) is usually fine.',
  );
  $form['joomla_settings_database']['advanced']['joomla_prefix'] = array(
    '#type' => 'textfield',
    '#title' => 'Table Prefix of Joomla',
    '#default_value' => variable_get('joomla_prefix', JOOMLA_PREFIX),
    '#description' => 'Table Prefix for Joomla tables.',
  );
  $form['joomla_settings_database']['joomla_path'] = array(
    '#type' => 'textfield',
    '#title' => 'Path of your Joomla installation',
    '#default_value' => variable_get('joomla_path', JOOMLA_PATH),
    '#description' => 'The path name where you install Joomla. Example:<br />' . '<ul><li>Apache: <b>/home/YOUR_USERNAME/public_html/joomla</b></li>' . '<li>Windows using WAMP: <b>c:/wamp/www/joomla</b></li>' . '<li>Windows using IIS: <b>C:/Inetpub/wwwroot/joomla</b></li></ul>',
  );
  $weight++;
  $form['joomla_settings_content'] = array(
    '#type' => 'fieldset',
    '#weight' => $weight,
    '#title' => t('Content settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $filter_node_options = array();
  foreach (node_type_get_types() as $key => $val) {
    if (node_access('create', $key)) {
      $filter_node_options[$key] = $val->name;
    }
  }
  $form['joomla_settings_content']['joomla_default_static_nodetype'] = array(
    '#type' => 'select',
    '#title' => t('Default node type for static items'),
    '#required' => TRUE,
    '#options' => $filter_node_options,
    '#default_value' => $bundle,
  );
  $form['joomla_settings_content']['joomla_default_blog_nodetype'] = array(
    '#type' => 'select',
    '#title' => t('Default node type for content items'),
    '#required' => TRUE,
    '#options' => $filter_node_options,
    '#default_value' => variable_get('joomla_default_blog_nodetype', JOOMLA_DEFAULT_BLOG_NODETYPE),
  );
  $lang_options = language_list();
  $langs['und'] = 'None (undefined)';
  foreach ($lang_options as $code => $lang) {
    $langs[$code] = $lang->name;
  }
  $form['joomla_settings_content']['joomla_default_language'] = array(
    '#type' => 'select',
    '#title' => t('Language to import your content to'),
    '#required' => TRUE,
    '#options' => $langs,
    '#default_value' => variable_get('joomla_default_language', LANGUAGE_NONE),
  );
  $formats = array();
  foreach (filter_formats() as $key => $format) {
    $formats[$key] = $format->name;
  }
  $form['joomla_settings_content']['joomla_input_format'] = array(
    '#type' => 'select',
    '#title' => t('Input Format'),
    '#default_value' => variable_get('joomla_input_format', JOOMLA_INPUT_FORMAT),
    '#options' => $formats,
    '#description' => t('The filter format selected below will be applied to all imported content and comments.'),
  );
  $form['joomla_settings_content']['joomla_img_folder'] = array(
    '#type' => 'textfield',
    '#title' => 'Image/Picture folder',
    '#default_value' => variable_get('joomla_img_folder', JOOMLA_IMG_FOLDER),
    '#description' => "A folder to save any images from Joomla contents. This folder related to Drupal 'files' folder, i.e: if you enter '<b>images</b>' then all imported images will be save to Drupal '<b>files/images</b>'.",
  );
  if ((bool) db_query_range('SELECT 1 FROM {joomla_categories}', 0, 1)
    ->fetchField()) {
    db_set_active('joomla');
    foreach (field_info_instances('node', $bundle) as $field_name => $field) {
      $node_fields[$field_name] = $field['label'];
    }
    $vocabularies = taxonomy_vocabulary_load_multiple(FALSE);
    foreach ($vocabularies as $vocabulary) {
      $form['joomla_settings_content']['joomla_field_' . $vocabulary->machine_name] = array(
        '#type' => 'select',
        '#title' => t('Field to store @name associations', array(
          '@name' => $vocabulary->name,
        )),
        '#options' => $node_fields,
        '#empty_value' => FALSE,
        '#default_value' => variable_get('joomla_field_' . $vocabulary->machine_name, JOOMLA_REAL_NAME_FIELD),
      );
    }
  }
  $weight++;
  $form['joomla_settings_user'] = array(
    '#type' => 'fieldset',
    '#weight' => $weight,
    '#title' => t('User settings'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $user_fields = array();
  foreach (field_info_instances('user', 'user') as $field_name => $field) {
    $user_fields[$field_name] = $field['label'];
  }
  $form['joomla_settings_user']['joomla_real_name_field'] = array(
    '#type' => 'select',
    '#title' => t('Field to use to import user Real Name to'),
    '#options' => $user_fields,
    '#empty_value' => FALSE,
    '#default_value' => variable_get('joomla_real_name_field', JOOMLA_REAL_NAME_FIELD),
  );
  return system_settings_form($form);
}