PHPackages                             ramon/classifieds - 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. ramon/classifieds

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

ramon/classifieds
=================

Custom classified-ads composer, OLX-style listing pages and per-tag classifieds support for Flarum.

1.0.0(2mo ago)1109[2 PRs](https://github.com/ram0ng1/classifieds/pulls)MITTypeScriptCI failing

Since May 1Pushed 2mo agoCompare

[ Source](https://github.com/ram0ng1/classifieds)[ Packagist](https://packagist.org/packages/ramon/classifieds)[ Docs](https://github.com/ram0ng1/classifieds)[ RSS](/packages/ramon-classifieds/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (1)Dependencies (3)Versions (4)Used By (0)

Classifieds
===========

[](#classifieds)

 [![License](https://camo.githubusercontent.com/942e017bf0672002dd32a857c95d66f28c5900ab541838c6c664442516309c8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/942e017bf0672002dd32a857c95d66f28c5900ab541838c6c664442516309c8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265) [ ![Latest Stable Version](https://camo.githubusercontent.com/2ffd180dd69dd881ac952a1e3e53456f79ed4b1c38eb486f3418839fb385cbe1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72616d6f6e2f636c6173736966696564732e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/ramon/classifieds) [ ![Total Downloads](https://camo.githubusercontent.com/ed8bb94ed2fc69c2c6442d041a620ef69a4fdb80ad593c02ec34bf4d50823743/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f72616d6f6e2f636c6173736966696564732e7376673f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/ramon/classifieds) [ ![GitHub Release](https://camo.githubusercontent.com/f29d92e9e089ee7bcb4eb2e328308d8ca0b104295fd338c2d1c2a6eb458c3f78/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f72616d306e67312f636c6173736966696564733f7374796c653d666c61742d737175617265266c6162656c3d72656c6561736526636f6c6f723d73756363657373) ](https://github.com/ram0ng1/classifieds/releases/latest) [ ![Donate](https://camo.githubusercontent.com/4520ce31ab5345dd00ca68e6f3d236241474bc446a63f13f737834163cd18008/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f6e6174652d7374726970652d2532333637373245353f7374796c653d666c61742d737175617265) ](https://donate.stripe.com/fZe5o66nebkf39S28a)

 Turn any tag in your [Flarum](https://flarum.org) forum into a classified-ads section: photo galleries, price &amp; price ranges, location, sold/bumped status, OLX-inspired listing cards and a dedicated discussion page that replaces the standard hero with a marketplace-style layout. Originally written for Flarum 0.1 by [Jason Clemons](https://jasonclemons.me), completely rebuilt for Flarum 2.0.

---

Features
--------

[](#features)

### Marketplace UX

[](#marketplace-ux)

- **OLX-style listing cards** — Discussions in classifieds tags show as horizontal cards with cover photo, price, label badge, location, and time
- **Dedicated discussion page** — Two-column hero (gallery + info), breadcrumb, contact-seller button, share/copy-link, edit, and a seller card showing per-tag listing count
- **Photo carousel** — Up to 20 photos per listing, drag-and-drop upload at compose time, lightbox-ready hero carousel with thumbnails
- **Subtle tag-color tint** — The hero background gets a soft fade in the tag's color, plus a thin accent stripe — identity without being loud
- **Currency-aware prices** — Price + optional max (range), automatic symbol resolution (`USD → $`, `BRL → R$`, `EUR → €`, …) with a forum-wide default fallback

### Listing fields

[](#listing-fields)

- **Labels** — `ISO`, `WTB`, `WTS`, `TRADE` out of the box; admin can add custom labels (`OLX`, `PROMO`, `TROCA`, etc.) via comma-separated config
- **Status** — `active`, `sold`, `completed` with event-posts in the stream when changed
- **Bump** — Re-promote your listing with a single click, also recorded as an event-post
- **Edit-after-create** — Modal to update label/price/range/currency/location at any time
- **Required fields** — Admin toggles for required label / price / location

### Admin

[](#admin)

- **Per-tag opt-in** — Pick which tags act as classifieds tags via the native flarum-tags select-tags widget
- **Default currency code** — One source of truth for currency symbol; per-listing override available
- **Auto-prune** — Scheduled command removes sold/inactive listings after N days; configurable
- **Permissions** — `discussion.markListingSold`, `discussion.bumpListing`, `discussion.editListing`

### Composer

[](#composer)

- **Tag-gated extension** — The classifieds composer (image uploader + label pills + price row + location) only activates when at least one of the selected tags is flagged as classifieds in the admin
- **Native styling** — Pills built on Flarum's `.Button` component, inputs use `FormControl`, all Flarum theme tokens (`--primary-color`, `--control-bg`, `--muted-color`, …) — drops in cleanly with any theme

Requirements
------------

[](#requirements)

- Flarum `^2.0.0`
- [flarum/tags](https://github.com/flarum/tags) (used for the per-tag opt-in widget)

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

[](#installation)

```
composer require ramon/classifieds
php flarum migrate
php flarum cache:clear
```

Then enable **Classifieds** in **Admin → Extensions** and pick the tags that should behave as classifieds.

Updating
--------

[](#updating)

```
composer update ramon/classifieds --with-dependencies
php flarum migrate
php flarum cache:clear
```

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

[](#configuration)

All settings are available in the admin panel under the Classifieds extension:

SettingDescriptionDefaultClassifieds tagsTags that turn into classifieds (uses flarum-tags' selector)—Default currency code3-letter ISO code used when a listing has no explicit currency`USD`Allowed listing labelsComma-separated list of labels available in the composer`iso,wtb,wts,trade`Allow price rangesShow a max-price field beside the price`true`Show currency symbolRender `$/€/R$` instead of the raw ISO code`true`Require a listing labelMake label selection mandatory`true`Require a priceMake price field mandatory`true`Require a locationMake location field mandatory`false`Auto-prune after N daysDelete listings older than N days; `0` disables`0`Auto-prune sold listingsWhen pruning runs, also remove sold/completed listings`false`Permissions
-----------

[](#permissions)

PermissionDefault groupDescription`discussion.markListingSold`MemberMark own listings as sold/active/completed`discussion.bumpListing`MemberBump (re-promote) own listing`discussion.editListing`MemberEdit own listing fields after creationAPI Endpoints
-------------

[](#api-endpoints)

MethodEndpointDescription`POST``/api/classifieds/listings/{id}/screenshots`Upload a photo to the listing (multipart `file`)`DELETE``/api/classifieds/listings/{id}/screenshots`Remove a photo (`{ filename }`)The `Discussion` resource is extended with `listingLabel`, `listingStatus`, `listingPrice`, `listingPriceMax`, `listingCurrency`, `listingLocation`, `listingSoldAt`, `listingBumpedAt`, `listingImages`, plus the booleans `isClassifieds`, `canMarkListingSold`, `canBumpListing`, `canEditListing`.

The `User` resource is extended with `classifiedsListingsCount` (number of listings in classifieds tags only — *not* the user's total discussion count).

The `Tag` resource is extended with `isClassifieds`.

Console
-------

[](#console)

```
# Prune sold/expired listings according to admin settings
php flarum classifieds:prune

# Override the retention window for this run only
php flarum classifieds:prune --days=30

# See what would be deleted without committing
php flarum classifieds:prune --days=30 --dry-run

# Also remove listings that are still active beyond the window
php flarum classifieds:prune --days=30 --include-active
```

The command is also scheduled to run **daily** automatically via `Extend\Console::schedule`.

Links
-----

[](#links)

- [GitHub](https://github.com/ram0ng1/classifieds)
- [Issues](https://github.com/ram0ng1/classifieds/issues)
- [Donate](https://donate.stripe.com/fZe5o66nebkf39S28a)

Authors
-------

[](#authors)

- [Ramon Guilherme](https://ramonguilherme.com.br) — Flarum 2.0 rewrite, photo galleries, OLX-style hero, per-tag opt-in, marketplace UX
- [Jason Clemons](https://jasonclemons.me) — original Flarum 0.1 classifieds concept

License
-------

[](#license)

[MIT](LICENSE)

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance84

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

85d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13917322?v=4)[Ramon Guilherme](/maintainers/ram0ng1)[@ram0ng1](https://github.com/ram0ng1)

---

Top Contributors

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

---

Tags

adsflarumdiscussionmarketplaceclassifieds

### Embed Badge

![Health badge](/badges/ramon-classifieds/health.svg)

```
[![Health](https://phpackages.com/badges/ramon-classifieds/health.svg)](https://phpackages.com/packages/ramon-classifieds)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12128.3k](/packages/flarum-lang-russian)[fof/byobu

Well integrated, advanced private discussions.

59120.6k14](/packages/fof-byobu)[fof/discussion-language

Specify the language a discussion is written in &amp; sort by language

1034.8k7](/packages/fof-discussion-language)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

1938.7k](/packages/flarum-lang-french)[fof/masquerade

User profile builder extension for your Flarum forum.

2025.4k6](/packages/fof-masquerade)[fof/mason

Add custom fields to discussions

206.5k](/packages/fof-mason)

PHPackages © 2026

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