Skip to content
Snippets Groups Projects
RenderExpandable.php 2.13 KiB
Newer Older
<?php
/**
 * Copyright (c) 2012-2019, Agence Française Informatique (AFI). All rights reserved.
 *
 * BOKEH is free software; you can redistribute it and/or modify
 * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
 * the Free Software Foundation.
 *
 * There are special exceptions to the terms and conditions of the AGPL as it
 * is applied to this software (see README file).
 *
 * BOKEH is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
 *
 * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
 * along with BOKEH; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 */


class Intonation_View_RenderExpandable extends ZendAfi_View_Helper_BaseHelper {
  public function renderExpandable($content, $button = '', $collapsing_class = 'navbar-expand-md') {
    $id = 'navbar_' . uniqid();

Ghislain Loas's avatar
Ghislain Loas committed
    $button = $this->_getButton($button, $id);

    $content = $this->view->div(['class' => 'collapse navbar-collapse',
                                 'id' => $id],
                                $content);

    return $this->view->div(['class' => 'navbar d-print p-0 m-0 ' . $collapsing_class],
                            $button . $content);
  }


  protected function _getButton($button, $id) {
Ghislain Loas's avatar
Ghislain Loas committed
    if ($button instanceof Intonation_Library_Link)
      return $this->view->tagAction($button
                                    ->setAttrib('type', 'button')
                                    ->setAttrib('data-toggle', 'collapse')
                                    ->setAttrib('data-target', '#' . $id));
Ghislain Loas's avatar
Ghislain Loas committed

Ghislain Loas's avatar
Ghislain Loas committed
    $button = $button
      ? $button
      : $this->view->navbarToggler();
Ghislain Loas's avatar
Ghislain Loas committed
    return $this->_tag('button',
                       $button,
                       ['class' => 'navbar-toggler navbar-light text-dark mb-2',
Ghislain Loas's avatar
Ghislain Loas committed
                        'type' => 'button',
                        'data-toggle' => 'collapse',
                        'data-target' => '#' . $id]);