I have a panel which is a node template. There is only one thing on the page, the Breadcrumb from the page elements section.

I created a custom breadcrumb of the panel variety and selected the proper panel page from the dropdown. I entered a couple test entries in the Titles and Paths boxes, then saved it. When I go to a node the breadcrumb displayed is just a link to Home. I have tried flushing my caches, using the breadcrumbs for nodes, and for paths. Nothing I do seems to impact the breadcrumb at all.

Comments

OnkelTem’s picture

Priority: Normal » Major

I confirm this. The feature doesn't work as ctools_page_breadcrumb_content_type_render seems to be called before custom_breadcrumbs. Setting this to major, since it really makes (sub)module useless.

UPDATE

Well it turns out the reason hides in the order ctools_context_handler_render_handler does things:

 function ctools_context_handler_render_handler($task, $subtask, $handler, $contexts, $args, $page = TRUE) {
  $function = page_manager_get_renderer($handler);
  ...
  $info = $function($handler, $contexts, $args); // (1)
  ... 
  drupal_alter('ctools_render', $info, $page, $context); // (2)

It's clear that first it calls an appropriate renderer $function($handler, $contexts, $args) (and in particular - breacrumbs renderer ctools_page_breadcrumb_content_type_render) and then drupal_alter('ctools_render') which triggers custom breadcrumbs stuff.

UPDATE 2

Atm I have no idea how to fix this.
Asked help in ctools issue queue: #1873818: Help resolving custom_breadcrumbs issue

OnkelTem’s picture

Bump

JulienThomas’s picture

Hi.

I confirmed this bug.
I temporary fix may be to load a specific javascript check that relies on the assumption that all the breadcrumbs div must match the custom breadcrumbs settings. To do so:

in your theme configuration, template.php

function THEME_process_page(&$vars) {
	drupal_add_js(path_to_theme().'/js/overall.js');
}

and on , in the theme folder / js, overall.js:

jQuery(function($) {
	if(jQuery(".breadcrumb").size() > 1) {
		jQuery(".breadcrumb").html(jQuery("#breadcrumb").html()) ;
	}
}