You are here

function theme_panels_bootstrap_admin in Panels Bootstrap Layout Builder 7

Same name and namespace in other branches
  1. 7.3 plugins/layouts/bootstrap/bootstrap.inc \theme_panels_bootstrap_admin()

Draw the bootstrap layout.

File

plugins/layouts/bootstrap/bootstrap.inc, line 380

Code

function theme_panels_bootstrap_admin($vars) {
  $css_id = $vars['css_id'];
  $content = $vars['content'];
  $settings = $vars['settings'];
  $display = $vars['display'];
  $layout = $vars['layout'];
  $handler = $vars['renderer'];
  if ($path = libraries_get_path('bootstrap')) {
    drupal_add_css($path . '/css/bootstrap.min.css');
    drupal_add_css($path . '/css/bootstrap-responsive.min.css');
  }

  // We never draw stored bootstrap layouts in admin mode; they must be edited
  // from the stored layout UI at that point.
  if (!empty($layout['layout'])) {
    return theme_panels_bootstrap(array(
      'css_id' => $css_id,
      'content' => $content,
      'settings' => $settings,
      'display' => $display,
      'layout' => $layout,
      'renderer' => $handler,
    ));
  }
  panels_bootstrap_convert_settings($settings, $layout);
  $renderer = panels_bootstrap_create_renderer(TRUE, $css_id, $content, $settings, $display, $layout, $handler);
  if (empty($display->editing_layout)) {
    $output = '<input type="submit" id="panels-bootstrap-toggle-layout" class="form-submit" value ="' . t('Show layout designer') . '">';
    if (user_access('administer panels layouts')) {
      $output .= '<input type="hidden" class="panels-bootstrap-reuse-layout-url" value="' . url($handler
        ->get_url('layout', 'reuse'), array(
        'absolute' => TRUE,
      )) . '">';
      $output .= '<input type="submit" id="panels-bootstrap-reuse-layout" class="form-submit ctools-use-modal" value ="' . t('Reuse layout') . '">';
    }
    $output .= "<div class=\"panel-bootstrap " . $renderer->base['canvas'] . " clearfix panel-bootstrap-admin panel-bootstrap-no-edit-layout\" {$renderer->id_str}>\n";
  }
  else {
    $output = "<div class=\"panel-bootstrap " . $renderer->base['canvas'] . " clearfix panel-bootstrap-admin panel-bootstrap-edit-layout\" {$renderer->id_str}>\n";
  }
  if (isset($renderer->settings['items']['canvas']['grid_type'])) {
    $grid_type = $renderer->settings['items']['canvas']['grid_type'];
  }
  else {
    $grid_type = 'row';
  }
  $output .= "<div class=\"" . $grid_type . "panel-bootstrap-inside " . $renderer->base['canvas'] . "-inside \">\n";
  $content = panels_bootstrap_render_items($renderer, $settings['items']['canvas']['children'], $renderer->base['row'] . '-canvas');
  $output .= panels_bootstrap_render_item($renderer, $settings['items']['canvas'], $content, 'canvas', 0, 0, TRUE);

  // Wrap the whole thing up nice and snug
  $output .= "</div>\n</div>\n";
  drupal_add_js($layout['path'] . '/bootstrap-admin.js');
  drupal_add_js(array(
    'bootstrap' => array(
      'resize' => url($handler
        ->get_url('layout', 'resize'), array(
        'absolute' => TRUE,
      )),
    ),
  ), 'setting');
  return $output;
}