function domain_configure_form in Domain Access 5
Same name and namespace in other branches
- 6.2 domain.admin.inc \domain_configure_form()
- 7.3 domain.admin.inc \domain_configure_form()
- 7.2 domain.admin.inc \domain_configure_form()
FormsAPI for configuring the domain module.
1 string reference to 'domain_configure_form'
- domain_configure in ./
domain_admin.inc - Module settings and behaviors.
File
- ./
domain_admin.inc, line 121 - Administration functions for the domain module.
Code
function domain_configure_form($user_submitted = FALSE) {
$form = array();
$form['domain'] = array(
'#type' => 'fieldset',
'#title' => t('Default domain settings'),
'#collapsible' => TRUE,
);
$form['#redirect'] = 'admin/build/domain';
$sitename = variable_get('site_name', 'Drupal');
$form['domain']['domain_root'] = array(
'#type' => 'textfield',
'#title' => t('Primary domain name'),
'#size' => 40,
'#maxlength' => 80,
'#required' => TRUE,
'#default_value' => variable_get('domain_root', ''),
'#description' => t('The primary domain for your site. Typically <em>example.com</em> or <em>www.example.com</em>. Do not use http or slashes.
<br />This domain will be used as the default URL for your site.
<br />If an invalid domain is requested, users will be sent to the primary domain.'),
);
$form['domain']['domain_sitename'] = array(
'#type' => 'textfield',
'#title' => t('Site name'),
'#size' => 40,
'#maxlength' => 80,
'#required' => TRUE,
'#default_value' => variable_get('domain_sitename', $sitename),
'#description' => t('The site name to display for this domain.'),
);
$form['domain']['domain_scheme'] = array(
'#type' => 'radios',
'#title' => t('Domain URL scheme'),
'#required' => TRUE,
'#options' => array(
'http' => 'http://',
'https' => 'https://',
),
'#default_value' => variable_get('domain_scheme', 'http'),
'#description' => t('The URL scheme for accessing the primary domain.'),
);
$form['domain_behavior'] = array(
'#type' => 'fieldset',
'#title' => t('Domain module behaviors'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['domain_behavior']['domain_behavior'] = array(
'#type' => 'radios',
'#title' => t('New content settings'),
'#required' => TRUE,
'#default_value' => variable_get('domain_behavior', DOMAIN_INSTALL_RULE),
'#options' => array(
1 => t('Show on all affiliate sites'),
2 => t('Only show on selected sites'),
),
'#description' => t('If set, this value will automatically assign new content to all sites. <a href="!url">Node-type specific settings</a> are also available.', array(
'!url' => url('admin/build/domain/advanced'),
)),
);
$form['domain_behavior']['domain_options'] = array(
'#type' => 'radios',
'#title' => t('Content editing forms'),
'#required' => TRUE,
'#default_value' => variable_get('domain_options', 0),
'#options' => array(
0 => t('Pass the default form values as hidden fields'),
1 => t('Take user to the default domain'),
2 => t('Take user to their assigned domain'),
3 => t('Show user their publishing options'),
),
'#description' => t('Controls the behavior of forms for users with the <em>view domain publishing</em> permission when creating or editing content. See the README for more details.'),
);
$form['domain_behavior']['domain_debug'] = array(
'#type' => 'radios',
'#title' => t('Debugging status'),
'#required' => TRUE,
'#default_value' => variable_get('domain_debug', 0),
'#options' => array(
0 => t('Do not show debugging output'),
1 => t('Show debugging output on node view'),
),
'#description' => t('If set, users with the <em>set domain access</em> permission will be able to view the node access rules for each node. See the README for more details.'),
);
$form['domain_behavior']['domain_force_admin'] = array(
'#type' => 'radios',
'#title' => t('Enforce rules on administrators'),
'#required' => TRUE,
'#default_value' => variable_get('domain_force_admin', 0),
'#options' => array(
0 => t('Do not enforce'),
1 => t('Restrict node views for administrators'),
),
'#description' => t('If set, users with the <em>administer nodes</em> permission and user 1 <em>will view the site with Domain Access restrictions enforced</em>. See the README for more details.'),
);
$options = array(
'id' => t('Creation order, oldest > newest'),
'rid' => t('Creation order, newest > oldest'),
'name' => t('Sitename, A > Z'),
'rname' => t('Sitename, Z > A'),
'url' => t('URL, A > Z'),
'rurl' => t('URL, Z > A'),
);
$form['domain_behavior']['domain_sort'] = array(
'#type' => 'radios',
'#title' => t('Sort domain lists'),
'#required' => TRUE,
'#default_value' => variable_get('domain_sort', 'id'),
'#options' => $options,
'#description' => t('Controls the display of domain lists to end users.'),
);
$form['domain_advanced'] = array(
'#type' => 'fieldset',
'#title' => t('Advanced settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['domain_advanced']['domain_editors'] = array(
'#type' => 'radios',
'#title' => t('Domain-based editing controls'),
'#default_value' => variable_get('domain_editors', intval(DOMAIN_EDITOR_RULE)),
'#options' => array(
0 => t('Do not use access control for editors'),
1 => t('Use access control for editors'),
),
'#description' => t('If set, users with the <em>edit domain nodes</em> permission will be able to edit all nodes assigned to their domain.'),
);
// When turning on and off editing rules, we rebuild part of the node_access table.
$form['#submit']['domain_admin_editor_form'] = array();
$form['domain_editors_status'] = array(
'#type' => 'value',
'#value' => variable_get('domain_editors', 0),
);
// Adding this submit behavior disabled the default, so we add that explictly.
$form['#submit']['system_settings_form_submit'] = array();
// Check to see if the node_access patch is enabled. If it is, then
// we need to know if more than one node_access module is running.
$modules = count(module_implements('node_grants'));
if (!function_exists('node_access_grants_sql') || $modules < 2) {
$disabled = TRUE;
variable_set('domain_access_rules', 0);
}
// Do not show this form element unless it is necessary
if ($modules > 1) {
$form['domain_advanced']['domain_access_rules'] = array(
'#type' => 'radios',
'#title' => t('Node access settings'),
'#disabled' => $disabled,
'#default_value' => variable_get('domain_access_rules', 0),
'#options' => array(
0 => t('Use the default Drupal behavior (OR)'),
1 => t('Check Domain Access in addition to other modules (AND)'),
),
'#description' => t('Controls how Domain Access interacts with access control modules such as Organic Groups. Requires the multiple_node_access patch.'),
);
}
// Check to see if the hook_url_alter() patch is installed.
$disabled = FALSE;
if (url('domain_access_test_path') != url('domain_access_path_test')) {
$disabled = TRUE;
variable_set('domain_search', 0);
variable_set('domain_seo', 0);
}
$form['domain_advanced']['domain_search'] = array(
'#type' => 'radios',
'#title' => t('Search settings'),
'#disabled' => $disabled,
'#default_value' => variable_get('domain_search', 0),
'#options' => array(
0 => t('Search content for the current domain only'),
1 => t('Search all domains from any URL'),
),
'#description' => t('Options for content searching. This feature requires the hook_url_alter() patch.'),
);
$form['domain_advanced']['domain_seo'] = array(
'#type' => 'radios',
'#title' => t('Search engine optimization'),
'#disabled' => $disabled,
'#default_value' => variable_get('domain_seo', 0),
'#options' => array(
0 => t('Do not rewrite URLs'),
1 => t('Rewrite all URLs to point to a single source'),
),
'#description' => t('If rewrite is turned on, all node links will point to a single instance of the node. This
option reduces the chance that search engines will recognize duplicate content.
This feature requires the hook_url_alter() patch.'),
);
$options = array(
'-1' => t('Do not change domain'),
);
foreach (domain_domains() as $data) {
// The domain must be valid.
if ($data['valid']) {
$options[$data['domain_id']] = $data['sitename'];
}
}
$form['domain_advanced']['domain_default_source'] = array(
'#type' => 'select',
'#title' => t('Default source domain'),
'#options' => $options,
'#default_value' => variable_get('domain_default_source', 0),
'#description' => t('When rewriting urls, nodes assigned to all affiliates will be sent to this domain.'),
);
$form['domain_advanced']['domain_www'] = array(
'#type' => 'radios',
'#title' => t('WWW prefix handling'),
'#default_value' => variable_get('domain_www', 0),
'#options' => array(
0 => t('Process all host requests normally'),
1 => t('Treat www.*.example.com as an alias of *.example.com'),
),
'#description' => t('If set, calls to www.* will be treated as if the www. did not exist.'),
);
$form['domain_advanced']['domain_redirect_wildcards'] = array(
'#type' => 'checkbox',
'#title' => t('Enable wildcard domain redirection'),
'#default_value' => variable_get('domain_redirect_wildcards', TRUE),
'#description' => t('When using Domain Access with wildcard DNS, an invalid domain (e.g. a misspelling) results in an alias of the default domain rather than a redirect. In general you will want to issue a redirect, to avoid spiders indexing wrong domains, or people making bookmarks to non-existant domains. However, in some cases you do not want this redirect to take place. For example when testing or developing on test.example.com, or your localhost.'),
);
$form['domain_advanced']['domain_redirect_alert'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user of wildcard redirection'),
'#default_value' => variable_get('domain_redirect_alert', TRUE),
'#description' => t('If redirecting invalid domains to the primary domain, print a message to the user, telling them to update any page bookmarks.'),
);
$form['domain_all'] = array(
'#type' => 'fieldset',
'#title' => t('Special page requests'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['domain_all']['domain_grant_all'] = array(
'#type' => 'textarea',
'#rows' => 5,
'#cols' => 40,
'#default_value' => variable_get('domain_grant_all', "user/*/track"),
'#description' => t('Content on these pages should be viewable on any domain. Enter one path per line.
You may use the * as a wildcard. Use this for aggregate pages like those provided by <a href="!url">MySite</a> or if you
intend to show all user posts on a specific page. See the README for more details.', array(
'!url' => 'http://drupal.org/project/mysite',
)),
);
$form['domain_all']['domain_cron_rule'] = array(
'#type' => 'checkbox',
'#default_value' => variable_get('domain_cron_rule', 1),
'#title' => t('Treat cron.php as a special page request.'),
'#description' => t('Normally, you should leave this setting active. See the README for more information.'),
);
// The hook_url_alter() patch must be present for these settings to be applied.
if (!$disabled) {
$form['domain_paths'] = array(
'#type' => 'fieldset',
'#title' => t('Node link patterns'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['domain_paths']['domain_paths'] = array(
'#type' => 'textarea',
'#rows' => 5,
'#cols' => 40,
'#default_value' => variable_get('domain_paths', "node/%n\r\nnode/%n/edit\r\ncomment/reply/%n\r\nnode/add/book/parent/%n\r\nbook/export/html/%n"),
'#description' => t('When using SEO or other path rewrites, the following link paths should be turned into absolute URLs. Enter
the Drupal path of the link, using the <em>%n</em> placeholder to represent the node id.
Enter one path per line. See the README for more details.'),
);
}
// Allow submodules to add elements to the form.
$modules = module_implements('domainform');
if (!empty($modules)) {
foreach ($modules as $module) {
$func = $module . '_domainform';
$func($form);
}
}
return system_settings_form($form);
}