Sage Child/Parent Theme Support

Open
#450 16 comments 21 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
28/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
php
Domain
documentation

Research direction

Start with the linked parent/child theme discussion, then review the setup points named in helpers.php, composer.php, resources/views/, style.css, View Composers, and Roots config(). Clarify whether the goal is implementation support or a setup guide, and define done as documented or working parent inheritance for views, composers, helpers, and configuration.

Written by the indexing model from the issue text.

Description

Description

Related to this discussion: https://discourse.roots.io/t/sage-10-as-parent-child-themes/
It would be fantastic to get some feedback ftom @Log1x and @QWp6t

Steps to reproduce

1. Parent Theme:

1.1 Make a new Sage 10 Theme with custom Namespace "Parent" in folder 'parent'
1.2 Add some View Composers variables such as "siteName" and reference it in a blade file
1.3 Add a function my_test_function() to helpers.php
1.4 Activate the theme, it should be working and the variable $siteName is outputted correctly

2. Child Theme

1.1 Make a new Sage 10 Theme and leave the Namespace as "App" in folder child
1.2 Add Template: parent to style.css
1.3 Remove all blade files from ./resources/views/
1.4 Use \Parent\my_test_function() e.g. in a child View Composer
1.5 Autoload parent theme Class in composer.php:

"psr-4": {
      "App\\": "app/",
      "Parent\\": "./../parent/app/"
    }

1.5 Activate the child theme

Expected behavior: [What you expect to happen]

  • Blade views are loaded from parent theme
  • View Composers are loaded from parent theme as well as from child theme (ideally overwriting parent values)
  • Functions from parent theme in helpers.php are available via \Parent\my_test_function()
  • Config via \Roots\config() is loading parent theme value, if child theme value is not set

Actual behavior: [What actually happens]

  • Blade views are loaded from parent theme
  • Undefined variable: siteName errors, the View Composers from the parent theme are missing
  • Call to undefined function errors when calling \Parent\my_test_function()
  • Error if e.g. \Roots\config('app.debug') is not set in child theme as function not checks against parent value

Reproduces how often: [What percentage of the time does it reproduce?]

In the current setup 100%. More tests required.

Versions

Sage 10.0.0-alpha

Additional information

It would be fantastic to get a very short summary how child/parent themes should be set-up with Sage 10.

Dominant language
No language data
Stars
171
Forks
181
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from roots/docs

All issues in roots/docs

Similar issues

More Documentation issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.