Mercurial > defr > drupal > popups
comparison popups.module @ 2:c076d54409cb
Popus: Version RF
author | Franck Deroche <franck@defr.org> |
---|---|
date | Fri, 31 Dec 2010 13:46:12 +0100 |
parents | 76f9b43738f2 |
children |
comparison
equal
deleted
inserted
replaced
0:76f9b43738f2 | 2:c076d54409cb |
---|---|
151 $js = array_merge_recursive(drupal_add_js(), drupal_add_js(NULL, NULL, 'footer')); | 151 $js = array_merge_recursive(drupal_add_js(), drupal_add_js(NULL, NULL, 'footer')); |
152 $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1); | 152 $query_string = '?'. substr(variable_get('css_js_query_string', '0'), 0, 1); |
153 | 153 |
154 $popup_js = array(); | 154 $popup_js = array(); |
155 | 155 |
156 // Allow modules to specifically alter the JS used in a popup. | |
157 drupal_alter('popups_js', $js); | |
158 if (module_exists('jquery_update')) { | |
159 $replacements = jquery_update_get_replacements(); | |
160 $path = drupal_get_path('module', 'jquery_update') .'/replace/'; | |
161 foreach($replacements as $type => $data) { | |
162 foreach($data as $src => $dst) { | |
163 $replacements[$type][$src] = $path . $dst; | |
164 } | |
165 } | |
166 // The behavior got called, so we're pretty sure that jQuery is already | |
167 // loaded. | |
168 unset($js['core']['misc/jquery.js']); | |
169 unset($js['core']['misc/drupal.js']); | |
170 } | |
171 else { | |
172 $replacements = array(); | |
173 } | |
174 | |
156 foreach ($js as $type => $data) { | 175 foreach ($js as $type => $data) { |
157 if (!$data) continue; | 176 if (!$data) continue; |
158 switch ($type) { | 177 switch ($type) { |
159 case 'setting': | 178 case 'setting': |
160 // Why not just array_merge_recursive($data); | 179 // Why not just array_merge_recursive($data); |
165 $popup_js['inline'][] = '<script type="text/javascript"' . ($info['defer'] ? ' defer="defer"' : '') . '>' . $info['code'] . "</script>\n"; | 184 $popup_js['inline'][] = '<script type="text/javascript"' . ($info['defer'] ? ' defer="defer"' : '') . '>' . $info['code'] . "</script>\n"; |
166 } | 185 } |
167 break; | 186 break; |
168 default: | 187 default: |
169 foreach ($data as $path => $info) { | 188 foreach ($data as $path => $info) { |
189 $path = isset($replacements[$type][$path]) ? $replacements[$type][$path] : $path; | |
170 $popup_js[$type][$path] = '<script type="text/javascript"'. ($info['defer'] ? ' defer="defer"' : '') .' src="'. base_path() . $path . $query_string ."\"></script>\n"; | 190 $popup_js[$type][$path] = '<script type="text/javascript"'. ($info['defer'] ? ' defer="defer"' : '') .' src="'. base_path() . $path . $query_string ."\"></script>\n"; |
171 } | 191 } |
172 break; | 192 break; |
173 } | 193 } |
174 } | 194 } |
271 * @param array $rules: Array of rules to apply to the page or form, keyed by jQuery link selector. | 291 * @param array $rules: Array of rules to apply to the page or form, keyed by jQuery link selector. |
272 * See README.txt for a listing of the options, and popups_admin.module for examples. | 292 * See README.txt for a listing of the options, and popups_admin.module for examples. |
273 */ | 293 */ |
274 function popups_add_popups($rules=NULL) { | 294 function popups_add_popups($rules=NULL) { |
275 static $added = FALSE; | 295 static $added = FALSE; |
296 static $shouldAdd = NULL; | |
297 if (is_null($shouldAdd)) { | |
298 $shouldAdd = !isset($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' || $_SESSION['page_override']; | |
299 } | |
276 $settings = array('popups' => array()); | 300 $settings = array('popups' => array()); |
277 | 301 |
278 if (is_array($rules)) { | 302 if (is_array($rules)) { |
279 $settings['popups']['links'] = array(); | 303 $settings['popups']['links'] = array(); |
280 foreach ($rules as $popup_selector => $options) { | 304 foreach ($rules as $popup_selector => $options) { |
287 } | 311 } |
288 if($added) { | 312 if($added) { |
289 drupal_add_js( $settings, 'setting' ); | 313 drupal_add_js( $settings, 'setting' ); |
290 } | 314 } |
291 } | 315 } |
292 if (!$added) { | 316 if (!$added && $shouldAdd) { |
293 // Determing if we are showing the default theme or a custom theme. | 317 // Determing if we are showing the default theme or a custom theme. |
294 global $custom_theme; | 318 global $custom_theme; |
295 $theme = $custom_theme; | 319 $theme = $custom_theme; |
296 if (!$theme) { | 320 if (!$theme) { |
297 $theme = variable_get('theme_default','none'); | 321 $theme = variable_get('theme_default','none'); |