contrib modules security updates
This commit is contained in:
264
sites/all/modules/panels/panels.api.php
Normal file
264
sites/all/modules/panels/panels.api.php
Normal file
@@ -0,0 +1,264 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Hooks provided by Panels.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Allow modules to provide their own caching mechanism for the display editor.
|
||||
*
|
||||
* @param string $argument
|
||||
* The second half of the cache key. Full key module:TASK_NAME:HANDLER_NAME
|
||||
* passed part: TASK_NAME:HANDLER_NAME
|
||||
* @param stdClass $cache
|
||||
* The display to cache.
|
||||
*/
|
||||
function hook_panels_cache_set($argument, $cache) {
|
||||
list($handler, $item) = _panels_mini_panels_cache_get($argument);
|
||||
$item->mini_panels_display_cache = $cache;
|
||||
$handler->edit_cache_set_key($item, $argument);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow modules to provide their own caching mechanism for the display editor.
|
||||
*
|
||||
* @param string $argument
|
||||
* The second half of the cache key. Full key module:TASK_NAME:HANDLER_NAME
|
||||
* passed part: TASK_NAME:HANDLER_NAME
|
||||
*
|
||||
* @return stdClass|NULL
|
||||
* The cached display or NULL if the cache wasn't hit.
|
||||
*/
|
||||
function hook_panels_cache_get($argument) {
|
||||
ctools_include('common', 'panels');
|
||||
list($handler, $item) = _panels_mini_panels_cache_get($argument);
|
||||
if (isset($item->mini_panels_display_cache)) {
|
||||
return $item->mini_panels_display_cache;
|
||||
}
|
||||
|
||||
$cache = new stdClass();
|
||||
$cache->display = $item->display;
|
||||
$cache->display->context = ctools_context_load_contexts($item);
|
||||
$cache->display->cache_key = 'panels_mini:' . $argument;
|
||||
$cache->content_types = panels_common_get_allowed_types('panels_mini', $cache->display->context);
|
||||
$cache->display_title = TRUE;
|
||||
|
||||
// @TODO support locking.
|
||||
$cache->locked = FALSE;
|
||||
|
||||
return $cache;
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow modules to provide their own caching mechanism for the display editor.
|
||||
*
|
||||
* @param string $argument
|
||||
* The second half of the cache key. Full key module:TASK_NAME:HANDLER_NAME
|
||||
* passed part: TASK_NAME:HANDLER_NAME
|
||||
* @param stdClass $cache
|
||||
* The display to cache.
|
||||
*
|
||||
* @return stdClass
|
||||
* The cached display.
|
||||
*/
|
||||
function hook_panels_cache_save($argument, $cache) {
|
||||
list($handler, $item) = _panels_mini_panels_cache_get($argument);
|
||||
$item->display = $cache->display;
|
||||
panels_mini_save($item);
|
||||
|
||||
$handler->edit_cache_clear($item);
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow modules to provide their own caching mechanism for the display editor.
|
||||
*
|
||||
* @param string $argument
|
||||
* The second half of the cache key. Full key module:TASK_NAME:HANDLER_NAME
|
||||
* passed part: TASK_NAME:HANDLER_NAME
|
||||
* @param stdClass $cache
|
||||
* The cached display.
|
||||
*/
|
||||
function hook_panels_cache_clear($argument, $cache) {
|
||||
list($handler, $item) = _panels_mini_panels_cache_get($argument);
|
||||
$handler->edit_cache_clear($item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow modules to adjust the rendering array of the panels dashboard.
|
||||
*
|
||||
* @param array $vars
|
||||
* The output variables.
|
||||
*/
|
||||
function hook_panels_dashboard_blocks(&$vars) {
|
||||
$vars['links']['panels_node'] = array(
|
||||
'title' => l(t('Panel node'), 'node/add/panel'),
|
||||
'description' => t('Panel nodes are node content and appear in your searches, but are more limited than panel pages.'),
|
||||
'weight' => -1,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow to alter the pane content to render.
|
||||
*
|
||||
* This happens after the keyword substitution.
|
||||
*
|
||||
* @param stdClass $content
|
||||
* The content block to render.
|
||||
* @param stdClass $pane
|
||||
* The pane object.
|
||||
* @param array $args
|
||||
* The display arguments.
|
||||
* @param array $contexts
|
||||
* Array with the used contexts.
|
||||
*/
|
||||
function hook_panels_pane_content_alter($content, $pane, $args, $contexts) {
|
||||
// Don't display titles.
|
||||
unset($content->title);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow modules to provide a mechanism to break locks.
|
||||
*
|
||||
* @param string $argument
|
||||
* The second half of the cache key. Full key module:TASK_NAME:HANDLER_NAME
|
||||
* passed part: TASK_NAME:HANDLER_NAME
|
||||
* @param stdClass $cache
|
||||
* The cached display.
|
||||
*/
|
||||
function hook_panels_edit_cache_break_lock($argument, $cache) {
|
||||
$cache->locked = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before a panels display is rendered.
|
||||
*
|
||||
* Last chance to modify the panels display or add output before the keyword
|
||||
* substitution runs and the panels display is rendered.
|
||||
*
|
||||
* @param panels_display $panels_display
|
||||
* The panels display that will be rendered.
|
||||
* @param stdClass $renderer
|
||||
* The renderer object that will be used to render.
|
||||
*
|
||||
* @return string
|
||||
* Additional output to add before the panels display.
|
||||
*/
|
||||
function hook_panels_pre_render($panels_display, $renderer) {
|
||||
$translation = i18n_string_object_translate('panels_display_configuration', $panels_display);
|
||||
$panels_display->title = $translation->title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after a panels display is rendered.
|
||||
*
|
||||
* Allow to add additional output after the output of the panels display.
|
||||
*
|
||||
* @param panels_display $panels_display
|
||||
* The rendered panels display.
|
||||
* @param stdClass $renderer
|
||||
* The used renderer object.
|
||||
*
|
||||
* @return string
|
||||
* Additional output to add after the panels display.
|
||||
*/
|
||||
function hook_panels_post_render($panels_display, $renderer) {
|
||||
return t('Output proudly sponsored by panels.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before a new pane is inserted in the storage.
|
||||
*
|
||||
* @param stdClass $pane
|
||||
* Pane that will be rendered.
|
||||
*/
|
||||
function hook_panels_pane_insert($pane) {
|
||||
// Check if this pane has a custom title enabled.
|
||||
if (!empty($pane->configuration['override_title'])) {
|
||||
$translation_object = (object) array(
|
||||
'pid' => $pane->pid,
|
||||
'title' => $pane->configuration['override_title_text'],
|
||||
);
|
||||
$status = i18n_string_object_update('panels_pane_configuration', $translation_object);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before a changed pane is updated in the storage.
|
||||
*
|
||||
* @param stdClass $pane
|
||||
* Pane that will be rendered.
|
||||
*/
|
||||
function hook_panels_pane_update($pane) {
|
||||
// Check if this pane has a custom title enabled.
|
||||
if (!empty($pane->configuration['override_title'])) {
|
||||
$translation_object = (object) array(
|
||||
'pid' => $pane->pid,
|
||||
'title' => $pane->configuration['override_title_text'],
|
||||
);
|
||||
$status = i18n_string_object_update('panels_pane_configuration', $translation_object);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before a panel is rendered.
|
||||
*
|
||||
* Last chance to modify the pane before the keyword substitution runs and the
|
||||
* pane is rendered.
|
||||
*
|
||||
* @param stdClass $pane
|
||||
* Pane that will be rendered.
|
||||
*/
|
||||
function hook_panels_pane_prerender($pane) {
|
||||
// Check if this pane has a custom title enabled.
|
||||
if (!empty($pane->configuration['override_title'])) {
|
||||
$translation_object = (object) array(
|
||||
'pid' => $pane->pid,
|
||||
'title' => $pane->configuration['override_title_text'],
|
||||
);
|
||||
$translation_object = i18n_string_object_translate('panels_pane_configuration', $translation_object);
|
||||
$pane->configuration['override_title_text'] = $translation_object->title;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before panes are deleted.
|
||||
*
|
||||
* @param array $pids
|
||||
* Array with the panel id's to delete.
|
||||
*/
|
||||
function hook_panels_pane_delete($pids) {
|
||||
foreach ($pids as $pid) {
|
||||
// Create dummy pane with pid as property.
|
||||
$pane = (object) array('pid' => $pid);
|
||||
i18n_string_object_remove('panels_pane_configuration', $pane);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after a display is saved.
|
||||
*
|
||||
* @param panels_display $display
|
||||
* The display to save.
|
||||
*/
|
||||
function hook_panels_display_save($display) {
|
||||
i18n_string_object_update('display_configuration', $display);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired before a display is deleted.
|
||||
*
|
||||
* @param integer $did
|
||||
* Id of the display to delete.
|
||||
*/
|
||||
function hook_panels_delete_display($did) {
|
||||
$uuid = db_select('panels_display')
|
||||
->fields('panels_display', array('uuid'))
|
||||
->condition('did', $did)
|
||||
->execute()
|
||||
->fetchColumn();
|
||||
$display = (object) array('uuid' => $uuid);
|
||||
i18n_string_object_remove('display_configuration', $display);
|
||||
}
|
Reference in New Issue
Block a user