You are here

public function FacetapiCollapsible::execute in Facet API Collapsible 7

Renders the links.

File

./collapsible_widget.inc, line 15

Class

FacetapiCollapsible
Widget that renders facets as a list of clickable links.

Code

public function execute() {
  $element =& $this->build[$this->facet['field alias']];

  // Sets each item's theme hook, builds item list.
  $this
    ->setThemeHooks($element);
  $settings = $this->settings->settings;
  $keep_open = isset($settings['keep_open']) ? $settings['keep_open'] : 0;
  $expand = isset($settings['expand']) ? $settings['expand'] : 1;
  $collapsible_children = isset($settings['collapsible_children']) ? $settings['collapsible_children'] : 0;
  $element = array(
    '#theme' => 'item_list',
    '#items' => $this
      ->buildListItems($element),
    '#prefix' => '<div class="facet-collapsible-wrapper" id="facet-collapsible-' . str_replace('_', '-', $this->facet['field alias']) . '">',
    '#suffix' => '</div>',
    '#attributes' => array_merge_recursive($this->build['#attributes'], array(
      'class' => array(
        'facetapi-collapsible',
      ),
    )),
    '#attached' => array(
      'library' => array(
        array(
          'system',
          'jquery.cookie',
        ),
      ),
      'js' => array(
        drupal_get_path('module', 'facetapi_collapsible') . '/facetapi_collapsible.js',
        array(
          'data' => array(
            'facetapi_collapsible' => array(
              $this->facet['field alias'] => array(
                'keep_open' => $keep_open,
                'expand' => $expand,
                'collapsible_children' => $collapsible_children,
              ),
            ),
          ),
          'type' => 'setting',
        ),
      ),
      'css' => array(
        drupal_get_path('module', 'facetapi_collapsible') . '/facetapi_collapsible.css',
      ),
    ),
  );
}