PHPackages                             j4wx/theme\_picker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. j4wx/theme\_picker

ActiveDrupal-module

j4wx/theme\_picker
==================

Advanced theme selection/negotiation for Drupal 8

1.0.0-alpha2(7y ago)146MITPHP

Since Oct 24Pushed 7y ago1 watchersCompare

[ Source](https://github.com/J4Wx/theme_picker)[ Packagist](https://packagist.org/packages/j4wx/theme_picker)[ RSS](/packages/j4wx-theme-picker/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)DependenciesVersions (4)Used By (0)

Drupal - Theme Selector
=======================

[](#drupal---theme-selector)

*Using Fields for Theme Selection in Drupal 8*

This module performs theme negotiation using fields. A content type can have it's theme set in one of three ways (ordered by descending priority):

- Through a "Theme" field, with the machine name "field\_theme\_selection".
- Through an entity reference field, with the machine name "field\_parent\_theme".
- Through an entity reference field, with the machine name "field\_parent".

If either of the entity reference fields are chosen, the referred entity can have it's theme set using either of those methods. This means the following is possible:

Category Page (With field\_theme\_selection), Subcategory page (with field\_parent or field\_parent\_theme), Content page (with field\_parent or field\_parent\_theme).

Changing the category page's field\_theme\_selection would change update itself, the subcategory page and the content page. This can be theoretically looped infinitely, but each of the nodes traversed is accessed independently so this could be a costly process with several traversed nodes.

Plans
-----

[](#plans)

- Initial Version
- Use paned settings (like drupal/metatags)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2755d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ec4b2f97a2fd8f4a742e995c5de3c7ea7b8e04cbeef35d205264b7f04a3a4bdf?d=identicon)[J4Wx](/maintainers/J4Wx)

---

Top Contributors

[![J4Wx](https://avatars.githubusercontent.com/u/3397311?v=4)](https://github.com/J4Wx "J4Wx (2 commits)")

### Embed Badge

![Health badge](/badges/j4wx-theme-picker/health.svg)

```
[![Health](https://phpackages.com/badges/j4wx-theme-picker/health.svg)](https://phpackages.com/packages/j4wx-theme-picker)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
