Install
Works with Drupal: 7.xUsing Composer to manage Drupal site dependencies
Downloads
Release notes
It's finally here!
It has been nearly almost two years to the day since 7.x-3.0 was released. We know... this is way to long to go without regular updates and all we can really say is: we're very sorry it has taken this long!
While we tried releasing a few times and even rolled out few betas, some of these caused some serious backwards compatibility issues. Adding to that limited maintainer availability, limited community involvement (people actually working on the code, a.k.a. patches), maintainers involvement with Drupal 8 core development, clients and well, life... two years can come up rather quickly. Welcome to open source!
We're aware that this is a very large update to digest (if only due to the sheer amount of time it has taken), but we have done our best to ensure that we don't break backwards compatibility. This allows us to keep parity with the 3.x major version number and why it's just a minor version bump.
Some changes we have made in this update will require you to update your sub-themes. You should ensure that any sub-theme that has explicitly overridden any templates, theme functions or [pre]process functions are upgraded consistent with the changes we've made.
To help you do these updates, we have provided a list of change records below that should help make your work easier. We know that not everyone will be able to upgrade, since sub-themes can get pretty complex . Sub-themes like this will, fortunately, be in the minority. The bottom line is: we have to release something and get back on track with regular releases. We will gladly work with you in the issue queue to fix any issues you run into so you can upgrade to the next releases (which will now be monthly).
One more thing!
One of the reasons this release hasn't happened in the past few months is because of a major initiative to #2466425: Update documentation! We soon realized that after the Drupal.org handbook pages were created that people were adding and editing stuff that wasn't necessarily related to this specific project (which was what those pages were originally created for).
Furthermore, the pages often became outdated depending on which version you were using. It was a pain for everyone involved. We feel that we've come up with a great solution and we are very pleased to announce:
Drupal Bootstrap Documentation
The official documentation site for the Drupal Bootstrap base theme!
The majority of this external site is automatically generated from source files located through out the project's repository. Topics are extracted from Markdown files and the rest is extracted from embedded PHP comments. Updating documentation is now as easy as submitting a patch. And it all will live in the repository so the documentation will always be correct for the future release you are using.
Change Records
| Introduced in branch/version | Notice created | Change |
|---|---|---|
| 7.x-3.x / 7.x-3.1 | 10-Dec-2015 | Autocomplete may stop working |
| 7.x-3.x / 7.x-3.1 | 09-Nov-2015 | Modals can now change size |
| 7.x-3.x / 7.x-3.1 | 30-Mar-2015 | Smart form descriptions (via Tooltips) |
| 7.x-3.x / 7.x-3.1 | 15-Mar-2015 | Hide navbar mobile toggle if there are no menu items |
| 7.x-3.x / 7.x-3.1 | 15-Mar-2015 | Bootstrap uses jsDelivr as primary CDN provider |
| 7.x-3.x / 7.x-3.1 | 15-Mar-2015 | Fluid containers can now be configured via settings |
| 7.x-3.x / 7.x-3.1 | 11-Mar-2015 | #process and #pre_render callbacks can now be automatically detected |
| 7.x-3.x / 7.x-3.1 | 06-Aug-2014 | Button icons and colors are better and more extensible |
| 7.x-3.x / 7.x-3.1 | 23-Mar-2014 | Theme hook removed: bootstrap_accordion |
| 7.x-3.x / 7.x-3.1 | 23-Mar-2014 | Refactored: bootstrap dropdown theme hook |
| 7.x-3.x / 7.x-3.1 | 23-Mar-2014 | Bootstrap Theme Registry Alters |
Changes since 7.x-3.0 (208 commits):
New Features
- #2317763 by rang501, rroblik: Add modal dialog class size variable
- #2251919 by Kristina Katalinic: Navbar module integration
- #2462635: CSS overrides isn't compatible with Bootswatch themes
- #2348843: Add Grunt for project maintainer workflow
- #2450757 by markcarver: Provide a more robust CDN solution
- #2452641 by markcarver: Add new Glyphicons
- #2260199 by Robytfc, Kazanir: Add toggle for .container or .container-fluid in Grid settings
- #2449211 by markcarver: Show file requirements in a popup.
- #2447947 by markcarver: Allow dynamic #process and #pre_render hooks for elements.
- #2404405 by frankcarey: Allow modal to handle fixed navbar and have flexible height
- #2327501 by Mark Carver: Added Create a bootstrap_carousel theme hook.
- #2327437 by Mark Carver: Added Allow button text to be appear hidden.
- #2321689 by Mark Carver: Added Filter/tips look horrible and just add clutter.
- #2318633 by TanvirIsraq: Added Picture module support.
- #2319215 by Mark Carver: Added Breakpoints module support.
- #2312613 by Mark Carver: Added Form has-error should disappear when there is a value entered.
- #2253473 by mkhamash: Added Override theme_mark to use bootstrap labels components.
- #2286099 by Sifro: Added Support Poll bars.
- #2292901 by stan.ag: Added Input elements do not add .form-control class using drupal_render.
- #2271407 by Mark Carver: Implement hook_js_callback_filter_xss_alter() to add button element.
- #2223885 by Mark Carver: Detect standalone hook_[pre]process_THEME_HOOK__SUGGESTION implementations.
- #2231215 by Mark Carver: Provide setting to change default table styles.
- #2228959 by Mark Carver: Provide setting to change default button sizes and colorize/iconize buttons.
- #2186973 by Mark Carver | mbawazir: Provide setting to choose image shape and allow images to be responsive.
- #2228953 by Mark Carver: Provide "General" theme settings tab.
- #2204689 by Mark Carver | SiliconMind: Make form element description length configurable for automatic tooltips.
- #2219965 by Mark Carver, PascalAnimateur: Add #icon and #icon_position to variables and stop altering values of elements.
- #2138211 by joelstein, rerooting: Replace ctools modal behavior with bootstrap modal behavior.
- #2224487 by Mark Carver: Support "footer" in tables.
- #2221327 by Mark Carver: Add "data-target" and "autoclose" options for popovers.
- #2133623 by Mark Carver: Allow _bootstrap_colorize_text() and _bootstrap_iconize_text() to be alterable.
- #2034927 by Mark Carver | peteruithoven: Support book.module.
- #2206725 by Mark Carver | NetOctet: Create _bootstrap_glyphicons_supported() helper function.
- #2206725 by Mark Carver | NetOctet: Create _bootstrap_icons_supported() helper function.
- #2216767 by Mark Carver: Create _bootstrap_file_scan_directory() helper function to cache results.
- #2210775 by Mark Carver: Extend _bootstrap_icon() with a $default parameter.
- #2215747 by Mark Carver: Refactor bootstrap dropdowns.
- #2196711 by Mark Carver: Use tooltip plugin when listing icons.
- #2189117 by Mark Carver | j0rd: Allow preprocessed wrapper attributes on bootstrap_form_element().
Bug Fixes
- #2329431 by zmove: bootstrap_preprocess_block() should check if title is already set before overriding it
- #2539490 by joelstein: Less: Wrap numbers in parentheses when calculating percentage
- #2349387 by burnsjeremy, DieterAtWork: .container-fluid fix not in overrides.less for navbar
- #2468625 by m.stenta: bootstrap_preprocess_bootstrap_panel() overwrites element id
- #2608278 by MartijnBraam: Cannot add classes to body
- #2574103 by NikLP: jQuery Update warning shows even if theme specific version is set to >=1.9
- #2509438 by bserem: Breakpoints module support: breakpoints are wrong
- #2610550: Fails to create CTools modal with whitespace around template
- #2566541 by tucho, rmattb2: Update theme_textfield to be in line with core 7.39
- #2561475 by markcarver: Cannot set "active" class on bootstrap_dropdown item
- #2556603 by m.stenta: Fluid container theme setting default
- #2319397 by basvredeling: Placing search block in Navigation region - Chrome bug
- #2416485 by markcarver, mkhamash: preg_grep in registry_suggestions is slow
- #2540452 by mangy.fox: bootstrap_button prevents core form functionality
- #2504343 by m.stenta: jsDelivr options broken
- #2200753 by burnsjeremy, ngreenup: Views ajax pager alignment is broken
- #2501275: Convert deprecated attributes in html.tpl.php
- #2343721 by ivan.lewas, jayson, markcarver, wundo, ñull, burnsjeremy: First and last pagination links missing
- #2468005 by asrob: Untranslated string
- #2461945 by markcarver: Refactor "smart form descriptions" (via tooltips).
- #2461717 by AlexKirienko, markcarver: Checkbox and radio input elements should be rendered inside label.
- #2374933 by markcarver: Ajax throbber issue with select
- #2155419 by markcarver: Upload progress bar doesn't show using PECL
- #2321691 by markcarver: Pager wrapper markup is hardcoded and isn't easily replaced
- #2226359 by burkeker, markcarver: Empty menu_local_task class attribute
- #2443293 by mac0s, markcarver: machine_name element does not receive appropriate classes
- #2390139 by fearlsgroove: Password confirm widget broken when a description is present
- #2408763 by kbrinner: UI improvement when jQuery isn't installed/enabled/configured
- #2180801 by rjacobs: Unpublished nodes do not have a background color
- #2396711 by 2pha: Navbar mobile toggle exists even with no menu items
- #2451107 by markcarver: Fix bootstrap theme settings.
- #2356687 by José San Martin: Altering the theme settings form is impossible
- #2422571 by achbed: Selected sub-theme settings do not load the correct values in UI
- #2448259 by markcarver, cmriley: Cached element info replaces dynamic element info.
- #2448009 by markcarver: Admin menu toolbar search receives Bootstrap classes.
- #2447097 by markcarver: Hidden input elements are given .form-group classes
- #2407245 by mkhamash: bootstrap breadcrumb add trailing slash if title is empty
- #2098551 by robertom, markcarver, neardark: Registry alter does not keep proper order of [pre]process functions
- #2389607 by jjshoe, kyletaylored: Hide footer when region is empty
- #2345323 by psha: Fixed Anchor JS error: scrollTo is undefined.
- #2344701 by psha: Fixed Target selector bug in javscript anchor fixes.
- #2331595 by nettantra: Fixed Invalid File Extension Error not appearing properly on file upload.
- #2334513 by rozh: Fixed Typo in text-format-wrapper.func.php ().
- #2327547 by Mark Carver: Fixed img-responsive class is added twice.
- #2327495 by Mark Carver: Fixed File and image file widgets aren't styled appropriately.
- #2327487 by Mark Carver: Fixed tabledrag.js "changed" markers look odd.
- #2327443 by Mark Carver: Fixed Text format (textarea) inputs don't style descriptions properly.
- #2321511 by Mark Carver: Fixed Text format (textarea) inputs don't add .form-control class.
- #2316655 by pescetti: Fixed Password strength indicator should appear only when password field gets focus.
- #2315295 by Mark Carver: Fixed Autocomplete doesn't respect context.
- #2254963 by Mark Carver | koivo: Fixed Password strength indicator unstyled.
- #2252955 by topsitemakers: Fixed Views exposed filter button margin.
- #2170829 by Mark Carver: Change /theme to /templates in base-theme and starter-kits.
- #2292899 by mrded | stan.ag: Fixed Checkbox and radio inputs are rendered outside their labels.
- #2309025 by Mark Carver: Fixed Current pager item is a clickable link.
- #2303851 by Mark Carver: Fixed Notice: Undefined index: type in theme() (line 1169).
- #2236513 by tempo22, wundo: Fixes notice in _bootstrap_process_input()
- #2283999 by drastik: Fixed Element div not allowed as child of element legend (patch inside).
- #2277841 by drastik: Function bootstrap_status_messages says it's overriding theme_breadcrumb().
- #2247933 by mkhamash | milos.kroulik: "Warning: Invalid argument supplied for foreach() in element_children()" after node editing.
- #2235841 by csakiistvan: wraps 'toggle navigation' in t()
- #2228943 by Mark Carver: [REGRESSION] Template suggestions not being used.
- Fixed typo in registry causing modals to not render.
- #2224211 by Mark Carver: Fieldset #collapsible broken.
- #2150725 by acbramley | Lasac: Webforms are missing .form-group.
- #2224819 by Mark Carver | donquixote: Iterate through all active (base) themes in _bootstrap_glyphicons_supported().
- #2224953 by Mark Carver: Remove "Rebuild registry on every page load" feature.
- #2226865 by Denes.Szabo: Javascript error in vertical-tabs.js when the vertical tab built by theme functions.
- #2163235 by Mark Carver | trunghaiy: Fieldset #prefix and #suffix duplicated.
- #2218635 by moonberry: Typo in hook names colorize and iconize texts.
- #2201779 by Mark Carver | MD3: bootstrap_process_html_tag() is too aggressive.
- #2136839 by Mark Carver, claudiu.cristea | prestondocks: FAPI states.js broken
- #2136839 by claudiu.cristea | prestondocks: FAPI states.js broken
- #2151613 by el7cosmos: Use "has-error" class on form elements.
- #2177089 by nikolaym: Notice: Undefined index: #type in bootstrap_file_widget().
- #2204463 by Thomas Bosviel | chrislabeard: Autocomplete on node forms, submit with enter key.
- #2202153 by Majdi: Webform number field not rendered properly.
- #2168383 by adamsro: Fieldset #value not printed.
- #2162165 by Mark Carver, attiks | aukhan: Anchor JS errors: "Cannot read property 'top' of null" and "Cannot call method 'createDocumentFragment' of null".
- #2153689 by Simon Georges: Smooth ScrollTo is a little aggressive, preventing slideshow to work properly.
- #2215421 by Mark Carver | Fabio.E.Questionmark: Remove deprecated bootstrap_accordion theme hook.
- #2115045 by Mark Carver | eliosh: bootstrap_btn_dropdown and bootstrap_link theme hooks are not found
- #2178429 by trevorkjorlien: Navbar container media query in overrides.less not using @grid-gutter-width variable from variables.less.
- #2169055 by Mark Carver | mgladding: Form action wrapper being removed entirely.
- #2149561 by Mark Carver | Jehu: Ensure jquery.once library is loaded when theme's bootstrap.js file is loaded.
- #2158197 by Mark Carver, ryan.armstrong, trunghaiy | csakiistvan: The vertical tab content is missing.
- #2162789 by Mark Carver, mkhamash | quanvm: Core JavaScript expects buttons to be input elements.
- #2139589 by gusans: Add node.tpl.php back.
- #2147703 by zmove, Pomliane, Simon Georges: You should keep drupal core messages classes.
- #2153409 by ezheidtmann: Don't create an empty "help" region .
- #2184165 by duntuk: Use HTML5 doctype .
- #2145515 by betarobot: Webform e-mail field not rendered properly.