function ddblock_content in Dynamic display block 7
Same name and namespace in other branches
- 6 ddblock.module \ddblock_content()
Get contents of dynamic display block block.
1 call to ddblock_content()
- ddblock_block_view in ./
ddblock.module - Implements hook_block_view().
File
- ./
ddblock.module, line 1716 - Enables your site to display dynamic content in a block.
Code
function ddblock_content($origin, $delta, $content = NULL, $teaser = NULL) {
// get configuration settings
foreach (ddblock_get_configuration_settings('ddblock', $delta)
->settings() as $key => $value) {
${$key} = $value;
}
// get configuration settings
foreach (ddblock_get_cycle_configuration_settings('ddblock_cycle', $delta)
->settings() as $key => $value) {
${$key} = $value;
}
if (!empty($overflow)) {
$overflow = 'hidden';
}
else {
$overflow = 'visible';
}
$container = $container_advanced;
if ($template == 'none') {
$container = $container_basic;
// set imagecontainer height and width with jQuery
$settings['ddblockImageContainer'][$delta] = array(
'block' => $delta,
'contentContainer' => $container,
'imageContainerHeight' => $height,
'imageContainerWidth' => $width,
'setDimensions' => $template,
);
// set image heigth and width with jQuery
$settings['ddblockImages'][$delta] = array(
'block' => $delta,
'contentContainer' => $container,
'imageHeight' => $image_height,
'imageWidth' => $image_width,
'setDimensions' => $template,
);
}
// get module path to dynamic display block module
$ddblock_path = drupal_get_path('module', 'ddblock');
// get original block settings.
$ddblock = ddblock_get_blocks($delta);
$delta_original = $ddblock->delta_original;
$module_original = $ddblock->module;
$ddblock_enabled = $ddblock->enabled;
$view_name = '';
$display_id = '';
if ($ddblock_enabled) {
// get content from other blocks.
$block = module_invoke($module_original, 'block_view', $delta_original);
if ($widget == 'default') {
return $block['content'];
}
else {
if ($module_original == 'views') {
if ($output == 'view_fields') {
foreach (ddblock_get_cycle_mapping_settings('ddblock_cycle', $delta)
->settings() as $key => $value) {
${$key} = $value;
$mappings[$key]['target'] = $value['target'];
$mappings[$key]['source'] = $value['source'];
}
$output_type = 'view_fields';
// block.module has a delta length limit of 32, but deltas in the views module can
// be longer because view names can be 32 and display IDs can also be 32.
// So for very long deltas, md5 hashes are used.
if (strlen($delta_original) == 32) {
$hashes = variable_get('views_block_hashes', array());
if (!empty($hashes[$delta_original])) {
$delta_original = $hashes[$delta_original];
}
}
list($view_name, $display_id) = explode('-', $delta_original);
// Load the view
if ($view = views_get_view($view_name)) {
if ($view
->access($display_id)) {
$view
->preview($display_id);
$content = $view->result;
// Remove empty mappings
foreach ($mappings as $key => $value) {
if (empty($value['target'])) {
unset($mappings[$key]);
}
}
// create result array
foreach ($content as $row_num => $result) {
foreach ($view->field as $id => $field) {
$field_output = $view->style_plugin
->get_field($row_num, $id);
foreach ($mappings as $mapping_key => $mapping_value) {
if ($mapping_value['source'] == $id) {
$mapping_target = $mapping_value['target'];
$result_rows[$row_num][$mapping_target] = $field_output;
}
}
}
}
$content = array();
if (!empty($result_rows)) {
$content = $result_rows;
switch ($order) {
case 'random':
shuffle($content);
break;
case 'asc':
asort($content);
break;
case 'desc':
rsort($content);
break;
case 'none':
break;
}
}
}
$view
->destroy();
}
}
else {
$output_type = 'view_content';
$content = $block['content'];
//return $block['content'];
}
}
else {
$output_type = 'view_content';
$content = $block['content'];
}
$nr_of_items = count($content);
}
}
else {
if ($input_type != 'images') {
$output_type = 'content_array';
$content = _ddblock_get_content_array($content_type, $nodes, $node_body_teaser);
$nr_of_items = 2;
}
else {
// get content from image folderimages.
$output_type = 'images';
$imagepath = check_plain(file_default_scheme() . ':/' . '/' . $folder, file_default_scheme() . ':/');
$content = _ddblock_get_image_array($imagepath, $order, $max_image, $ignore_files, $image_style_slide, $image_style_pager_item);
$nr_of_items = count($content);
}
}
// set jquery cycle settings
$settings['ddblockContent'][$delta] = array(
'block' => $delta,
'nrOfItems' => $nr_of_items,
'setDimensions' => $template,
'contentContainer' => $container,
'custom' => $custom_jquery,
'fx' => $fx,
'easeOut' => $easing_out,
'easeIn' => $easing_in,
'speed' => $speed,
'timeOut' => $timeout,
'pause' => $pause,
'next' => $next,
'overflow' => $overflow,
'pager' => $pager,
'pagerPosition' => $pager_position,
'pagerPrevNextLoop' => $pager_prev_next_loop,
'pagerScrollableLoop' => $pager_scrollable_loop,
'nrOfPagerItems' => $nr_of_pager_items,
'pagerContainer' => $pager_container,
'pagerEvent' => $pager_event,
'pagerDisableClick' => $pager_disable_click,
'pagerFast' => $pager_fast,
'pagerPause' => $pager_pause,
'pager2' => $pager2,
'pager2Event' => $pager2_event,
'pager2SlideHide' => $pager2_slide_hide,
'slideText' => $slide_text,
'slideTextjQuery' => $slide_text_jquery,
'slideTextPosition' => $slide_text_position,
'slideTextContainer' => $slide_text_container,
'slideTextEffectBefore' => $slide_text_before_effect,
'slideTextEffectBeforeSpeed' => $slide_text_before_speed,
'slideTextEffectBeforeEasing' => $slide_text_before_easing,
'slideTextEffectAfter' => $slide_text_after_effect,
'slideTextEffectAfterSpeed' => $slide_text_after_speed,
'slideTextEffectAfterEasing' => $slide_text_after_easing,
'height' => $height,
'width' => $width,
);
ddblock_init_js_css();
drupal_add_js($settings, array(
'type' => 'setting',
'scope' => JS_DEFAULT,
));
if (!empty($content)) {
//use a settings array for template arguments which is more flexible
$settings = array(
'delta' => $delta,
'image_style_pager_item' => $image_style_pager_item,
'image_style_toggle' => $image_style_toggle,
'image_style_slide' => $image_style_slide,
'nr_of_items' => $nr_of_items,
'nr_of_pager_items' => $nr_of_pager_items,
'output_type' => $output_type,
'pager_toggle' => $pager_toggle,
'pager' => $pager,
'pager_container' => $pager_container,
'pager_event' => $pager_event,
'pager_height' => $pager_height,
'pager_position' => $pager_position,
'pager_width' => $pager_width,
'pager_scrollable_loop' => $pager_scrollable_loop,
'pager2' => $pager2,
'pager2_event' => $pager2_event,
'pager2_slide_prev' => $pager2_slide_prev,
'pager2_slide_next' => $pager2_slide_next,
'pager2_slide_hide' => $pager2_slide_hide,
'slide_text' => $slide_text,
'slide_text_position' => $slide_text_position,
'template' => $template,
'template_size' => $template_size,
'view_name' => $view_name,
'view_display_id' => $display_id,
'image_height' => $image_height,
'image_width' => $image_width,
);
$block_content = theme('ddblock_cycle_block_content', array(
'settings' => $settings,
'content' => $content,
));
return $block_content;
}
else {
return FALSE;
}
}