PHPackages                             considbrs-webdev/modularity-a-o - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. considbrs-webdev/modularity-a-o

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

considbrs-webdev/modularity-a-o
===============================

Modularity A-Ö Links module for Piteå

031↓75%PHP

Since May 7Pushed 1mo agoCompare

[ Source](https://github.com/Considbrs-Webdev/modularity-a-o)[ Packagist](https://packagist.org/packages/considbrs-webdev/modularity-a-o)[ RSS](/packages/considbrs-webdev-modularity-a-o/feed)WikiDiscussions dev Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Modularity A-Ö Links
====================

[](#modularity-a-ö-links)

Alphabetical (A-Ö) link list for **Modularity**: **published pages under a chosen root** are resolved on each **frontend page request** in PHP, merged with **manual links**, sorted with Swedish collation, grouped A–Ö, and rendered with **Blade** using Municipio component patterns (`@typography`, `@link`, `c-listing`).

Structure
---------

[](#structure)

- `modularity-a-o.php` — bootstrap, constants, ACF export sync, view path
- `source/php/Helper/PageTreeBuilder.php` — recursive published descendant pages
- `source/php/Helper/ManualLinkRowHelper.php` — repeater row URL / emptiness helpers
- `source/php/Helper/AoIndexBuilder.php` — merge, sort, grouping
- `source/php/Module/views/a-o.blade.php` — jump nav + sections
- `source/php/Module/views/partials/a-o-link-list.blade.php` — listing rows with chevron
- `source/php/AcfFields/php/a-o-module.php` — field group (loaded by AcfExportManager)
- `source/sass/modularity-a-o.scss` — module shell / jump strip utilities

Editor
------

[](#editor)

- **Dynamic source → Root page**: tree is built from descendants only (not the root).
- **Manual links**: **Link type** Page or External URL (only the matching field shows). Label optional (defaults to page title or the URL text).

Build assets
------------

[](#build-assets)

From the plugin directory:

```
composer install
npm ci
npm run build
```

Optional (e.g. CI): `php build.php` runs the same installs and build. Pass `--no-composer` or `--no-npm` to skip either step. For a minimal release tree, use `--cleanup-release` (does not remove `.git`).

Output: `assets/dist/manifest.json`, hashed CSS.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance61

Regular maintenance activity

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/567d8f7fcb1500a012940f0f704ac771bafb6eda2b3328acf15072f1b36f8295?d=identicon)[William Lundqvist](/maintainers/William%20Lundqvist)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/considbrs-webdev-modularity-a-o/health.svg)

```
[![Health](https://phpackages.com/badges/considbrs-webdev-modularity-a-o/health.svg)](https://phpackages.com/packages/considbrs-webdev-modularity-a-o)
```

PHPackages © 2026

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