Révision 136a805a
Ajouté par Assos Assos il y a plus de 7 ans
drupal7/sites/all/modules/panels/panels_mini/panels_mini.module | ||
---|---|---|
116 | 116 |
|
117 | 117 |
$panel_mini->context = $panel_mini->display->context = ctools_context_load_contexts($panel_mini, FALSE, $contexts); |
118 | 118 |
$panel_mini->display->css_id = panels_mini_get_id($panel_mini->name); |
119 |
$panel_mini->display->owner = $panel_mini; |
|
119 | 120 |
|
120 | 121 |
$block = array(); |
121 | 122 |
|
... | ... | |
146 | 147 |
if (module_exists('page_manager')) { |
147 | 148 |
$current_page = page_manager_get_current_page(); |
148 | 149 |
} |
150 |
|
|
151 |
// Load add at once to save time. |
|
152 |
panels_mini_load_all(); |
|
153 |
|
|
149 | 154 |
foreach ($blocks as $key => $block) { |
150 | 155 |
if ($block->module != 'panels_mini') { |
151 | 156 |
// This block was added by a contrib module, leave it in the list. |
... | ... | |
254 | 259 |
// We use array_key_exists because failed loads will be NULL and |
255 | 260 |
// isset() will try to load it again. |
256 | 261 |
if (!array_key_exists($name, $cache)) { |
257 |
ctools_include('export'); |
|
258 |
$result = ctools_export_load_object('panels_mini', 'names', array($name)); |
|
259 |
if (isset($result[$name])) { |
|
260 |
if (empty($result[$name]->display)) { |
|
261 |
$result[$name]->display = panels_load_display($result[$name]->did); |
|
262 |
if (!empty($result[$name]->title) && empty($result[$name]->display->title)) { |
|
263 |
$result[$name]->display->title = $result[$name]->title; |
|
262 |
$cid = 'panels_mini_load:' . $name; |
|
263 |
$result = cache_get($cid, 'cache_panels'); |
|
264 |
if (!empty($result->data)) { |
|
265 |
$cache[$name] = $result->data; |
|
266 |
} |
|
267 |
else { |
|
268 |
ctools_include('export'); |
|
269 |
$result = ctools_export_load_object('panels_mini', 'names', array($name)); |
|
270 |
if (isset($result[$name])) { |
|
271 |
if (empty($result[$name]->display)) { |
|
272 |
$result[$name]->display = panels_load_display($result[$name]->did); |
|
273 |
if (!empty($result[$name]->title) && empty($result[$name]->display->title)) { |
|
274 |
$result[$name]->display->title = $result[$name]->title; |
|
275 |
} |
|
264 | 276 |
} |
277 |
$cache[$name] = $result[$name]; |
|
278 |
if (!empty($result[$name]->title) && empty($result[$name]->admin_title)) { |
|
279 |
$cache[$name]->admin_title = $result[$name]->title; |
|
280 |
} |
|
281 |
cache_set($cid, $cache[$name], 'cache_panels', CACHE_TEMPORARY); |
|
265 | 282 |
} |
266 |
$cache[$name] = $result[$name]; |
|
267 |
if (!empty($result[$name]->title) && empty($result[$name]->admin_title)) { |
|
268 |
$cache[$name]->admin_title = $result[$name]->title; |
|
283 |
else { |
|
284 |
$cache[$name] = NULL; |
|
269 | 285 |
} |
270 | 286 |
} |
271 |
else { |
|
272 |
$cache[$name] = NULL; |
|
273 |
} |
|
274 | 287 |
} |
275 | 288 |
|
276 | 289 |
if (isset($cache[$name])) { |
... | ... | |
292 | 305 |
if ($reset) { |
293 | 306 |
$cache = array(); |
294 | 307 |
} |
308 |
else { |
|
309 |
$panel_names = db_select('panels_mini', 'pm') |
|
310 |
->fields('pm', array('name')) |
|
311 |
->execute(); |
|
312 |
$cids = array(); |
|
313 |
foreach ($panel_names as $name) { |
|
314 |
$cids[] = 'panels_mini_load:' . $name->name; |
|
315 |
} |
|
316 |
if (empty($cids)) { |
|
317 |
return array_filter($cache); |
|
318 |
} |
|
319 |
$output = cache_get_multiple($cids, 'cache_panels'); |
|
320 |
foreach ($output as $mini) { |
|
321 |
if (!empty($mini->data)) { |
|
322 |
$mini = $mini->data; |
|
323 |
$cache[$mini->name] = $mini; |
|
324 |
} |
|
325 |
} |
|
326 |
} |
|
295 | 327 |
|
296 | 328 |
ctools_include('export'); |
297 | 329 |
$minis = ctools_export_load_object('panels_mini'); |
... | ... | |
333 | 365 |
*/ |
334 | 366 |
function panels_mini_save(&$mini) { |
335 | 367 |
if (!empty($mini->display)) { |
368 |
$mini->display->storage_id = $mini->name; |
|
336 | 369 |
$display = panels_save_display($mini->display); |
337 | 370 |
$mini->did = $display->did; |
338 | 371 |
} |
339 | 372 |
|
373 |
// Clear the panels_mini_load cache. |
|
374 |
cache_clear_all('panels_mini_load:', 'cache_panels', TRUE); |
|
375 |
|
|
340 | 376 |
$update = (isset($mini->pid) && $mini->pid != 'new') ? array('pid') : array(); |
341 | 377 |
drupal_write_record('panels_mini', $mini, $update); |
342 | 378 |
|
... | ... | |
389 | 425 |
if ($module == 'ctools' && ($plugin == 'content_types' || $plugin == 'export_ui')) { |
390 | 426 |
return 'plugins/' . $plugin; |
391 | 427 |
} |
428 |
if ($module == 'panels' && $plugin == 'panels_storage') { |
|
429 |
return 'plugins/' . $plugin; |
|
430 |
} |
|
392 | 431 |
} |
393 | 432 |
|
394 | 433 |
/** |
... | ... | |
427 | 466 |
$cache->display = $item->display; |
428 | 467 |
$cache->display->context = ctools_context_load_contexts($item); |
429 | 468 |
$cache->display->cache_key = 'panels_mini:' . $key; |
469 |
$cache->display->storage_type = 'panels_mini'; |
|
470 |
// Temporary storage id that's replaced in panels_mini_save(). |
|
471 |
$cache->display->storage_id = 'panels_mini'; |
|
430 | 472 |
$cache->content_types = panels_common_get_allowed_types('panels_mini', $cache->display->context); |
431 | 473 |
$cache->display_title = TRUE; |
432 | 474 |
|
... | ... | |
470 | 512 |
function panels_mini_panels_cache_break_lock($key, $cache) { |
471 | 513 |
} |
472 | 514 |
|
515 |
/** |
|
516 |
* Implements hook_panels_pre_render(). |
|
517 |
*/ |
|
518 |
function panels_mini_panels_pre_render($display, $renderer) { |
|
519 |
if (isset($display->owner->table) && $display->owner->table == 'panels_mini' && $renderer instanceof panels_renderer_standard) { |
|
520 |
$renderer->show_empty_layout = FALSE; |
|
521 |
} |
|
522 |
} |
|
523 |
|
|
473 | 524 |
/** |
474 | 525 |
* Implementation of hook_panels_dashboard_blocks(). |
475 | 526 |
* |
Formats disponibles : Unified diff
Weekly update of contrib modules