function extlink_admin_settings in External Links 7
Same name and namespace in other branches
- 5 extlink.module \extlink_admin_settings()
- 6 extlink.module \extlink_admin_settings()
Administrative settings.
1 string reference to 'extlink_admin_settings'
- extlink_menu in ./
extlink.module - Implements hook_menu().
File
- ./
extlink.module, line 90 - External Link module.
Code
function extlink_admin_settings() {
$form = array();
$form['extlink_class'] = array(
'#type' => 'checkbox',
'#title' => t('Place an icon next to external links.'),
'#return_value' => 'ext',
'#default_value' => variable_get('extlink_class', 'ext'),
'#description' => t('Places an !icon icon next to external links.', array(
'!icon' => theme('image', array(
'path' => drupal_get_path('module', 'extlink') . '/images/extlink.png',
'alt' => t('External Links icon'),
)),
)),
);
$form['extlink_mailto_class'] = array(
'#type' => 'checkbox',
'#title' => t('Place an icon next to mailto links.'),
'#return_value' => 'mailto',
'#default_value' => variable_get('extlink_mailto_class', 'mailto'),
'#description' => t('Places an !icon icon next to mailto links.', array(
'!icon' => theme('image', array(
'path' => drupal_get_path('module', 'extlink') . '/images/mailto.png',
'alt' => t('Email links icon'),
)),
)),
);
$form['extlink_img_class'] = array(
'#type' => 'checkbox',
'#title' => t('Place an icon next to image links.'),
'#return_value' => TRUE,
'#default_value' => variable_get('extlink_img_class', FALSE),
'#description' => t('If checked, images wrapped in an anchor tag will be treated as external links.'),
);
$form['extlink_use_font_awesome'] = array(
'#type' => 'checkbox',
'#title' => t('Use Font Awesome icons instead of images.'),
'#return_value' => TRUE,
'#default_value' => variable_get('extlink_use_font_awesome', FALSE),
'#description' => t('Add Font Awesome classes to the link as well as an i tag rather than images.'),
);
$form['extlink_icon_placement'] = array(
'#type' => 'checkbox',
'#title' => t('Add icon in front of any processed link'),
'#return_value' => 'prepend',
'#default_value' => variable_get('extlink_icon_placement', 'append'),
'#description' => t('If checked, the icon will be placed in front of any external link, otherwise it will be placed behind it.'),
);
$form['extlink_subdomains'] = array(
'#type' => 'checkbox',
'#title' => t('Exclude links with the same primary domain.'),
'#default_value' => variable_get('extlink_subdomains', 1),
'#description' => t("For example, a link from 'www.example.com' to the subdomain of 'my.example.com' would be excluded."),
);
$form['extlink_target'] = array(
'#type' => 'checkbox',
'#title' => t('Open external links in a new window.'),
'#return_value' => '_blank',
'#default_value' => variable_get('extlink_target', 0),
);
$form['extlink_alert'] = array(
'#type' => 'checkbox',
'#title' => t('Display a pop-up warning when any external link is clicked.'),
'#return_value' => '_blank',
'#default_value' => variable_get('extlink_alert', 0),
);
$form['extlink_alert_text'] = array(
'#type' => 'textarea',
'#title' => t('Text to display in the pop-up warning box.'),
'#rows' => 3,
'#default_value' => variable_get('extlink_alert_text', 'This link will take you to an external web site.'),
'#wysiwyg' => FALSE,
'#states' => array(
// Only show this field when user opts to display a pop-up warning.
'visible' => array(
':input[name="extlink_alert"]' => array(
'checked' => TRUE,
),
),
),
);
$patterns = array(
'<code>(example\\.com)</code> ' . t('Matches example.com.'),
'<code>(example\\.com)|(example\\.net)</code> ' . t('Multiple patterns can be strung together by using a pipe. Matches example.com OR example.net.'),
'<code>(links/goto/[0-9]+/[0-9]+)</code> ' . t('Matches links that go through the <a href="http://drupal.org/project/links">Links module</a> redirect.'),
);
$wildcards = array(
'<code>.</code> ' . t('Matches any character.'),
'<code>?</code> ' . t('The previous character or set is optional.'),
'<code>\\d</code> ' . t('Matches any digit (0-9).'),
'<code>[a-z]</code> ' . t('Brackets may be used to match a custom set of characters. This matches any alphabetic letter.'),
);
$form['patterns'] = array(
'#tree' => FALSE,
'#type' => 'fieldset',
'#title' => t('Pattern matching'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => '<p>' . t('External links uses patterns (regular expressions) to match the "href" property of links.') . '</p>' . t('Here are some common patterns.') . theme('item_list', array(
'items' => $patterns,
)) . t('Common special characters:') . theme('item_list', array(
'items' => $wildcards,
)) . '<p>' . t('All special characters (!characters) must also be escaped with backslashes. Patterns are not case-sensitive. Any <a href="http://www.javascriptkit.com/javatutors/redev2.shtml">pattern supported by JavaScript</a> may be used.', array(
'!characters' => '<code>^ $ . ? ( ) | * +</code>',
)) . '</p>',
);
$form['patterns']['extlink_exclude'] = array(
'#type' => 'textfield',
'#title' => t('Exclude links matching the pattern'),
'#maxlength' => NULL,
'#default_value' => variable_get('extlink_exclude', ''),
'#description' => t('Enter a regular expression for links that you wish to exclude from being considered external.'),
);
$form['patterns']['extlink_exclude_internal'] = array(
'#type' => 'textarea',
'#title' => t('Exclude internal paths'),
'#default_value' => variable_get('extlink_exclude_internal', ''),
'#description' => t('Enter internal paths, one per line, that should be excluded, eg. node/1.'),
);
$form['patterns']['extlink_include'] = array(
'#type' => 'textfield',
'#title' => t('Include links matching the pattern'),
'#maxlength' => NULL,
'#default_value' => variable_get('extlink_include', ''),
'#description' => t('Enter a regular expression for internal links that you wish to be considered external.'),
);
$form['patterns']['extlink_include_internal'] = array(
'#type' => 'textarea',
'#title' => t('Include internal paths'),
'#default_value' => variable_get('extlink_include_internal', ''),
'#description' => t('Enter internal paths, one per line, that should be included, eg. node/1.'),
);
$form['css_matching'] = array(
'#tree' => FALSE,
'#type' => 'fieldset',
'#title' => t('CSS Matching'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#description' => '<p>' . t('Use CSS selectors to exclude entirely or only look inside explicitly specified classes and IDs for external links. These will be passed straight to jQuery for matching.') . '</p>',
);
$form['css_matching']['extlink_css_exclude'] = array(
'#type' => 'textarea',
'#title' => t('Exclude links inside these CSS selectors'),
'#maxlength' => NULL,
'#default_value' => variable_get('extlink_css_exclude', ''),
'#description' => t('Enter a comma-separated list of CSS selectors (ie "#block-block-2 .content, ul.menu")'),
);
$form['css_matching']['extlink_css_explicit'] = array(
'#type' => 'textarea',
'#title' => t('Only look for links inside these CSS selectors'),
'#maxlength' => NULL,
'#default_value' => variable_get('extlink_css_explicit', ''),
'#description' => t('Enter a comma-separated list of CSS selectors (ie "#block-block-2 .content, ul.menu")'),
);
$form['#submit'][] = 'extlink_admin_settings_submit';
return system_settings_form($form);
}