function slick_build in Slick Carousel 7.2
Same name and namespace in other branches
- 7.3 slick.deprecated.inc \slick_build()
Returns a cacheable renderable array of a single slick instance.
Parameters
array $items: An array of slick contents: text, image or media.
array $options: An array of key:value pairs of custom JS options to override $optionset.
array $settings: An array of key:value pairs of HTML/layout related settings.
array $attach: An array of assets to load using slick_attach($attach), or regular array.
string $id: A deprecated optional ID. Use $settings['id'] instead to reduce params.
object $optionset: The cached optionset object to avoid possible multiple invocations.
Return value
array The cacheable renderable array of a slick instance, or empty array.
5 calls to slick_build()
- my_module_render_slick in ./
slick.api.php - Quick sample #1.
- my_module_render_slick_asnavfor in ./
slick.api.php - AsNavFor sample #3.
- my_module_render_slick_detail in ./
slick.api.php - Detailed sample #2.
- slick_fields_field_formatter_view in slick_fields/
slick_fields.module - Implements hook_field_formatter_view().
- _slick_build_fc_overlay in includes/
slick.field_collection.inc - Build the managed overlays: image, video, audio or nested slicks.
File
- ./
slick.module, line 390 - Slick carousel integration, the last carousel you'll ever need.
Code
function slick_build(array $items = array(), array $options = array(), array $settings = array(), array $attach = array(), $id = NULL, $optionset = NULL) {
if (empty($items)) {
return array();
}
$attachments = array();
$display = empty($settings['current_display']) ? 'main' : $settings['current_display'];
$settings['id'] = empty($settings['id']) ? slick_html_id('slick', $id) : $settings['id'];
$options['mousewheel'] = !empty($settings['mousewheel']);
if ($display != 'thumbnail') {
$loaded = isset($attach['css']) || isset($attach['js']) || isset($attach['library']);
$attachments = $loaded ? $attach : slick_attach($attach, $settings);
if ($display == 'main') {
if (!empty($settings['override'])) {
foreach ($settings['overridables'] as $key => $override) {
$options[$key] = empty($override) ? FALSE : TRUE;
}
unset($settings['overridables']);
}
// Build the Slick grid if provided.
if (!empty($settings['grid']) && !empty($settings['visible_slides'])) {
$items = slick_build_grids($items, $settings);
}
}
}
$slick = array(
'#theme' => 'slick',
'#items' => $items,
'#options' => $options,
'#optionset' => $optionset,
'#settings' => $settings,
'#attached' => $attachments,
);
// Cache the render array if so configured.
if (!empty($settings['cache'])) {
$cid = empty($settings['cid']) ? $settings['id'] . ':custom' : $settings['id'] . ':' . $settings['cid'];
if ($display == 'thumbnail') {
$cid .= ':thumbnail';
}
$cache = cache_get($cid);
$active = $settings['cache'] == 'persistent' ? TRUE : (!$cache ? TRUE : REQUEST_TIME < $cache->expire);
if (!$cache || $active) {
$slick['#cache'] = array(
'cid' => $cid,
'expire' => $settings['cache'] == 'persistent' ? CACHE_TEMPORARY : REQUEST_TIME + $settings['cache'],
);
}
}
return $slick;
}