protected function FacetapiFacetProcessor::initializeBuild in Facet API 7
Same name and namespace in other branches
- 6.3 plugins/facetapi/adapter.inc \FacetapiFacetProcessor::initializeBuild()
- 7.2 plugins/facetapi/adapter.inc \FacetapiFacetProcessor::initializeBuild()
Initializes the facet's render array.
Return value
array The initialized render array containing:
- #markup: The value displayed to the user.
- #path: The href of the facet link.
- #html: Whether #markup is HTML. If TRUE, it is assumed that the data has already been properly been sanitized for display.
- #indexed_value: The raw value stored in the index.
- #count: The number of items in the result set.
- #active: An integer flagging whether the facet is active or not.
- #item_parents: An array of the parent index values.
- #item_children: References to the child render arrays.
1 call to FacetapiFacetProcessor::initializeBuild()
- FacetapiFacetProcessor::process in plugins/
facetapi/ adapter.inc - Builds the base render array used as a starting point for rendering.
File
- plugins/
facetapi/ adapter.inc, line 1486 - Adapter plugin and adapter related classes.
Class
- FacetapiFacetProcessor
- Builds base render array used as a starting point for rendering.
Code
protected function initializeBuild() {
$build = array();
// Build array defaults.
$defaults = array(
'#markup' => '',
'#path' => $this->facet
->getAdapter()
->getSearchPath(),
'#html' => FALSE,
'#indexed_value' => '',
'#count' => 0,
'#active' => 0,
'#item_parents' => array(),
'#item_children' => array(),
);
// Builds render arrays for each item.
$adapter = $this->facet
->getAdapter();
$build = $adapter
->getFacetQuery($this->facet
->getFacet())
->build();
// Invoke the alter callbacks for the facet.
foreach ($this->facet['alter callbacks'] as $callback) {
$callback($build, $adapter, $this->facet
->getFacet());
}
// Iterates over the render array and merges in defaults.
// @see https://www.drupal.org/node/1398036 for why array_keys() is used
// instead of element_children().
foreach (array_keys($build) as $value) {
$item_defaults = array(
'#markup' => $value,
'#indexed_value' => $value,
'#active' => $adapter
->itemActive($this->facet['name'], $value),
);
$build[$value] = array_merge($defaults, $item_defaults, $build[$value]);
}
return $build;
}