function googleanalytics_admin_settings_form_validate in Google Analytics 6.3
Same name and namespace in other branches
- 5 googleanalytics.module \googleanalytics_admin_settings_form_validate()
- 6.4 googleanalytics.admin.inc \googleanalytics_admin_settings_form_validate()
- 6 googleanalytics.admin.inc \googleanalytics_admin_settings_form_validate()
- 6.2 googleanalytics.admin.inc \googleanalytics_admin_settings_form_validate()
- 7.2 googleanalytics.admin.inc \googleanalytics_admin_settings_form_validate()
- 7 googleanalytics.admin.inc \googleanalytics_admin_settings_form_validate()
File
- ./
googleanalytics.admin.inc, line 363 - Administrative page callbacks for the googleanalytics module.
Code
function googleanalytics_admin_settings_form_validate($form, &$form_state) {
// Custom variables validation.
foreach ($form_state['values']['googleanalytics_custom_var']['slots'] as $custom_var) {
$form_state['values']['googleanalytics_custom_var']['slots'][$custom_var['slot']]['name'] = trim($custom_var['name']);
$form_state['values']['googleanalytics_custom_var']['slots'][$custom_var['slot']]['value'] = trim($custom_var['value']);
// Validate empty names/values.
if (empty($custom_var['name']) && !empty($custom_var['value'])) {
form_set_error("googleanalytics_custom_var][slots][" . $custom_var['slot'] . "][name", t('The custom variable @slot-number requires a <em>Name</em> if a <em>Value</em> has been provided.', array(
'@slot-number' => $custom_var['slot'],
)));
}
elseif (!empty($custom_var['name']) && empty($custom_var['value'])) {
form_set_error("googleanalytics_custom_var][slots][" . $custom_var['slot'] . "][value", t('The custom variable @slot-number requires a <em>Value</em> if a <em>Name</em> has been provided.', array(
'@slot-number' => $custom_var['slot'],
)));
}
// If token module is not available, block tokens with personally identifying
// information with an "ugly" value check. Normally the values are validated
// via '#element_validate' functions that are not available without token module.
if (!module_exists('token')) {
if (_googleanalytics_contains_forbidden_token($custom_var['name'])) {
form_set_error("googleanalytics_custom_var][slots][" . $custom_var['slot'] . "][name", t('The custom variable %element-title is using forbidden tokens with personal identifying information.', array(
'%element-title' => $custom_var['name'] ? $custom_var['name'] : $custom_var['slot'],
)));
}
if (_googleanalytics_contains_forbidden_token($custom_var['value'])) {
form_set_error("googleanalytics_custom_var][slots][" . $custom_var['slot'] . "][value", t('The custom variable %element-title is using forbidden tokens with personal identifying information.', array(
'%element-title' => $custom_var['name'] ? $custom_var['name'] : $custom_var['slot'],
)));
}
}
}
// Trim some text values.
$form_state['values']['googleanalytics_account'] = trim($form_state['values']['googleanalytics_account']);
$form_state['values']['googleanalytics_pages'] = trim($form_state['values']['googleanalytics_pages']);
$form_state['values']['googleanalytics_codesnippet_before'] = trim($form_state['values']['googleanalytics_codesnippet_before']);
$form_state['values']['googleanalytics_codesnippet_after'] = trim($form_state['values']['googleanalytics_codesnippet_after']);
// Replace all type of dashes (n-dash, m-dash, minus) with the normal dashes.
$form_state['values']['googleanalytics_account'] = str_replace(array(
'–',
'—',
'−',
), '-', $form_state['values']['googleanalytics_account']);
if (!preg_match('/^UA-\\d{4,}-\\d+$/', $form_state['values']['googleanalytics_account'])) {
form_set_error('googleanalytics_account', t('A valid Google Analytics Web Property ID is case sensitive and formatted like UA-xxxxxxx-yy.'));
}
// Clear obsolete local cache if cache has been disabled.
if (empty($form_state['values']['googleanalytics_cache']) && $form['advanced']['googleanalytics_cache']['#default_value']) {
googleanalytics_clear_js_cache();
}
// This is for the Newbie's who cannot read a text area description.
if (stristr($form_state['values']['googleanalytics_codesnippet_before'], 'google-analytics.com/ga.js')) {
form_set_error('googleanalytics_codesnippet_before', t('Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings.'));
}
if (stristr($form_state['values']['googleanalytics_codesnippet_after'], 'google-analytics.com/ga.js')) {
form_set_error('googleanalytics_codesnippet_after', t('Do not add the tracker code provided by Google into the javascript code snippets! This module already builds the tracker code based on your Google Analytics account number and settings.'));
}
if (preg_match('/(.*)<\\/?script(.*)>(.*)/i', $form_state['values']['googleanalytics_codesnippet_before'])) {
form_set_error('googleanalytics_codesnippet_before', t('Do not include the <script> tags in the javascript code snippets.'));
}
if (preg_match('/(.*)<\\/?script(.*)>(.*)/i', $form_state['values']['googleanalytics_codesnippet_after'])) {
form_set_error('googleanalytics_codesnippet_after', t('Do not include the <script> tags in the javascript code snippets.'));
}
}