Loading css/eu_cookie_compliance.css +17 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ display: inline-block; text-align: left; width: 100%; position: relative; } #sliding-popup .popup-content #popup-buttons { Loading Loading @@ -196,6 +197,22 @@ display: none; } .eu-cookie-compliance-close-button { background: url('../images/close.png'); width: 24px; height: 24px; border-width: 0; font-size: 0px; position: absolute; right: 2px; top: -12px; cursor: pointer; } body:not(.eu-cookie-compliance-popup-open) .eu-cookie-compliance-close-button { display: none; } @media screen and (max-width: 600px) { #sliding-popup .popup-content { max-width: 95%; Loading eu_cookie_compliance.admin.inc +69 −0 Original line number Diff line number Diff line Loading @@ -488,6 +488,62 @@ function eu_cookie_compliance_admin_form(array $form, array $form_state) { '#description' => t('This button will withdraw consent when clicked.'), ); $form['reject_button'] = array( '#type' => 'fieldset', '#collapsible' => TRUE, '#collapsed' => FALSE, '#title' => t('Reject button and close box'), '#states' => array( 'visible' => array('input[name="eu_cookie_compliance[method]"]' => array('value' => 'categories')), ), ); $form['reject_button']['eu_cookie_compliance'] = array( '#type' => 'item', '#tree' => TRUE, ); $form['reject_button']['eu_cookie_compliance']['reject_button_enabled'] = array( '#type' => 'checkbox', '#title' => t('Enable "Reject/deny all" button'), '#default_value' => $popup_settings['reject_button_enabled'], ); $form['reject_button']['eu_cookie_compliance']['reject_button_label'] = array( '#type' => 'textfield', '#title' => t('Reject button label'), '#default_value' => $popup_settings['reject_button_label'], '#states' => array( 'visible' => array( "input[name='eu_cookie_compliance[reject_button_enabled]']" => array('checked' => TRUE), ), ), ); $form['reject_button']['eu_cookie_compliance']['close_button_enabled'] = array( '#type' => 'checkbox', '#title' => t('Close button/box enabled'), '#default_value' => $popup_settings['close_button_enabled'], ); $form['reject_button']['eu_cookie_compliance']['close_button_action'] = array( '#type' => 'select', '#title' => t('Close button action'), '#options' => array( 'close_banner' => t('Close banner'), 'accept_all_cookies' => t('Accept all cookies'), 'reject_all_cookies' => t('Reject all cookies'), 'save_preferences' => t('Trigger Save preferences (for banner with categories)'), ), '#default_value' => $popup_settings['close_button_action'], '#states' => array( 'visible' => array( "input[name='eu_cookie_compliance[close_button_enabled]']" => array('checked' => TRUE), ), ), '#description' => t('The default position of the close button is in the top right corner of the banner.'), ); $form['thank_you'] = array( '#type' => 'fieldset', '#collapsible' => TRUE, Loading Loading @@ -1042,6 +1098,19 @@ function eu_cookie_compliance_admin_form_validate(array $form, array &$form_stat $form_state['values']['eu_cookie_compliance']['withdraw_enabled'] = FALSE; } if ($form_state['values']['eu_cookie_compliance']['method'] !== 'categories') { $form_state['values']['eu_cookie_compliance']['close_button_enabled'] = 0; $form_state['values']['eu_cookie_compliance']['reject_button_enabled'] = 0; } if (!$form_state['values']['eu_cookie_compliance']['close_button_enabled']) { $form_state['values']['eu_cookie_compliance']['close_button_action'] = 'close_banner'; } if (!$form_state['values']['eu_cookie_compliance']['reject_button_enabled']) { $form_state['values']['eu_cookie_compliance']['reject_button_label'] = ''; } // Validate cookie name against valid characters. if (preg_match('/[&\'\x00-\x20\x22\x28-\x29\x2c\x2f\x3a-\x40\x5b-\x5d\x7b\x7d\x7f]/', $form_state['values']['eu_cookie_compliance']['cookie_name'])) { form_set_error('eu_cookie_compliance][cookie_name', t('Invalid cookie name, please remove any special characters and try again.')); Loading eu_cookie_compliance.install +40 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,10 @@ function _eu_cookie_compliance_get_popup_default_setting() { 'allowed_cookies' => '', 'withdraw_button_on_info_popup' => 0, 'containing_element' => 'body', 'close_button_enabled' => 0, 'close_button_action' => 'close_banner', 'reject_button_enabled' => 0, 'reject_button_label' => '', ); } Loading Loading @@ -824,3 +828,39 @@ function _migrate_cookie_categories_to_separate_structure(array $categories, arr } return $categories; } /** * Add defaults for reject button. */ function eu_cookie_compliance_update_7020() { $eu_cookie_settings = variable_get('eu_cookie_compliance', array()); $new_settings = array( 'close_button_enabled' => FALSE, 'close_button_action' => 'close_banner', 'reject_button_enabled' => FALSE, 'reject_button_label' => '', ); variable_set('eu_cookie_compliance', $eu_cookie_settings + $new_settings); if (module_exists('i18n_variable')) { $languages = language_list(); foreach (array_keys($languages) as $langcode) { $settings = i18n_variable_get('eu_cookie_compliance', $langcode); if (!empty($settings)) { $updated_setting = $settings + $new_settings; variable_realm_set('language', $langcode, 'eu_cookie_compliance', $updated_setting, FALSE); } } } // Set configuration variables for all domains. if (module_exists('domain_settings') && module_exists('domain_conf')) { $domains = domain_domains(); foreach ($domains as $domain_data) { $domain_id = $domain_data['domain_id']; $settings = domain_conf_variable_get($domain_id, 'eu_cookie_compliance'); $updated_settings = $settings + $new_settings; domain_conf_variable_save($domain_id, 'eu_cookie_compliance', $updated_settings); } } } eu_cookie_compliance.module +17 −1 Original line number Diff line number Diff line Loading @@ -275,6 +275,10 @@ function eu_cookie_compliance_page_build(&$page) { 'new' => 'eu_cookie_compliance_popup_info', ); $tertiary_button_label = ''; $tertiary_button_class = ''; $close_button_enabled = FALSE; switch ($method) { case 'default': $click_confirmation = isset($popup_settings['popup_clicking_confirmation']) ? $popup_settings['popup_clicking_confirmation'] : TRUE; Loading Loading @@ -313,6 +317,9 @@ function eu_cookie_compliance_page_build(&$page) { $primary_button_class = 'agree-button eu-cookie-compliance-default-button'; $secondary_button_label = $popup_settings['withdraw_action_button_label']; $secondary_button_class = 'eu-cookie-withdraw-button eu-cookie-compliance-hidden'; $tertiary_button_label = $popup_settings['reject_button_label']; $tertiary_button_class = 'decline-button eu-cookie-compliance-default-button eu-cookie-compliance-reject-button'; $close_button_enabled = !empty($popup_settings['close_button_enabled']) ? filter_xss($popup_settings['close_button_enabled']) : FALSE; $privacy_settings_tab_label = $withdraw_button_on_info_popup ? $popup_settings['withdraw_tab_button_label'] : FALSE; $popup_info_template = $info_templates[$popup_settings['info_template']]; break; Loading Loading @@ -356,6 +363,9 @@ function eu_cookie_compliance_page_build(&$page) { 'secondary_button_label' => $secondary_button_label, 'primary_button_class' => $primary_button_class, 'secondary_button_class' => $secondary_button_class, 'tertiary_button_label' => $tertiary_button_label, 'tertiary_button_class' => $tertiary_button_class, 'close_button_enabled' => $close_button_enabled, 'cookie_categories' => $cookie_categories, 'save_preferences_button_label' => $save_preferences_button_label, 'privacy_settings_tab_label' => $privacy_settings_tab_label, Loading @@ -369,6 +379,9 @@ function eu_cookie_compliance_page_build(&$page) { 'secondary_button_label' => $secondary_button_label, 'primary_button_class' => $primary_button_class, 'secondary_button_class' => $secondary_button_class, 'tertiary_button_label' => $tertiary_button_label, 'tertiary_button_class' => $tertiary_button_class, 'close_button_enabled' => $close_button_enabled, 'cookie_categories' => $cookie_categories, 'save_preferences_button_label' => $save_preferences_button_label, 'privacy_settings_tab_label' => $privacy_settings_tab_label, Loading Loading @@ -439,6 +452,7 @@ function eu_cookie_compliance_page_build(&$page) { 'cookie_value_agreed' => !empty($popup_settings['cookie_value_agreed']) ? $popup_settings['cookie_value_agreed'] : '2', 'containing_element' => !empty($popup_settings['containing_element']) ? $popup_settings['containing_element'] : 'body', 'automatic_cookies_removal' => !empty($popup_settings['automatic_cookies_removal']) ? $popup_settings['automatic_cookies_removal'] : '', 'close_button_action' => !empty($popup_settings['close_button_action']) ? $popup_settings['close_button_action'] : '', ); // For some reason, we're getting the wrong language when editing the // localized form, so we shouldn't cache. Loading Loading @@ -591,7 +605,9 @@ function eu_cookie_compliance_theme() { 'primary_button_class' => NULL, 'secondary_button_class' => NULL, 'privacy_settings_tab_label' => NULL, 'cookie_categories' => NULL, 'tertiary_button_label' => NULL, 'tertiary_button_class' => NULL, 'close_button_enabled' => NULL, 'method' => 'default', ), 'path' => $path, Loading images/close.png 0 → 100644 +3.69 KiB Loading image diff... Loading
css/eu_cookie_compliance.css +17 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ display: inline-block; text-align: left; width: 100%; position: relative; } #sliding-popup .popup-content #popup-buttons { Loading Loading @@ -196,6 +197,22 @@ display: none; } .eu-cookie-compliance-close-button { background: url('../images/close.png'); width: 24px; height: 24px; border-width: 0; font-size: 0px; position: absolute; right: 2px; top: -12px; cursor: pointer; } body:not(.eu-cookie-compliance-popup-open) .eu-cookie-compliance-close-button { display: none; } @media screen and (max-width: 600px) { #sliding-popup .popup-content { max-width: 95%; Loading
eu_cookie_compliance.admin.inc +69 −0 Original line number Diff line number Diff line Loading @@ -488,6 +488,62 @@ function eu_cookie_compliance_admin_form(array $form, array $form_state) { '#description' => t('This button will withdraw consent when clicked.'), ); $form['reject_button'] = array( '#type' => 'fieldset', '#collapsible' => TRUE, '#collapsed' => FALSE, '#title' => t('Reject button and close box'), '#states' => array( 'visible' => array('input[name="eu_cookie_compliance[method]"]' => array('value' => 'categories')), ), ); $form['reject_button']['eu_cookie_compliance'] = array( '#type' => 'item', '#tree' => TRUE, ); $form['reject_button']['eu_cookie_compliance']['reject_button_enabled'] = array( '#type' => 'checkbox', '#title' => t('Enable "Reject/deny all" button'), '#default_value' => $popup_settings['reject_button_enabled'], ); $form['reject_button']['eu_cookie_compliance']['reject_button_label'] = array( '#type' => 'textfield', '#title' => t('Reject button label'), '#default_value' => $popup_settings['reject_button_label'], '#states' => array( 'visible' => array( "input[name='eu_cookie_compliance[reject_button_enabled]']" => array('checked' => TRUE), ), ), ); $form['reject_button']['eu_cookie_compliance']['close_button_enabled'] = array( '#type' => 'checkbox', '#title' => t('Close button/box enabled'), '#default_value' => $popup_settings['close_button_enabled'], ); $form['reject_button']['eu_cookie_compliance']['close_button_action'] = array( '#type' => 'select', '#title' => t('Close button action'), '#options' => array( 'close_banner' => t('Close banner'), 'accept_all_cookies' => t('Accept all cookies'), 'reject_all_cookies' => t('Reject all cookies'), 'save_preferences' => t('Trigger Save preferences (for banner with categories)'), ), '#default_value' => $popup_settings['close_button_action'], '#states' => array( 'visible' => array( "input[name='eu_cookie_compliance[close_button_enabled]']" => array('checked' => TRUE), ), ), '#description' => t('The default position of the close button is in the top right corner of the banner.'), ); $form['thank_you'] = array( '#type' => 'fieldset', '#collapsible' => TRUE, Loading Loading @@ -1042,6 +1098,19 @@ function eu_cookie_compliance_admin_form_validate(array $form, array &$form_stat $form_state['values']['eu_cookie_compliance']['withdraw_enabled'] = FALSE; } if ($form_state['values']['eu_cookie_compliance']['method'] !== 'categories') { $form_state['values']['eu_cookie_compliance']['close_button_enabled'] = 0; $form_state['values']['eu_cookie_compliance']['reject_button_enabled'] = 0; } if (!$form_state['values']['eu_cookie_compliance']['close_button_enabled']) { $form_state['values']['eu_cookie_compliance']['close_button_action'] = 'close_banner'; } if (!$form_state['values']['eu_cookie_compliance']['reject_button_enabled']) { $form_state['values']['eu_cookie_compliance']['reject_button_label'] = ''; } // Validate cookie name against valid characters. if (preg_match('/[&\'\x00-\x20\x22\x28-\x29\x2c\x2f\x3a-\x40\x5b-\x5d\x7b\x7d\x7f]/', $form_state['values']['eu_cookie_compliance']['cookie_name'])) { form_set_error('eu_cookie_compliance][cookie_name', t('Invalid cookie name, please remove any special characters and try again.')); Loading
eu_cookie_compliance.install +40 −0 Original line number Diff line number Diff line Loading @@ -240,6 +240,10 @@ function _eu_cookie_compliance_get_popup_default_setting() { 'allowed_cookies' => '', 'withdraw_button_on_info_popup' => 0, 'containing_element' => 'body', 'close_button_enabled' => 0, 'close_button_action' => 'close_banner', 'reject_button_enabled' => 0, 'reject_button_label' => '', ); } Loading Loading @@ -824,3 +828,39 @@ function _migrate_cookie_categories_to_separate_structure(array $categories, arr } return $categories; } /** * Add defaults for reject button. */ function eu_cookie_compliance_update_7020() { $eu_cookie_settings = variable_get('eu_cookie_compliance', array()); $new_settings = array( 'close_button_enabled' => FALSE, 'close_button_action' => 'close_banner', 'reject_button_enabled' => FALSE, 'reject_button_label' => '', ); variable_set('eu_cookie_compliance', $eu_cookie_settings + $new_settings); if (module_exists('i18n_variable')) { $languages = language_list(); foreach (array_keys($languages) as $langcode) { $settings = i18n_variable_get('eu_cookie_compliance', $langcode); if (!empty($settings)) { $updated_setting = $settings + $new_settings; variable_realm_set('language', $langcode, 'eu_cookie_compliance', $updated_setting, FALSE); } } } // Set configuration variables for all domains. if (module_exists('domain_settings') && module_exists('domain_conf')) { $domains = domain_domains(); foreach ($domains as $domain_data) { $domain_id = $domain_data['domain_id']; $settings = domain_conf_variable_get($domain_id, 'eu_cookie_compliance'); $updated_settings = $settings + $new_settings; domain_conf_variable_save($domain_id, 'eu_cookie_compliance', $updated_settings); } } }
eu_cookie_compliance.module +17 −1 Original line number Diff line number Diff line Loading @@ -275,6 +275,10 @@ function eu_cookie_compliance_page_build(&$page) { 'new' => 'eu_cookie_compliance_popup_info', ); $tertiary_button_label = ''; $tertiary_button_class = ''; $close_button_enabled = FALSE; switch ($method) { case 'default': $click_confirmation = isset($popup_settings['popup_clicking_confirmation']) ? $popup_settings['popup_clicking_confirmation'] : TRUE; Loading Loading @@ -313,6 +317,9 @@ function eu_cookie_compliance_page_build(&$page) { $primary_button_class = 'agree-button eu-cookie-compliance-default-button'; $secondary_button_label = $popup_settings['withdraw_action_button_label']; $secondary_button_class = 'eu-cookie-withdraw-button eu-cookie-compliance-hidden'; $tertiary_button_label = $popup_settings['reject_button_label']; $tertiary_button_class = 'decline-button eu-cookie-compliance-default-button eu-cookie-compliance-reject-button'; $close_button_enabled = !empty($popup_settings['close_button_enabled']) ? filter_xss($popup_settings['close_button_enabled']) : FALSE; $privacy_settings_tab_label = $withdraw_button_on_info_popup ? $popup_settings['withdraw_tab_button_label'] : FALSE; $popup_info_template = $info_templates[$popup_settings['info_template']]; break; Loading Loading @@ -356,6 +363,9 @@ function eu_cookie_compliance_page_build(&$page) { 'secondary_button_label' => $secondary_button_label, 'primary_button_class' => $primary_button_class, 'secondary_button_class' => $secondary_button_class, 'tertiary_button_label' => $tertiary_button_label, 'tertiary_button_class' => $tertiary_button_class, 'close_button_enabled' => $close_button_enabled, 'cookie_categories' => $cookie_categories, 'save_preferences_button_label' => $save_preferences_button_label, 'privacy_settings_tab_label' => $privacy_settings_tab_label, Loading @@ -369,6 +379,9 @@ function eu_cookie_compliance_page_build(&$page) { 'secondary_button_label' => $secondary_button_label, 'primary_button_class' => $primary_button_class, 'secondary_button_class' => $secondary_button_class, 'tertiary_button_label' => $tertiary_button_label, 'tertiary_button_class' => $tertiary_button_class, 'close_button_enabled' => $close_button_enabled, 'cookie_categories' => $cookie_categories, 'save_preferences_button_label' => $save_preferences_button_label, 'privacy_settings_tab_label' => $privacy_settings_tab_label, Loading Loading @@ -439,6 +452,7 @@ function eu_cookie_compliance_page_build(&$page) { 'cookie_value_agreed' => !empty($popup_settings['cookie_value_agreed']) ? $popup_settings['cookie_value_agreed'] : '2', 'containing_element' => !empty($popup_settings['containing_element']) ? $popup_settings['containing_element'] : 'body', 'automatic_cookies_removal' => !empty($popup_settings['automatic_cookies_removal']) ? $popup_settings['automatic_cookies_removal'] : '', 'close_button_action' => !empty($popup_settings['close_button_action']) ? $popup_settings['close_button_action'] : '', ); // For some reason, we're getting the wrong language when editing the // localized form, so we shouldn't cache. Loading Loading @@ -591,7 +605,9 @@ function eu_cookie_compliance_theme() { 'primary_button_class' => NULL, 'secondary_button_class' => NULL, 'privacy_settings_tab_label' => NULL, 'cookie_categories' => NULL, 'tertiary_button_label' => NULL, 'tertiary_button_class' => NULL, 'close_button_enabled' => NULL, 'method' => 'default', ), 'path' => $path, Loading