I've got a clean install of 8.1.7 with bootstrap-8.x-3.x-dev installed. With 'Bootstrap 8.x-3.0-rc1+12-dev' installed and set as default the homepage looks ok, but if I go to Appearance->Settings I get the following warning:

Warning: Illegal string offset 'bootstrap' in Drupal\bootstrap\Theme->getPendingUpdates() (line 365 of themes/bootstrap/src/Theme.php).
Drupal\bootstrap\Theme->getPendingUpdates() (Line: 37)
Drupal\bootstrap\Plugin\Setting\Schemas->alterForm(Array, Object) (Line: 38)
Drupal\bootstrap\Plugin\Form\SystemThemeSettings->alterForm(Array, Object, NULL) (Line: 207)
Drupal\bootstrap\Bootstrap::alter('bootstrap_form_system_theme_settings_alter', Array, Object, NULL) (Line: 74)
bootstrap_form_system_theme_settings_alter(Array, Object) (Line: 326)
Drupal\system\Form\ThemeSettingsForm->buildForm(Array, Object, 'bootstrap')
call_user_func_array(Array, Array) (Line: 512)
Drupal\Core\Form\FormBuilder->retrieveForm('system_theme_settings', Object) (Line: 271)
Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 74)
Drupal\Core\Controller\FormController->getContentResult(Object, Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 574)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
call_user_func_array(Object, Array) (Line: 139)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 62)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 98)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 77)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 50)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 628)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Comments

Dave Kopecek created an issue. See original summary.

markhalliwell’s picture

Title: Illegal string offset 'bootstrap' in Drupal\bootstrap\Theme->getPendingUpdates() » The "schemas" setting should provide a default empty array value

While, I cannot reproduce this with a clean install of 8.1.7 and the latest dev... I can kind of see how this came about.

I can only assume that you didn't actually do a "clean install" and instead just updated bootstrap to the latest dev.

This would make sense because the setting changed from schema to schemas, thus:

$schemas = $this->getSetting('schemas'); would return NULL if you already have settings for the theme in the config.

Will commit a fix here shortly.

  • markcarver committed f3159a4 on 8.x-3.x
    Issue #2774925 by Dave Kopecek, markcarver: The "schemas" setting should...
markhalliwell’s picture

Status: Active » Fixed

  • markcarver committed 29fe3af on 8.x-3.x
    Issue #2774925 by Dave Kopecek, markcarver: The "schemas" setting should...
markhalliwell’s picture

Ah! I just saw this error :D

Turns out this only happens when you click "Save configuration" on the settings form. Basically, it was saving the hidden value on the form (which is a string), thus causing the error above.

Went ahead and fixed it in the above commit.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.