Full error:
Error: [] operator not supported for strings in FacetapiUrlProcessorStandard->setBreadcrumb() (line 127 of <path>/sites/all/modules/contrib/facetapi/plugins/facetapi/url_processor_standard.inc).
On line 93 the breadcrumbs is set using drupal_get_breadcrumbs,
public function setBreadcrumb() {
$breadcrumb = drupal_get_breadcrumb();The actual error is here,
// The last item should be text, not a link.
if ($last == $item) {
$breadcrumb[] = !empty($value['#html']) ? $value['#markup'] : check_plain($value['#markup']);
}
else {
// Appends the filter to the breadcrumb trail.
$breadcrumb[] = l($value['#markup'], current_path(), array('query' => $query, 'html' => !empty($value['#html'])));
}
The function drupal_set_breadcrumb() mighty return an empty string on occasion.
Code on the module assumes it's an array and appends to the end of it using, $breadcrumbs[] = .
On PHP 7 this doesn't work.
Adding this fixes it for now,
diff --git a/docroot/sites/all/modules/contrib/facetapi/plugins/facetapi/url_processor_standard.inc b/docroot/sites/all/modules/contrib/facetapi/plugins/facetapi/url_processor_standard.inc
index 7f29960ce..daa7d5779 100644
--- a/docroot/sites/all/modules/contrib/facetapi/plugins/facetapi/url_processor_standard.inc
+++ b/docroot/sites/all/modules/contrib/facetapi/plugins/facetapi/url_processor_standard.inc
@@ -93,6 +93,11 @@ class FacetapiUrlProcessorStandard extends FacetapiUrlProcessor {
public function setBreadcrumb() {
$breadcrumb = drupal_get_breadcrumb();
+ //drupal_get_breadcrumb() could return an empty string
+ if(empty($breadcrumb) && !is_array($breadcrumb)) {
+ $breadcrumb = array();
+ }
+
// Gets search keys and active items form the adapter.
$keys = $this->adapter->getSearchKeys();
$active_items = $this->adapter->getAllActiveItems();
Comments