1 |
85ad3d82
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
/**
|
4 |
|
|
* @file
|
5 |
|
|
* Generate settings for the CSS exclude form.
|
6 |
|
|
*/
|
7 |
74f6bef0
|
Assos Assos
|
function at_core_css_exclude_form(&$form, $theme_name) {
|
8 |
|
|
// We need some getters.
|
9 |
|
|
include_once(drupal_get_path('theme', 'adaptivetheme') . '/inc/get.inc');
|
10 |
85ad3d82
|
Assos Assos
|
|
11 |
74f6bef0
|
Assos Assos
|
// Get the relevent CSS file data for building the form.
|
12 |
|
|
$css_data = at_get_css_files($theme_name);
|
13 |
85ad3d82
|
Assos Assos
|
|
14 |
74f6bef0
|
Assos Assos
|
// regex pattern
|
15 |
|
|
$pattern = '/[^a-zA-Z0-9-]+/';
|
16 |
85ad3d82
|
Assos Assos
|
|
17 |
74f6bef0
|
Assos Assos
|
// -- DIE CSS DIE -- //
|
18 |
|
|
$form['at']['cssexcludes'] = array(
|
19 |
|
|
'#type' => 'fieldset',
|
20 |
|
|
'#title' => t('Unset CSS'),
|
21 |
|
|
'#weight' => 20,
|
22 |
|
|
);
|
23 |
|
|
$form['at']['cssexcludes']['die-css-die'] = array(
|
24 |
|
|
'#type' => 'fieldset',
|
25 |
|
|
'#title' => t('Unset CSS'),
|
26 |
|
|
'#description' => t('<h2>Unset CSS</h2><p>Stylesheet names are cached, if some are not showing in this list you may need to clear the cache.</p><p>In for some reason (it happens) the CSS files you want to unset never show here you can explicitly declare them in your info file as "unset_css", see your sub-themes info file under "Stylesheets" for instructions.</p>'),
|
27 |
|
|
'#attached' => array(
|
28 |
|
|
'js' => array(drupal_get_path('theme', 'adaptivetheme') . '/scripts/check-all.js'),
|
29 |
|
|
),
|
30 |
|
|
);
|
31 |
85ad3d82
|
Assos Assos
|
|
32 |
74f6bef0
|
Assos Assos
|
// Core
|
33 |
|
|
$core_defined = FALSE;
|
34 |
|
|
$form['at']['cssexcludes']['die-css-die']['core-excludes'] = array(
|
35 |
|
|
'#type' => 'fieldset',
|
36 |
|
|
'#title' => t('Unset Core CSS'),
|
37 |
|
|
'#description' => t('<h3>Unset Core Module CSS</h3>'),
|
38 |
|
|
);
|
39 |
|
|
foreach ($css_data as $key => $value) {
|
40 |
|
|
if ($value['type'] == 'unset_core') {
|
41 |
|
|
$core_defined = TRUE;
|
42 |
|
|
$setting = 'unset_css_' . preg_replace($pattern, '_', $key);
|
43 |
|
|
$title_parts = explode('/', $key);
|
44 |
|
|
$title = array_pop($title_parts);
|
45 |
|
|
$form['at']['cssexcludes']['die-css-die']['core-excludes'][$setting] = array(
|
46 |
|
|
'#type' => 'checkbox',
|
47 |
|
|
'#title' => t('<b>@title</b> <small>(@key)</small>', array('@title' => $title, '@key' => $key)),
|
48 |
|
|
'#default_value' => at_get_setting($setting) ? at_get_setting($setting) : 0,
|
49 |
|
|
'#attributes' => array('class' => array('drupal-core-css-file')),
|
50 |
|
|
'#weight' => 0,
|
51 |
|
|
);
|
52 |
|
|
}
|
53 |
|
|
}
|
54 |
|
|
if ($core_defined === TRUE) {
|
55 |
|
|
$form['at']['cssexcludes']['die-css-die']['core-excludes']['core_check_all'] = array(
|
56 |
85ad3d82
|
Assos Assos
|
'#type' => 'checkbox',
|
57 |
74f6bef0
|
Assos Assos
|
'#title' => t('<strong>Unset All</strong>'),
|
58 |
|
|
'#default_value' => at_get_setting('core_check_all') ? at_get_setting('core_check_all') : 0,
|
59 |
|
|
'#weight' => -1,
|
60 |
|
|
);
|
61 |
|
|
}
|
62 |
|
|
if ($core_defined === FALSE) {
|
63 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes']['nothing_core_defined'] = array(
|
64 |
|
|
'#markup' => t('No core stylesheets to unset? Hmmm, something is not right here, try clearning the sites cache, otherwise you might need to <a href="!link" target="_blank">post an issue</a>.', array('!link' => 'http://drupal.org/project/issues/adaptivetheme')),
|
65 |
85ad3d82
|
Assos Assos
|
);
|
66 |
|
|
}
|
67 |
|
|
|
68 |
74f6bef0
|
Assos Assos
|
// Contrib
|
69 |
|
|
$contrib_defined = FALSE;
|
70 |
|
|
$form['at']['cssexcludes']['die-css-die']['contrib-excludes'] = array(
|
71 |
|
|
'#type' => 'fieldset',
|
72 |
|
|
'#title' => t('Unset Contrib Module CSS'),
|
73 |
|
|
'#description' => t('<h3>Unset Contrib Module CSS</h3>'),
|
74 |
|
|
);
|
75 |
|
|
foreach ($css_data as $key => $value) {
|
76 |
|
|
if ($value['type'] == 'contrib') {
|
77 |
|
|
$contrib_defined = TRUE;
|
78 |
|
|
$setting = 'unset_css_' . preg_replace($pattern, '_', $key);
|
79 |
|
|
$title_parts = explode('/', $key);
|
80 |
|
|
$title = array_pop($title_parts);
|
81 |
|
|
$form['at']['cssexcludes']['die-css-die']['contrib-excludes'][$setting] = array(
|
82 |
|
|
'#type' => 'checkbox',
|
83 |
|
|
'#title' => t('<b>@title</b> <small>(@key)</small>', array('@title' => $title, '@key' => $key)),
|
84 |
|
|
'#default_value' => at_get_setting($setting) ? at_get_setting($setting) : 0,
|
85 |
|
|
'#attributes' => array('class' => array('contrib-module-css-file')),
|
86 |
|
|
'#weight' => 0,
|
87 |
|
|
);
|
88 |
|
|
}
|
89 |
|
|
}
|
90 |
|
|
if ($contrib_defined === TRUE) {
|
91 |
|
|
$form['at']['cssexcludes']['die-css-die']['contrib-excludes']['contrib_check_all'] = array(
|
92 |
85ad3d82
|
Assos Assos
|
'#type' => 'checkbox',
|
93 |
74f6bef0
|
Assos Assos
|
'#title' => t('<strong>Unset All</strong>'),
|
94 |
|
|
'#default_value' => at_get_setting('contrib_check_all') ? at_get_setting('contrib_check_all') : 0,
|
95 |
|
|
'#weight' => -1,
|
96 |
|
|
);
|
97 |
|
|
}
|
98 |
|
|
if ($contrib_defined === FALSE) {
|
99 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes']['nothing_contrib_defined'] = array(
|
100 |
|
|
'#markup' => t('No contrib module stylesheets to unset. If you think there should be, try clearing the sites cache. If they still do not show you may need to explicitly declare them in your sub-theme info file.'),
|
101 |
85ad3d82
|
Assos Assos
|
);
|
102 |
|
|
}
|
103 |
|
|
|
104 |
74f6bef0
|
Assos Assos
|
// Libs
|
105 |
|
|
$libraries_defined = FALSE;
|
106 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes'] = array(
|
107 |
|
|
'#type' => 'fieldset',
|
108 |
|
|
'#title' => t('Unset Libraries CSS'),
|
109 |
|
|
'#description' => t('<h3>Unset Libraries CSS</h3>'),
|
110 |
|
|
);
|
111 |
|
|
foreach ($css_data as $key => $value) {
|
112 |
|
|
if ($value['type'] == 'library') {
|
113 |
|
|
$libraries_defined = TRUE;
|
114 |
|
|
$setting = 'unset_css_' . preg_replace($pattern, '_', $key);
|
115 |
|
|
$title_parts = explode('/', $key);
|
116 |
|
|
$title = array_pop($title_parts);
|
117 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes'][$setting] = array(
|
118 |
|
|
'#type' => 'checkbox',
|
119 |
|
|
'#title' => t('<b>@title</b> <small>(@key)</small>', array('@title' => $title, '@key' => $key)),
|
120 |
|
|
'#default_value' => at_get_setting($setting) ? at_get_setting($setting) : 0,
|
121 |
|
|
'#attributes' => array('class' => array('library-css-file')),
|
122 |
|
|
'#weight' => 0,
|
123 |
|
|
);
|
124 |
|
|
}
|
125 |
|
|
}
|
126 |
|
|
if ($libraries_defined === TRUE) {
|
127 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes']['libraries_check_all'] = array(
|
128 |
85ad3d82
|
Assos Assos
|
'#type' => 'checkbox',
|
129 |
74f6bef0
|
Assos Assos
|
'#title' => t('<strong>Unset All</strong>'),
|
130 |
|
|
'#default_value' => at_get_setting('libraries_check_all') ? at_get_setting('libraries_check_all') : 0,
|
131 |
|
|
'#weight' => -1,
|
132 |
|
|
);
|
133 |
|
|
}
|
134 |
|
|
if ($libraries_defined === FALSE) {
|
135 |
|
|
$form['at']['cssexcludes']['die-css-die']['libraries-excludes']['nothing_libraries_defined'] = array(
|
136 |
|
|
'#markup' => t('No libraries stylesheets to unset. If you think there should be, try clearing the sites cache. If they still do not show you may need to explicitly declare them in your sub-theme info file.'),
|
137 |
85ad3d82
|
Assos Assos
|
);
|
138 |
|
|
}
|
139 |
|
|
|
140 |
74f6bef0
|
Assos Assos
|
// Explicit (user defined in their sub-themes info file)
|
141 |
|
|
$user_defined = FALSE;
|
142 |
|
|
$form['at']['cssexcludes']['die-css-die']['explicit-excludes'] = array(
|
143 |
|
|
'#type' => 'fieldset',
|
144 |
|
|
'#title' => t('My Unset CSS Files'),
|
145 |
|
|
'#description' => t('<h3>My Unset CSS Files</h3>'),
|
146 |
|
|
);
|
147 |
|
|
foreach ($css_data as $key => $value) {
|
148 |
|
|
if ($value['type'] == 'user_defined') {
|
149 |
|
|
$user_defined = TRUE;
|
150 |
|
|
$setting = 'unset_css_' . preg_replace($pattern, '_', $key);
|
151 |
|
|
$title_parts = explode('/', $key);
|
152 |
|
|
$title = array_pop($title_parts);
|
153 |
|
|
$form['at']['cssexcludes']['die-css-die']['explicit-excludes'][$setting] = array(
|
154 |
|
|
'#type' => 'checkbox',
|
155 |
|
|
'#title' => t('<b>@title</b> <small>(@key)</small>', array('@title' => $title, '@key' => $key)),
|
156 |
|
|
'#default_value' => at_get_setting($setting) ? at_get_setting($setting) : 0,
|
157 |
|
|
'#attributes' => array('class' => array('user-defined-css-file')),
|
158 |
|
|
'#weight' => 0,
|
159 |
|
|
);
|
160 |
|
|
}
|
161 |
|
|
}
|
162 |
|
|
if ($user_defined === TRUE) {
|
163 |
|
|
$form['at']['cssexcludes']['die-css-die']['explicit-excludes']['explicit_check_all'] = array(
|
164 |
85ad3d82
|
Assos Assos
|
'#type' => 'checkbox',
|
165 |
74f6bef0
|
Assos Assos
|
'#title' => t('<strong>Unset All</strong>'),
|
166 |
|
|
'#default_value' => at_get_setting('explicit_check_all') ? at_get_setting('explicit_check_all') : 0,
|
167 |
|
|
'#weight' => -1,
|
168 |
|
|
);
|
169 |
|
|
}
|
170 |
|
|
if ($user_defined === FALSE) {
|
171 |
|
|
$form['at']['cssexcludes']['die-css-die']['explicit-excludes']['nothing_user_defined'] = array(
|
172 |
|
|
'#markup' => t('No user defined stylesheets to unset. If you wish to define your own, see your sub-theme info file for details under the "Stylesheets" section.'),
|
173 |
85ad3d82
|
Assos Assos
|
);
|
174 |
|
|
}
|
175 |
|
|
} |