PHPackages                             umd\_digital/umd\_terp\_base - 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. [Framework](/categories/framework)
4. /
5. umd\_digital/umd\_terp\_base

ActiveDrupal-module[Framework](/categories/framework)

umd\_digital/umd\_terp\_base
============================

UMD Terp Base is the base module for all UMD drupal projects.

11.0.5(8mo ago)134.0k↓46.1%1[1 PRs](https://github.com/umdsais/umd_terp_base/pulls)2GPL-2.0+PHP

Since Nov 20Pushed 6mo agoCompare

[ Source](https://github.com/umdsais/umd_terp_base)[ Packagist](https://packagist.org/packages/umd_digital/umd_terp_base)[ Docs](https://github.com/umdsais/umd_terp_base)[ RSS](/packages/umd-digital-umd-terp-base/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (11)Versions (94)Used By (2)

About UMD Terp Base Module
==========================

[](#about-umd-terp-base-module)

UMD Terp Base is the base module for all UMD drupal projects. It is designed to be installed along with the [UMD Terp Theme](https://github.com/umdsais/umd_terp). This module provides a suite of modules, functions, and configuration to make that theme work as designed.

This theme is currently a mix of an older UMD Drupal specific frontend, and the [UMD Design System](https://playground.designsystem.umd.edu/?path=/story/introduction-welcome--welcome&singleStory=false).

- [UMD Terp Theme](https://github.com/umdsais/umd_terp)
- [UMD Terp Base Module](https://github.com/umdsais/umd_terp_base)

Installation
------------

[](#installation)

Install as you normally would any drupal module.

### Via Composer:

[](#via-composer)

- `composer require umd_digital/umd_terp_base --prefer-dist`
- `drush en umd_terp_base` or enable via admin UI
- Enable all desired sub modules

### Manually

[](#manually)

- Download this repo into /modules/contrib/umd\_terp\_base
- `drush en umd_terp_base` or enable via admin UI
- Enable all desired sub modules

Configuration
-------------

[](#configuration)

- No configuration needed.

### Sub Modules

[](#sub-modules)

See readme files of individual modules for more information.

- external\_data\_source: A customized module, based on an older, unsupported contrib module. Allows some KS widgets to interact with terms and content from UMD News, and Events platforms.
- umd\_terp\_content\_types: Provides various customizations and configurations for content types used in the "UMD Terp" theme. This is installed by default when enabling umd\_terp\_base.
- ut\_accordion: Paragraphs integration of accordions for UMD projects. This module provides a way to add an accordion to Kitchen Sink Pages.
- ut\_blockquote: Paragraphs integration of blockquote for UMD projects. This module provides a way to add a blockquote to Kitchen Sink Pages.
- ut\_button: Paragraphs integration of buttons and links for UMD projects. This module provides a way to add buttons to Kitchen Sink Pages.
- ut\_card: Paragraphs integration of cards for UMD projects. This module provides a way to add a cards to Kitchen Sink Pages.
- ut\_carousel: Paragraphs integration of a carousel for UMD projects. This module provides a way to add a carousel to Kitchen Sink Pages.
- ut\_divider: Paragraphs integration of a Horizontal Rule for UMD projects. This module provides a way to add a Horizontal Rule to Kitchen Sink Pages.
- ut\_events: Paragraphs integration of an Events Feed (from calendar.umd.edu) for UMD projects. Essentially, this module pulls a feed of upcoming events from hub.umd.edu, with optional filter paramaters available, in order to highlight relevant events.
- ut\_feature: Paragraphs integration of features for UMD projects. This module provides a way to add a feature to Kitchen Sink Pages.
- ut\_images: Paragraphs integration of images for UMD projects. This module provides a way to add a images to Kitchen Sink Pages.
- ut\_news: Paragraphs integration of a News Feed (from today.umd.edu) for UMD projects. Essentially, this module pulls a feed of articles from today.umd.edu, with optional filter paramaters available, in order to highlight relevant articles.
- ut\_people: Paragraphs integration of people for UMD projects. This module provides a way to add a list of Content Type People to Kitchen Sink Pages.
- ut\_sidebar\_menu: This module provides a customized sidebar menu, for use in the UMD Terp theme.
- ut\_slideshow: Paragraphs integration of a slideshow for UMD projects. This module provides a way to add a slideshow to Kitchen Sink Pages.
- ut\_stats: Paragraphs integration of statistics for UMD projects. This module provides a way to add statistics to Kitchen Sink Pages.
- ut\_table: Paragraphs integration of a tablefield for UMD projects. This module provides a way to add a a table to Kitchen Sink Pages.
- ut\_tabs: Paragraphs integration of tabs for UMD projects. This module provides a way to add an tabs to Kitchen Sink Pages.
- ut\_text: Paragraphs integration of HTML/Text widgets for UMD projects. This module provides a way to add HTML/Text to Kitchen Sink Pages.
- ut\_video: Paragraphs integration of a video for UMD projects. This module provides a way to add a a video to Kitchen Sink Pages.
- ut\_view: Paragraphs integration of a view for UMD projects. This module provides a way to add a view to Kitchen Sink Pages.
- ut\_webform: Paragraphs integration of a webform for UMD projects. This module provides a way to add a webform to Kitchen Sink Pages.
- ut\_news\_and\_events\_columns: Paragraphs integration of a two column feature for UMD projects. This module provides a way to add a two column Local Articles and Events layout to Kitchen Sink Pages.

Development
-----------

[](#development)

### Versioning

[](#versioning)

Semantic tagging must take place in github for the updates to be able to be pulled via composer. When ready to deploy, create a tag in github up one version from previous, with the starting version being 8.1.0:

- Minor versions (non breaking changes): 8.1.1, 8.1.2, etc.
- Major versions (breaking changes): 8.2.0, 8.3.0, etc.
- Core versions (based on if modules updated for specific drupal core): 9.0.0, 10.0.0, etc.

### Core (base) module issues, patches, etc

[](#core-base-module-issues-patches-etc)

All edits, requests, etc should be submitted to the github repo for the [UMD Terp Base Module](https://github.com/umdsais/umd_terp_base). Please add issues to the [issues queue](https://github.com/umdsais/umd_terp_base/issues). Patches will be reviewed on a merit and resources available basis.

### Frontend

[](#frontend)

All CSS, JS, etc are based in the [UMD Terp Theme](https://github.com/umdsais/umd_terp). This module contains no frontend styles for any widgets/etc.

### Customization

[](#customization)

- THIS MODULE SHOULD NEVER BE MODIFIED DIRECTLY.
- All customizations should go into a custom module.

All Configuration for each module is created on install. Technically, you can modify these, though we do not reccomend it. Any future updates for modules will come with a hook to re-install config for that module, so better to leave any existing module config as is. Changes to existing configuration are better done via form\_alter hooks, leaving default config in place.

#### Nodes

[](#nodes)

Use `hook_form_alter()`. For example, to remove the "Hide sidebar" boolean from themes that do not need it, in YOUR\_CUSTOM\_MODULE do the following:

```
function YOUR_CUSTOM_MODULE_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  // Hide the sidebar boolean.
  if ($form_id == 'node_umd_terp_basic_page_form' || $form_id = 'node_umd_terp_basic_page_edit_form') {
    if ( isset($form['field_umdt_ct_hide_sidebar'])) {
      $form['field_umdt_ct_hide_sidebar']['#access'] = FALSE;
    }
  }
}
```

#### Paragraphs

[](#paragraphs)

Use `hook_field_WIDGET_TYPE_paragraphs_form_alter()`. For example, to remove the "style (light or dark) from a theme that does not need/want it, in YOUR\_CUSTOM\_MODULE do the following:

```
function YOUR_CUSTOM_MODULE_field_widget_paragraphs_form_alter(&$element, &$form_state, $context) {
  // Remove light/dark choice from UT Blockquote.
  if ($element['#paragraph_type'] == 'ut_blockquote') {
    if (isset($element['subform']['field_ut_blockquote_style'])) {
      $element['subform']['field_ut_blockquote_style']['#access'] = FALSE;
    }
  }
}
```

#### Markup/Hook Overrides

[](#markuphook-overrides)

- You may override paragraphs templates by copying them into the sub-theme theme folder.
- You may override hooks by copying into sub-theme .theme, or custom module .module and modifying hook name/etc.

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance63

Regular maintenance activity

Popularity30

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 71.5% 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 ~25 days

Recently: every ~17 days

Total

88

Last Release

209d ago

Major Versions

8.1.69 → 10.02023-09-18

8.1.70 → 10.0.12023-10-12

8.1.72 → 10.0.22023-12-06

10.0.5 → 11.0.02025-05-19

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/afd055eb77f1d251a8a0eb703682f7fa5a7297a8e4c474d666f2d04a063e4046?d=identicon)[anthony.neumann](/maintainers/anthony.neumann)

![](https://www.gravatar.com/avatar/64f90ad5084ea31d4ff3cbfca9cf9da40fb4cfc9bc8c2457a3105788dcbe7ec5?d=identicon)[brad.walker](/maintainers/brad.walker)

![](https://www.gravatar.com/avatar/c1f7d455c050cf02b343c08b33c1d94f55973d00d99d17cbd1cdbb82535eebbc?d=identicon)[idfive\_jayvie](/maintainers/idfive_jayvie)

![](https://www.gravatar.com/avatar/83b792f0f612dd78929822a1e65d6ac4a68d9691e1b7fe7f79308c406bf10fcf?d=identicon)[daveban](/maintainers/daveban)

![](https://www.gravatar.com/avatar/543bf82b72a02304f744ea941e2af8caa57dc703b453b9bb1c2d9957109c1efb?d=identicon)[raughenb](/maintainers/raughenb)

---

Top Contributors

[![drogers98](https://avatars.githubusercontent.com/u/3209424?v=4)](https://github.com/drogers98 "drogers98 (108 commits)")[![anthonyneumann](https://avatars.githubusercontent.com/u/8773154?v=4)](https://github.com/anthonyneumann "anthonyneumann (18 commits)")[![Skerins42](https://avatars.githubusercontent.com/u/105609564?v=4)](https://github.com/Skerins42 "Skerins42 (8 commits)")[![jayvie-id5](https://avatars.githubusercontent.com/u/13735937?v=4)](https://github.com/jayvie-id5 "jayvie-id5 (7 commits)")[![auslee986](https://avatars.githubusercontent.com/u/109087576?v=4)](https://github.com/auslee986 "auslee986 (3 commits)")[![brooksrelyt](https://avatars.githubusercontent.com/u/5075282?v=4)](https://github.com/brooksrelyt "brooksrelyt (3 commits)")[![bradwalk](https://avatars.githubusercontent.com/u/91695974?v=4)](https://github.com/bradwalk "bradwalk (2 commits)")[![magnessjo](https://avatars.githubusercontent.com/u/856595?v=4)](https://github.com/magnessjo "magnessjo (1 commits)")[![mojibake-umd](https://avatars.githubusercontent.com/u/6052586?v=4)](https://github.com/mojibake-umd "mojibake-umd (1 commits)")

---

Tags

drupalUMD.EDU

### Embed Badge

![Health badge](/badges/umd-digital-umd-terp-base/health.svg)

```
[![Health](https://phpackages.com/badges/umd-digital-umd-terp-base/health.svg)](https://phpackages.com/packages/umd-digital-umd-terp-base)
```

###  Alternatives

[drupalwxt/wxt

Project template for Drupal 10 sites built with the WxT distribution.

29159.8k8](/packages/drupalwxt-wxt)[voidagency/vactory_starter_kit

Vactory is a custom Drupal profile which is developed and released by VOID Agency.

1019.7k](/packages/voidagency-vactory-starter-kit)[thunder/thunder-distribution

The thunder distribution

50634.8k3](/packages/thunder-thunder-distribution)[goalgorilla/open_social

Open Social is a distribution for building social communities and intranets.

190458.8k](/packages/goalgorilla-open-social)[govcms/govcms

GovCMS Drupal Distribution

18997.1k3](/packages/govcms-govcms)

PHPackages © 2026

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