PHPackages                             faithcatholic/masstimes\_widget - 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. [API Development](/categories/api)
4. /
5. faithcatholic/masstimes\_widget

ActiveDrupal-module[API Development](/categories/api)

faithcatholic/masstimes\_widget
===============================

A custom Drupal module embedding a full-screen interactive map and sidebar list of Catholic parishes, powered by the MassTimes Trust database &amp; API.

v1.0.4(9mo ago)033CSS

Since Jul 21Pushed 9mo agoCompare

[ Source](https://github.com/FaithCatholic/masstimes_widget)[ Packagist](https://packagist.org/packages/faithcatholic/masstimes_widget)[ RSS](/packages/faithcatholic-masstimes-widget/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)DependenciesVersions (6)Used By (0)

MassTimes\_Widget
=================

[](#masstimes_widget)

A custom Drupal module embedding a full-screen interactive map and sidebar list of Catholic parishes, powered by the MassTimes Trust database &amp; API.

---

🚀 Features
----------

[](#-features)

- **Auto-detect** your current location via browser geolocation
- **Fallback** to configurable default latitude/longitude if geolocation is unavailable or denied
- **Search** by ZIP code or City, State (US-only autocomplete via Nominatim)
- **Interactive map** (Leaflet) with parish markers &amp; popups
- **Scrollable sidebar** of parish details, synchronized with map clicks
- **Mobile-friendly** responsive layout

---

⚙️ Configuration
----------------

[](#️-configuration)

1. In the Block layout screen, place the **MassTimes Map Fullscreen Block**.
2. Under **Default latitude** and **Default longitude**, enter your preferred fallback coordinates.
    If the user declines geolocation or no URL query parameters are present, the map will center on these values.

    [![Default Lat/Long Settings](screenshots/default-latlong.png)](screenshots/default-latlong.png)
3. When viewing the page, the map will render full-width with the sidebar alongside:

    [![Full-Screen Map & Sidebar](screenshots/fullscreen-map.png)](screenshots/fullscreen-map.png)

---

🔧 Installation
--------------

[](#-installation)

1. Clone or download into `web/modules/custom/mass_times_widget`.
2. Ensure dependencies in `mass_times_widget.info.yml` are met (e.g. `leaflet` module).
3. Run `drush en mass_times_widget -y` (or enable via the UI).
4. Clear caches: `drush cr`.

---

🧩 How It Works
--------------

[](#-how-it-works)

- **Block plugin** (`MassTimesMapBlock`) fetches user coordinates from URL (`?lat=…&long=…`) or falls back to the values configured on the block.
- It calls the MassTimes API (`https://apiv4.updateparishdata.org/Churchs/`) to retrieve nearby churches, sorts them by distance, and builds a GeoJSON feature collection.
- The Twig template (`masstimes-map.html.twig`) renders the map container and sidebar.
- The accompanying JS behavior initializes the Leaflet map, adds parish markers, and ties marker clicks to opening the corresponding `` in the sidebar.
- The module ships with CSS to ensure a full-width layout, responsive sidebar, and styled parish cards.

---

🙏 Credits
---------

[](#-credits)

This module leverages:

- **Peter Wagner &amp; the MassTimes Trust** ([masstimes.org](https://masstimes.org/)) for their comprehensive global database of Catholic parishes and worship times.
- **Leaflet** for interactive maps.
- **Nominatim (OpenStreetMap)** for address/ZIP autocomplete.

---

📝 License
---------

[](#-license)

Licensed under GPL-2.0-or-later. All church data © Mass Times Trust; used with permission.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance58

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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 ~5 days

Total

5

Last Release

273d ago

### Community

Maintainers

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

---

Top Contributors

[![jnovembre1](https://avatars.githubusercontent.com/u/113638511?v=4)](https://github.com/jnovembre1 "jnovembre1 (8 commits)")[![mikejon-es](https://avatars.githubusercontent.com/u/13317251?v=4)](https://github.com/mikejon-es "mikejon-es (1 commits)")

---

Tags

fc-custom-module

### Embed Badge

![Health badge](/badges/faithcatholic-masstimes-widget/health.svg)

```
[![Health](https://phpackages.com/badges/faithcatholic-masstimes-widget/health.svg)](https://phpackages.com/packages/faithcatholic-masstimes-widget)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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